r15244 - gnucash/trunk/packaging/win32 - install.sh: Ease registration of environment variables. Fix dist.sh to

Andreas Köhler andi5 at cvs.gnucash.org
Thu Dec 21 14:19:10 EST 2006


Author: andi5
Date: 2006-12-21 14:19:09 -0500 (Thu, 21 Dec 2006)
New Revision: 15244
Trac: http://svn.gnucash.org/trac/changeset/15244

Modified:
   gnucash/trunk/packaging/win32/dist.sh
   gnucash/trunk/packaging/win32/functions
   gnucash/trunk/packaging/win32/install.sh
Log:
install.sh: Ease registration of environment variables. Fix dist.sh to
set PATH for unzip and gconftool-2.


Modified: gnucash/trunk/packaging/win32/dist.sh
===================================================================
--- gnucash/trunk/packaging/win32/dist.sh	2006-12-21 15:24:15 UTC (rev 15243)
+++ gnucash/trunk/packaging/win32/dist.sh	2006-12-21 19:19:09 UTC (rev 15244)
@@ -10,6 +10,8 @@
 . functions
 . custom.sh
 
+register_env_var PATH ":"
+
 function prepare() {
     DIST_DIR=${GNUCASH_DIR}\\dist
     DIST_UDIR=`unix_path $DIST_DIR`
@@ -18,6 +20,18 @@
     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_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_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_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_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_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 @@
         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
 }

Modified: gnucash/trunk/packaging/win32/functions
===================================================================
--- gnucash/trunk/packaging/win32/functions	2006-12-21 15:24:15 UTC (rev 15243)
+++ gnucash/trunk/packaging/win32/functions	2006-12-21 19:19:09 UTC (rev 15244)
@@ -48,7 +48,38 @@
     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 ***
 ### sh-basic-offset: 4 ***

Modified: gnucash/trunk/packaging/win32/install.sh
===================================================================
--- gnucash/trunk/packaging/win32/install.sh	2006-12-21 15:24:15 UTC (rev 15243)
+++ gnucash/trunk/packaging/win32/install.sh	2006-12-21 19:19:09 UTC (rev 15244)
@@ -10,57 +10,23 @@
 . 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 \
-"
+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 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
-}
-
 function prepare() {
     # Necessary so that intltoolize doesn't come up with some
     # foolish AC_CONFIG_AUX_DIR; bug#362006
@@ -91,45 +57,10 @@
 
     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`



More information about the gnucash-changes mailing list