Rename custom.sh to defaults, recommend custom, add remove_step.

Declare defaults (custom.sh) as virtually immutable, so that svn updates
and commits do not interfere with local modifications.  Put those into a
file `custom' which is read at the end of defaults, if existent.
Remove_step helps to comment out steps now.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15912 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/dogtail
Andreas Köhler 19 years ago
parent 30a7718b16
commit b80e44ff96

@ -5,7 +5,8 @@ For cross-compiling the windows executable on Linux, see the lower
section of this file.
Before you start with the automated build, you have to complete these
steps manually. The directory variables are set in custom.sh.
steps manually. The directory variables are set in `defaults' and optionally
`custom'.
* Download MSYS (but *only* msys; no mingw and no msysdtk)
from http://www.mingw.org/download.shtml -> Current -> MSYS -> (bin, *.exe)
@ -18,13 +19,9 @@ to $MSYS_DIR
from http://www.mingw.org/download.shtml -> Current -> mingwPORT -> (bin, wget-*)
to $DOWNLOAD_DIR
* Adjust custom.sh (install.sh doesn't need to be changed). In
custom.sh you should adapt the directory variables. If you want to,
you could also comment out those build steps that have been
completed already and/or should not be performed now, although the
script is quite intelligent not to duplicate already completed
work. If you want verbose output of any script step, change the
first line in install.sh and add the "-x" switch.
* Look at defaults and optionally create a file named custom to specify
adapted directory variables. If you want verbose output of any script
step, add "set -x" to custom.
Start/Enter any MSYS shell window. Let the automated build begin by:
@ -57,19 +54,19 @@ These steps need to be performed:
script create_cross_mingw.sh - it will
download, compile, and install a mingw32 toolchain.
2. Edit the file custom.sh: Make a globale search-and-replace of
2. Edit the file defaults: Make a global search-and-replace of
'\\' into '/' so that all directories are specified in unix
conventions. Set the variable cross_compile to "yes". Then
adjust the directories in custom.sh according to your
adjust the directories in defaults according to your
preferred installation, especially $GLOBAL_DIR.
3. Download a binary windows packages for "guile" e.g. from
http://www.tu-harburg.de/~et2cs/gnc/ and unpack it into the
directory $GUILE_DIR as given in custom.sh. (This is done because
directory $GUILE_DIR as given in defaults. (This is done because
the build system for guile doesn't support cross-compiling.)
4. Call install.sh, which will read the directory settings from
custom.sh. It should download, compile, and install everything
defaults. It should download, compile, and install everything
automatically. Eventually the windows gnucash is installed into
$GNUCASH_DIR.

@ -1,9 +1,17 @@
#!/bin/sh # for emacs
#
# all directories should be without spaces!
# Instead of just editing this file, it is recommended to create a file `custom'
# in the same directory that will be read in at the end of this script.
#
# You can use the full power of bash 2.04 scripting. In particular you can
# override any variable set here, add steps (use add_step <step> and implement
# function <step>()), remove steps (use remove_step <step>) and more.
# Keep in mind that this might render install.sh & friends non-functional.
#
# Note: All directories must be without spaces!
[ "$__SOURCED_CUSTOM_SH" ] && return
__SOURCED_CUSTOM_SH=1
[ "$__SOURCED_DEFAULTS" ] && return
__SOURCED_DEFAULTS=1
GLOBAL_DIR=c:\\soft
TMP_DIR=$GLOBAL_DIR\\tmp
@ -250,3 +258,8 @@ add_step inst_svn
add_step svn_up
add_step inst_gnucash
add_step inst_docs
### read custom
[ -f "custom" ] && . custom || true
### end of script

@ -8,7 +8,7 @@ function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
qpushd "$(dirname $(unix_path "$0"))"
. functions
. custom.sh
. defaults
register_env_var PATH ":"

@ -2,6 +2,17 @@
__SOURCED_FUNCTIONS=1
function add_step() { steps=("${steps[@]}" "$@"); }
function remove_step() {
while [ "$1" ]; do
_steps=("${steps[@]}")
unset steps
for _step in "${_steps[@]}"; do
[ "$_step" != "$1" ] && add_step $_step
done
shift
done
unset _steps
}
function quiet() { "$@" &>/dev/null; }
# c:/dir/sub

@ -8,7 +8,7 @@ function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
qpushd "$(dirname $(unix_path "$0"))"
. functions
. custom.sh
. defaults
register_env_var ACLOCAL_FLAGS " "
register_env_var AUTOTOOLS_CPPFLAGS " "

@ -2,7 +2,7 @@
set -e
#### Load Custom.sh
#### Load defaults
function qpushd() { pushd "$@" >/dev/null; }
function qpopd() { popd >/dev/null; }
@ -10,7 +10,7 @@ function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
qpushd "$(dirname $(unix_path "$0"))"
. functions
. custom.sh
. defaults
## too bad, bash 2.04 has no real support for arrays

Loading…
Cancel
Save