install.sh: Ease registration of environment variables. Fix dist.sh to

set PATH for unzip and gconftool-2.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15244 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/gobject-engine-dev
Andreas Köhler 20 years ago
parent 4e4375e504
commit af0dc642d2

@ -10,6 +10,8 @@ qpushd "$(dirname $(unix_path "$0"))"
. functions
. custom.sh
register_env_var PATH ":"
function prepare() {
DIST_DIR=${GNUCASH_DIR}\\dist
DIST_UDIR=`unix_path $DIST_DIR`
@ -18,6 +20,18 @@ function prepare() {
if [ -x $DIST_DIR ]; then
die "Please remove ${DIST_DIR} first"
fi
_UNZIP_UDIR=`unix_path $UNZIP_DIR`
_AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
_GUILE_UDIR=`unix_path $GUILE_DIR`
_WIN_UDIR=`unix_path $WINDIR`
_LIBXML2_UDIR=`unix_path $LIBXML2_DIR`
_GNOME_UDIR=`unix_path $GNOME_DIR`
_LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
_GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
_GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
_INNO_UDIR=`unix_path $INNO_DIR`
add_to_env $_UNZIP_UDIR/bin PATH # unzip
add_to_env $_GNOME_UDIR/bin PATH # gconftool-2
}
function dist_regex() {
@ -28,14 +42,12 @@ function dist_regex() {
function dist_autotools() {
setup Autotools
_AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
mkdir -p $DIST_UDIR/bin
cp $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin
}
function dist_guile() {
setup Guile
_GUILE_UDIR=`unix_path $GUILE_DIR`
mkdir -p $DIST_UDIR/bin
cp -a $_GUILE_UDIR/bin/libguile{.,-ltdl.,-srfi}*dll $DIST_UDIR/bin
mkdir -p $DIST_UDIR/share
@ -45,21 +57,18 @@ function dist_guile() {
function dist_openssl() {
setup OpenSSL
_WIN_UDIR=`unix_path $WINDIR`
mkdir -p $DIST_UDIR/bin
cp $_WIN_UDIR/system32/lib{eay,ssl}*.dll $DIST_UDIR/bin
}
function dist_libxml2() {
setup LibXML2
_LIBXML2_UDIR=`unix_path $LIBXML2_DIR`
mkdir -p $DIST_UDIR/bin
cp $_LIBXML2_UDIR/bin/libxml2.dll $DIST_UDIR/bin
}
function dist_gnome() {
setup Gnome platform
_GNOME_UDIR=`unix_path $GNOME_DIR`
wget_unpacked $GETTEXT_URL $DOWNLOAD_DIR $DIST_DIR
smart_wget $LIBICONV_URL $DOWNLOAD_DIR
unzip -q $LAST_FILE bin/iconv.dll -d $DIST_DIR
@ -96,7 +105,6 @@ function dist_gnome() {
function dist_libgsf() {
setup libGSF
_LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
mkdir -p $DIST_UDIR/bin
cp $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin
mkdir -p $DIST_UDIR/etc/gconf/schemas
@ -107,7 +115,6 @@ function dist_libgsf() {
function dist_goffice() {
setup GOffice
_GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
mkdir -p $DIST_UDIR/bin
cp $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin
mkdir -p $DIST_UDIR/lib
@ -118,7 +125,6 @@ function dist_goffice() {
function dist_gnucash() {
setup GnuCash
_GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
mkdir -p $DIST_UDIR/bin
cp $_GNUCASH_UDIR/bin/* $DIST_UDIR/bin
mkdir -p $DIST_UDIR/etc/gconf/schemas
@ -142,7 +148,6 @@ function finish() {
echo "done"
done
_INNO_UDIR=`unix_path $INNO_DIR`
echo "You can now run the Inno Setup Compiler for creating the setup.exe:"
echo ${_INNO_UDIR}/iscc ${_GNUCASH_UDIR}/packaging/win32/gnucash.iss
}

@ -48,6 +48,37 @@ function die() {
exit -1
}
# usage: register_env_var NAME SEPARATOR [DEFAULT]
function register_env_var() {
[ $# -ge 2 -a $# -le 3 ] || die hard
eval "SEPS_$1"'="'"$2"'"'
if [ $# -eq 3 ]; then
eval "$1_BASE=$3"
else
eval "$1_BASE"'=$'"$1"
fi
eval "$1_ADDS="
eval export "$1"
ENV_VARS="$ENV_VARS $1"
}
ENV_VARS=
# usage: add_to_env VALUE NAME
function add_to_env() {
_SEP=`eval echo '"$'"SEPS_$2"'"'`
_ENV=`eval echo '"$'"$2"'"'`
_SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'`
_TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"`
if [ "$_TEST" ]; then
if [ "$_ENV" ]; then
eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"'
else
eval "$2_ADDS"'="'"$1"'"'
fi
eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"'
fi
}
### Local Variables: ***
### mode: shell-script ***

@ -10,56 +10,22 @@ qpushd "$(dirname $(unix_path "$0"))"
. functions
. custom.sh
SEPS_ACLOCAL_FLAGS=" "
SEPS_AUTOTOOLS_CPPFLAGS=" "
SEPS_AUTOTOOLS_LDFLAGS=" "
SEPS_GNOME_CPPFLAGS=" "
SEPS_GNOME_LDFLAGS=" "
SEPS_GUILE_LOAD_PATH=";"
SEPS_GUILE_CPPFLAGS=" "
SEPS_GUILE_LDFLAGS=" "
SEPS_INTLTOOL_PERL=" "
SEPS_PATH=":"
SEPS_PKG_CONFIG=":"
PKG_CONFIG=""
SEPS_PKG_CONFIG_PATH=":"
SEPS_READLINE_CPPFLAGS=" "
SEPS_READLINE_LDFLAGS=" "
SEPS_REGEX_CPPFLAGS=" "
SEPS_REGEX_LDFLAGS=" "
ENV_VARS="\
ACLOCAL_FLAGS \
AUTOTOOLS_CPPFLAGS \
AUTOTOOLS_LDFLAGS \
GNOME_CPPFLAGS \
GNOME_LDFLAGS \
GUILE_LOAD_PATH \
GUILE_CPPFLAGS \
GUILE_LDFLAGS \
INTLTOOL_PERL \
PATH \
PKG_CONFIG \
PKG_CONFIG_PATH \
READLINE_CPPFLAGS \
READLINE_LDFLAGS \
REGEX_CPPFLAGS \
REGEX_LDFLAGS \
"
function add_to_env() {
_SEP=`eval echo '"$'"SEPS_$2"'"'`
_ENV=`eval echo '"$'"$2"'"'`
_SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'`
_TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"`
if [ "$_TEST" ]; then
if [ "$_ENV" ]; then
eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"'
else
eval "$2_ADDS"'="'"$1"'"'
fi
eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"'
fi
}
register_env_var ACLOCAL_FLAGS " "
register_env_var AUTOTOOLS_CPPFLAGS " "
register_env_var AUTOTOOLS_LDFLAGS " "
register_env_var GNOME_CPPFLAGS " "
register_env_var GNOME_LDFLAGS " "
register_env_var GUILE_LOAD_PATH ";"
register_env_var GUILE_CPPFLAGS " "
register_env_var GUILE_LDFLAGS " "
register_env_var INTLTOOL_PERL " "
register_env_var PATH ":"
register_env_var PKG_CONFIG ":" ""
register_env_var PKG_CONFIG_PATH ":"
register_env_var READLINE_CPPFLAGS " "
register_env_var READLINE_LDFLAGS " "
register_env_var REGEX_CPPFLAGS " "
register_env_var REGEX_LDFLAGS " "
function prepare() {
# Necessary so that intltoolize doesn't come up with some
@ -91,45 +57,10 @@ function prepare() {
mkdir -p $TMP_DIR
mkdir -p $DOWNLOAD_DIR
for _ENV in $ENV_VARS; do
eval "${_ENV}_BASE"'=$'"${_ENV}"
eval "${_ENV}_ADDS="
eval export "${_ENV}"
done
DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR`
TMP_UDIR=`unix_path $TMP_DIR`
}
# usage: smart_wget URL DESTDIR
function smart_wget() {
_FILE=`basename $1`
_DLD=`unix_path $2`
# If the file already exists in the download directory ($2)
# then don't do anything. But if it does NOT exist then
# download the file to the tmpdir and then when that completes
# move it to the dest dir.
if [ ! -f $_DLD/$_FILE ] ; then
wget --passive-ftp -c $1 -P $TMP_DIR
mv $TMP_UDIR/$_FILE $_DLD
fi
LAST_FILE=$_DLD/$_FILE
}
# usage: wget_unpacked URL DOWNLOAD_DIR UNPACK_DIR
function wget_unpacked() {
smart_wget $1 $2
_UPD=`unix_path $3`
echo -n "Extracting ${LAST_FILE##*/} ... "
case $LAST_FILE in
*.zip) unzip -q -o $LAST_FILE -d $_UPD;;
*.tar.gz) tar -xzpf $LAST_FILE -C $_UPD;;
*.tar.bz2) tar -xjpf $LAST_FILE -C $_UPD;;
*) die "Cannot unpack file $LAST_FILE!";;
esac
echo "done"
}
function inst_wget() {
setup Wget
_WGET_UDIR=`unix_path $WGET_DIR`

Loading…
Cancel
Save