r16005 - gnucash/branches/gda-dev/packaging/win32 - Forgot 2 files

Phil Longstaff plongstaff at cvs.gnucash.org
Fri Apr 27 23:05:28 EDT 2007


Author: plongstaff
Date: 2007-04-27 23:05:27 -0400 (Fri, 27 Apr 2007)
New Revision: 16005
Trac: http://svn.gnucash.org/trac/changeset/16005

Added:
   gnucash/branches/gda-dev/packaging/win32/defaults.sh
   gnucash/branches/gda-dev/packaging/win32/functions.sh
Log:
Forgot 2 files


Added: gnucash/branches/gda-dev/packaging/win32/defaults.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/defaults.sh	2007-04-28 03:03:37 UTC (rev 16004)
+++ gnucash/branches/gda-dev/packaging/win32/defaults.sh	2007-04-28 03:05:27 UTC (rev 16005)
@@ -0,0 +1,313 @@
+#!/bin/sh # for emacs
+#
+# Instead of just editing this file, it is recommended to create a file `custom.sh'
+# in the same directory that will be read in at the beginning of this script.
+#
+# You can use the full power of bash 2.04 scripting.  In particular, you can
+# set any variable mentioned here to something non-empty and it will not be
+# overridden later.  However, you must define all variables you make use of
+# yourself.  Expressions registered with late_eval are executed at the end of
+# the script.
+#
+# Steps will be executed in the order they were added.  They can only be added
+# at most once if they have not been blocked already (adding implies blocking).
+# To add a custom step <s>, just implement "function <s>()".  Keep in mind that
+# blocking or reordering may render install.sh & friends non-functional.
+#
+# Note: All directories must be without spaces!
+#
+# Here is an example custom.sh file:
+#
+# REPOS_URL="svn+ssh://<dev>@svn.gnucash.org/repo/gnucash/trunk"
+# SF_MIRROR="http://switch.dl.sourceforge.net/sourceforge"
+# DISABLE_OPTIMIZATIONS=yes
+# AQBANKING_WITH_QT=no
+# GLOBAL_DIR=Z:\\mydir  # all directories will use this
+# late_eval 'INSTALL_DIR=$GNUCASH_DIR\\myinst'  # no need to define GNUCASH_DIR
+# block_step inst_docs
+# late_eval 'add_step greetings'
+# function greetings() { setup Greetings; }
+
+
+[ "$__SOURCED_DEFAULTS" ] && return
+__SOURCED_DEFAULTS=1
+
+[ -f "custom.sh" ] && . custom.sh || true
+
+set_default GLOBAL_DIR c:\\soft
+set_default TMP_DIR $GLOBAL_DIR\\tmp
+set_default DOWNLOAD_DIR $GLOBAL_DIR\\downloads
+
+if [ -z "$BUILD_FROM_TARBALL" ]; then
+    if [ -f "../../src/swig-runtime.h" ]; then
+        BUILD_FROM_TARBALL=yes
+    else
+        BUILD_FROM_TARBALL=no
+    fi
+fi
+
+if [ "$BUILD_FROM_TARBALL" = "yes" ]; then
+    UPDATE_SOURCES=no
+    set_default GNUCASH_DIR "$(wpwd ..\\..)"
+    set_default REPOS_DIR $GNUCASH_DIR
+    # keep this pointing from BUILD_DIR to REPOS_DIR
+    set_default REL_REPOS_DIR ..
+    set_default BUILD_DIR $GNUCASH_DIR\\build
+    set_default INSTALL_DIR $GNUCASH_DIR\\inst
+else
+    # change this to "no" if you are using install.sh from the same repository checkout
+    set_default UPDATE_SOURCES yes
+    set_default GNUCASH_DIR $GLOBAL_DIR\\gnucash
+    set_default REPOS_URL "http://svn.gnucash.org/repo/gnucash/trunk"
+    set_default REPOS_DIR $GNUCASH_DIR\\repos
+    # keep this pointing from BUILD_DIR to REPOS_DIR
+    set_default REL_REPOS_DIR ..\\repos
+    set_default BUILD_DIR $GNUCASH_DIR\\build
+    set_default INSTALL_DIR $GNUCASH_DIR\\inst
+fi
+
+
+####
+# For cross-compiling, change this to "yes"
+set_default cross_compile "no"
+
+if test "x$cross_compile" != xyes ; then
+    LIBTOOLIZE=libtoolize
+    HOST_XCOMPILE=""
+    TARGET_XCOMPILE=""
+    LD=ld
+    CC=gcc
+    DLLTOOL=dlltool
+else
+    # Insert your cross-compiler mingw32 bin-directories here
+    PATH=$GLOBAL_DIR/bin:$GLOBAL_DIR/mingw32/bin:$PATH
+    LIBTOOLIZE=$GLOBAL_DIR/autotools/bin/libtoolize
+    PKG_CONFIG_PATH="" # to avoid using the host's installed packages
+    HOST_XCOMPILE="--host=mingw32"
+    TARGET_XCOMPILE="--target=mingw32"
+    LD=mingw32-ld
+    CC=mingw32-gcc
+    DLLTOOL=mingw32-dlltool
+fi
+####
+
+# If "yes", build without optimizations (-O0) and ease debugging
+set_default DISABLE_OPTIMIZATIONS no
+
+set_default MSYS_DIR $GLOBAL_DIR\\msys
+
+# tools here means binaries runnable without other DLLs or data files
+set_default TOOLS_DIR $GLOBAL_DIR\\tools
+set_default WGET_DIR $TOOLS_DIR
+#WGET=
+
+set_default SF_MIRROR "http://heanet.dl.sourceforge.net/sourceforge"
+set_default GTK_MIRROR "ftp.gtk.org/pub"
+set_default GNOME_MIRROR "ftp.gnome.org/pub/gnome"
+set_default GNOME_WIN32_URL "$GNOME_MIRROR/binaries/win32"
+set_default GNOME_WIN32_DEPS_URL "$GNOME_WIN32_URL/dependencies"
+
+set_default DTK_URL "$SF_MIRROR/mingw/msysDTK-1.0.1.exe"
+
+set_default BINUTILS_URL "$SF_MIRROR/mingw/binutils-2.15.91-20040904-1.tar.gz"
+set_default GCC_CORE_URL "$SF_MIRROR/mingw/gcc-core-3.4.2-20040916-1.tar.gz"
+set_default GCC_GPP_URL "$SF_MIRROR/mingw/gcc-g++-3.4.2-20040916-1.tar.gz"
+set_default MINGW_RT_URL "$SF_MIRROR/mingw/mingw-runtime-3.12.tar.gz"
+set_default W32API_URL "$SF_MIRROR/mingw/w32api-3.9.tar.gz"
+set_default MINGW_MAKE_URL "$SF_MIRROR/mingw/mingw32-make-3.81-2.tar.gz"
+set_default MINGW_DIR $GLOBAL_DIR\\mingw
+
+set_default UNZIP_URL "$SF_MIRROR/gnuwin32/unzip-5.51-1.exe"
+set_default UNZIP_DIR $TOOLS_DIR
+
+# do not use regex-gnu or regex-spencer v3.8.g3, see bug #382852
+set_default REGEX_URL "$GNOME_WIN32_DEPS_URL/libgnurx-2.5.zip"
+set_default REGEX_DEV_URL "$GNOME_WIN32_DEPS_URL/libgnurx-dev-2.5.zip"
+set_default REGEX_DIR $GLOBAL_DIR\\regex
+
+set_default READLINE_BIN_URL "$SF_MIRROR/gnuwin32/readline-5.0-bin.zip"
+set_default READLINE_LIB_URL "$SF_MIRROR/gnuwin32/readline-5.0-lib.zip"
+set_default READLINE_DIR $GLOBAL_DIR\\readline
+
+set_default ACTIVE_PERL_URL "http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.zip"
+set_default ACTIVE_PERL_DIR $GLOBAL_DIR\\active-perl
+
+set_default AUTOCONF_URL "http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.bz2"
+set_default AUTOMAKE_URL "http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2"
+set_default LIBTOOL_URL "http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz"
+set_default AUTOTOOLS_DIR $GLOBAL_DIR\\autotools
+
+set_default GUILE_URL "http://ftp.gnu.org/pub/gnu/guile/guile-1.6.8.tar.gz"
+set_default SLIB_URL "http://swiss.csail.mit.edu/ftpdir/scm/OLD/slib3a3.zip"
+set_default GUILE_DIR $GLOBAL_DIR\\guile
+
+set_default OPENSSL_URL "http://www.openssl.org/source/openssl-0.9.8e.tar.gz"
+set_default OPENSSL_DIR $GLOBAL_DIR\\openssl
+
+set_default MINGW_UTILS_URL "$SF_MIRROR/mingw/mingw-utils-0.3.tar.gz"
+set_default MINGW_UTILS_DIR $TOOLS_DIR
+
+set_default EXETYPE_SCRIPT `pwd`/exetype.pl
+set_default EXETYPE_DIR $TOOLS_DIR
+
+set_default LIBXML2_URL "http://www.zlatkovic.com/pub/libxml/libxml2-2.6.27.win32.zip"
+set_default LIBXSLT_URL "http://www.zlatkovic.com/pub/libxml/libxslt-1.1.19.win32.zip"
+set_default LIBXML2_DIR $GLOBAL_DIR\\gnome #avoid XML_FLAGS
+
+set_default GETTEXT_URL "$GNOME_WIN32_DEPS_URL/gettext-0.14.5.zip"
+set_default GETTEXT_DEV_URL "$GNOME_WIN32_DEPS_URL/gettext-dev-0.14.5.zip"
+set_default LIBICONV_URL "$GNOME_WIN32_DEPS_URL/libiconv-1.9.1.bin.woe32.zip"
+set_default GLIB_URL "$GNOME_WIN32_URL/glib/2.12/glib-2.12.11.zip"
+set_default GLIB_DEV_URL "$GNOME_WIN32_URL/glib/2.12/glib-dev-2.12.11.zip"
+set_default LIBJPEG_URL "$GNOME_WIN32_DEPS_URL/libjpeg-6b-4.zip"
+set_default LIBPNG_URL "$GTK_MIRROR/gtk/v2.10/win32/dependencies/libpng-1.2.8-bin.zip"
+set_default ZLIB_URL "$GTK_MIRROR/gtk/v2.10/win32/dependencies/zlib123-dll.zip"
+set_default PKG_CONFIG_URL "$GNOME_WIN32_DEPS_URL/pkg-config-0.20.zip"
+set_default CAIRO_URL "$GNOME_WIN32_DEPS_URL/cairo-1.4.2.zip"
+set_default CAIRO_DEV_URL "$GNOME_WIN32_DEPS_URL/cairo-dev-1.4.2.zip"
+set_default EXPAT_URL "$GNOME_WIN32_DEPS_URL/expat-2.0.0.zip"
+set_default FONTCONFIG_URL "$GNOME_WIN32_DEPS_URL/fontconfig-2.3.2-tml-20060825.zip"
+set_default FONTCONFIG_DEV_URL "$GNOME_WIN32_DEPS_URL/fontconfig-dev-2.3.2-tml-20060825.zip"
+set_default FREETYPE_URL "$GNOME_WIN32_DEPS_URL/freetype-2.2.1.zip"
+set_default FREETYPE_DEV_URL "$GNOME_WIN32_DEPS_URL/freetype-dev-2.2.1.zip"
+set_default ATK_URL "$GNOME_WIN32_URL/atk/1.12/atk-1.12.3.zip"
+set_default ATK_DEV_URL "$GNOME_WIN32_URL/atk/1.12/atk-dev-1.12.3.zip"
+set_default PANGO_URL "$GNOME_WIN32_URL/pango/1.16/pango-1.16.1.zip"
+set_default PANGO_DEV_URL "$GNOME_WIN32_URL/pango/1.16/pango-dev-1.16.1.zip"
+set_default LIBART_LGPL_URL "$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-2.3.17.zip"
+set_default LIBART_LGPL_DEV_URL "$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-dev-2.3.17.zip"
+set_default GTK_URL "$GNOME_WIN32_URL/gtk+/2.10/gtk+-2.10.11.zip"
+set_default GTK_DEV_URL "$GNOME_WIN32_URL/gtk+/2.10/gtk+-dev-2.10.11.zip"
+set_default INTLTOOL_URL "$GNOME_WIN32_URL/intltool/0.35/intltool-0.35.5.zip"
+set_default ORBIT2_URL "$GNOME_WIN32_URL/ORBit2/2.13/ORBit2-2.13.3.zip"
+set_default ORBIT2_DEV_URL "$GNOME_WIN32_URL/ORBit2/2.13/ORBit2-dev-2.13.3.zip"
+set_default GAIL_URL "$GNOME_WIN32_URL/gail/1.9/gail-1.9.3.zip"
+set_default GAIL_DEV_URL "$GNOME_WIN32_URL/gail/1.9/gail-dev-1.9.3.zip"
+set_default POPT_URL "$GNOME_WIN32_DEPS_URL/popt-1.10.2-tml-20050828.zip"
+set_default POPT_DEV_URL "$GNOME_WIN32_DEPS_URL/popt-dev-1.10.2-tml-20050828.zip"
+set_default GCONF_URL "$GNOME_WIN32_URL/GConf/2.14/GConf-2.14.0.zip"
+set_default GCONF_DEV_URL "$GNOME_WIN32_URL/GConf/2.14/GConf-dev-2.14.0.zip"
+set_default LIBBONOBO_URL "$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-2.16.0.zip"
+set_default LIBBONOBO_DEV_URL "$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-dev-2.16.0.zip"
+set_default GNOME_VFS_URL "$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-2.14.2-no-openssl.zip"
+set_default GNOME_VFS_DEV_URL "$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-dev-2.14.2-no-openssl.zip"
+set_default LIBGNOME_URL "$GNOME_WIN32_URL/libgnome/2.16/libgnome-2.16.0-1.zip"
+set_default LIBGNOME_DEV_URL "$GNOME_WIN32_URL/libgnome/2.16/libgnome-dev-2.16.0.zip"
+set_default LIBGNOMECANVAS_URL "$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-2.14.0.zip"
+set_default LIBGNOMECANVAS_DEV_URL "$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-dev-2.14.0.zip"
+set_default LIBBONOBOUI_URL "$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-2.16.0.zip"
+set_default LIBBONOBOUI_DEV_URL "$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-dev-2.16.0.zip"
+set_default LIBGNOMEUI_URL "$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-2.16.0.zip"
+set_default LIBGNOMEUI_DEV_URL "$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-dev-2.16.0.zip"
+set_default LIBGLADE_URL "$GNOME_WIN32_URL/libglade/2.6/libglade-2.6.0.zip"
+set_default LIBGLADE_DEV_URL "$GNOME_WIN32_URL/libglade/2.6/libglade-dev-2.6.0.zip"
+set_default LIBGNOMEPRINT_URL "$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-2.12.1.zip"
+set_default LIBGNOMEPRINT_DEV_URL "$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-dev-2.12.1.zip"
+set_default LIBGNOMEPRINTUI_URL "$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip"  # gnomeprint
+set_default LIBGNOMEPRINTUI_DEV_URL "$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip"  # gnomeprint
+set_default GTKHTML_URL "$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-3.12.2.zip"  # gnomeprint
+set_default GTKHTML_DEV_URL "$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-dev-3.12.2.zip"  # gnomeprint
+#set_default GTKHTML_URL "$GNOME_WIN32_URL/gtkhtml/3.14/gtkhtml-3.14.0.zip"  # not gnomeprint
+#set_default GTKHTML_DEV_URL "$GNOME_WIN32_URL/gtkhtml/3.14/gtkhtml-dev-3.14.0.zip"  # not gnomeprint
+set_default GNOME_DIR $GLOBAL_DIR\\gnome
+
+set_default SWIG_URL "$SF_MIRROR/swig/swigwin-1.3.31.zip"
+set_default SWIG_DIR $GLOBAL_DIR\\swig
+
+set_default PCRE_BIN_URL "$SF_MIRROR/gnuwin32/pcre-6.4-1-bin.zip"
+set_default PCRE_LIB_URL "$SF_MIRROR/gnuwin32/pcre-6.4-1-lib.zip"
+set_default PCRE_DIR $GLOBAL_DIR\\pcre
+
+set_default LIBGSF_URL "$GNOME_MIRROR/sources/libgsf/1.14/libgsf-1.14.3.tar.bz2"
+set_default LIBGSF_DIR $GLOBAL_DIR\\libgsf
+
+set_default GOFFICE_URL "$GNOME_MIRROR/sources/goffice/0.3/goffice-0.3.7.tar.bz2"
+set_default GOFFICE_DIR $GLOBAL_DIR\\goffice
+set_default GOFFICE_PATCH `pwd`/goffice-0.3.7-patch.diff
+
+set_default GLADE_URL "$GNOME_MIRROR/sources/glade3/3.0/glade3-3.1.2.tar.bz2"
+set_default GLADE_DIR $GLOBAL_DIR\\glade
+
+set_default INNO_URL "http://files.jrsoftware.org/is/5/isetup-5.1.9.exe"
+set_default INNO_DIR $GLOBAL_DIR\\inno
+
+set_default HH_URL "http://download.microsoft.com/download/OfficeXPProf/Install/4.71.1015.0/W98NT42KMe/EN-US/HTMLHELP.EXE"
+set_default HH_DIR $GLOBAL_DIR\\hh
+
+set_default SVN_URL "http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe"
+set_default SVN_DIR $GLOBAL_DIR\\svn
+
+# OFX import in gnucash and ofx directconnect support for aqbanking
+set_default OPENSP_URL "$SF_MIRROR/openjade/OpenSP-1.5.2.tar.gz"
+set_default OPENSP_DIR $GLOBAL_DIR\\opensp
+set_default OPENSP_PATCH `pwd`/opensp-1.5.2-patch.diff
+
+set_default LIBOFX_URL "$SF_MIRROR/libofx/libofx-0.8.3.tar.gz"
+set_default LIBOFX_DIR $GLOBAL_DIR\\libofx
+set_default LIBOFX_PATCH `pwd`/libofx-0.8.3-patch.diff
+
+## online banking: gwenhywfar+aqbanking
+set_default GWENHYWFAR_URL "$SF_MIRROR/gwenhywfar/gwenhywfar-2.5.4.tar.gz"
+set_default GWENHYWFAR_DIR $GLOBAL_DIR\\gwenhywfar
+
+set_default KTOBLZCHECK_URL "$SF_MIRROR/ktoblzcheck/ktoblzcheck-1.13.tar.gz"
+# ktoblzcheck is being installed into GWENHYWFAR_DIR
+
+set_default AQBANKING_URL "$SF_MIRROR/aqbanking/aqbanking-2.2.9.tar.gz"
+set_default AQBANKING_DIR $GLOBAL_DIR\\aqbanking
+set_default AQBANKING_WITH_QT yes
+# If set to yes, download Qt from http://www.trolltech.com/developer/downloads/qt/windows,
+# install it and set QTDIR in custom.sh, like "QTDIR=/c/Qt/4.2.3".
+
+set_default DOCBOOK_XSL_URL "$SF_MIRROR/docbook/docbook-xsl-1.72.0.zip"
+set_default DOCS_URL "http://svn.gnucash.org/repo/gnucash-docs/trunk"
+set_default DOCS_DIR $GLOBAL_DIR\\gnucash-docs
+##
+
+# There is no reason to ever need to comment these out!
+# * commented out glade, as it is not needed to run gnucash
+if test x$cross_compile != xyes ; then
+ add_step inst_wget
+ add_step inst_dtk
+ add_step inst_mingw
+ add_step inst_unzip
+fi
+add_step inst_regex
+add_step inst_readline
+if test x$cross_compile != xyes ; then
+ add_step inst_active_perl
+fi
+add_step inst_autotools
+add_step inst_guile
+if test x$cross_compile != xyes ; then
+ add_step inst_svn
+ add_step inst_openssl
+fi
+add_step inst_mingwutils
+add_step inst_exetype
+add_step inst_libxml2
+add_step inst_gnome
+add_step inst_swig
+add_step inst_pcre
+add_step inst_libgsf
+add_step inst_goffice
+#add_step inst_glade
+add_step inst_opensp
+add_step inst_libofx
+## Online banking:
+add_step inst_gwenhywfar
+add_step inst_ktoblzcheck
+add_step inst_aqbanking
+##
+if test x$cross_compile != xyes ; then
+ add_step inst_inno
+ add_step inst_hh
+fi
+if test x$UPDATE_SOURCES = xyes ; then
+ add_step svn_up
+fi
+add_step inst_gnucash
+add_step inst_docs
+
+# run commands registered with late_eval
+eval_now

Added: gnucash/branches/gda-dev/packaging/win32/functions.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/functions.sh	2007-04-28 03:03:37 UTC (rev 16004)
+++ gnucash/branches/gda-dev/packaging/win32/functions.sh	2007-04-28 03:05:27 UTC (rev 16005)
@@ -0,0 +1,148 @@
+[ "$__SOURCED_FUNCTIONS" ] && return
+__SOURCED_FUNCTIONS=1
+
+function set_default() {
+    local _varname=$1; shift
+    if [ -z "`eval echo '"$'"$_varname"'"'`" ]; then
+        eval "$_varname"'="'"$*"'"'
+    fi
+}
+
+function block_step() { blocked_steps=("${blocked_steps[@]}" "$@"); }
+function add_step() {
+    while [ "$1" ]; do
+        _is_blocked=
+        for blocked in "${blocked_steps[@]}"; do
+            if [ "$blocked" = "$1" ]; then
+                _is_blocked=yes
+                break
+            fi
+        done
+        if [ "$_is_blocked" != "yes" ]; then
+            steps=("${steps[@]}" "$1")
+            block_step "$1"
+        fi
+        shift
+    done
+}
+
+function late_eval() { late_cmds=("${late_cmds[@]}" "$@"); }
+function eval_now() {
+    for cmd in "${late_cmds[@]}"; do
+        eval $cmd
+    done
+}
+
+function quiet() { "$@" &>/dev/null; }
+
+# c:/dir/sub
+function win_fs_path() { echo "$*" | sed 's,\\,/,g'; }
+
+# usage:  wpwd [rel]
+# rel can be any relative path
+function wpwd() {
+    qpushd `unix_path "${1:-.}"`
+        pwd -W
+    qpopd
+}
+
+# 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 setup() {
+    echo
+    echo "############################################################"
+    echo "###  $*"
+    echo "############################################################"
+}
+
+function die() {
+    echo
+    [ "$*" ] && echo "!!! $* !!!"
+    echo "!!! ABORTING !!!"
+    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
+}
+
+# usage: set_env_or_die VALUE NAME
+function set_env_or_die() {
+    _OLDADDS=`eval echo '"$'"$2_ADDS"'"'`
+    add_to_env "$1" "$2"
+    _NEWADDS=`eval echo '"$'"$2_ADDS"'"'`
+    if [ "$_OLDADDS" != "$_NEWADDS" ]; then
+        _BASE=`eval echo '"$'"$2_BASE"'"'`
+        if [ "$_BASE" ]; then
+            _ENV=`eval echo '"$'"$2"'"'`
+            echo "Must not overwrite environment variable '$2' (${_OLDADDS}${_BASE}) by '$1'."
+            echo "Try to remove the offending installed software or unset the variable."
+            die
+        fi
+    fi
+}
+
+function assert_one_dir() {
+    quiet [ -d "$@" ] || die "Detected multiple directories where only one was expected; please delete all but the latest one: $@"
+}
+
+### Local Variables: ***
+### mode: shell-script ***
+### sh-basic-offset: 4 ***
+### tab-width: 8 ***
+### End: ***



More information about the gnucash-changes mailing list