r19184 - gnucash/trunk/packaging/win32 - Bug #618505 - Separate shell functions files from variables and steps files, patch by Yasuaki Taniguchi

Geert Janssens gjanssens at code.gnucash.org
Thu May 20 04:08:36 EDT 2010


Author: gjanssens
Date: 2010-05-20 04:08:35 -0400 (Thu, 20 May 2010)
New Revision: 19184
Trac: http://svn.gnucash.org/trac/changeset/19184

Added:
   gnucash/trunk/packaging/win32/custom.sh.sample
   gnucash/trunk/packaging/win32/dist-impl.sh
   gnucash/trunk/packaging/win32/install-impl.sh
Modified:
   gnucash/trunk/packaging/win32/defaults.sh
   gnucash/trunk/packaging/win32/dist.sh
   gnucash/trunk/packaging/win32/install.sh
Log:
Bug #618505 - Separate shell functions files from variables and steps files, patch by Yasuaki Taniguchi

Added: gnucash/trunk/packaging/win32/custom.sh.sample
===================================================================
--- gnucash/trunk/packaging/win32/custom.sh.sample	                        (rev 0)
+++ gnucash/trunk/packaging/win32/custom.sh.sample	2010-05-20 08:08:35 UTC (rev 19184)
@@ -0,0 +1,19 @@
+#! /bin/bash
+# This is an example custom.sh file. Copy this file to custom.sh and 
+# edit it.
+# 
+# Note: All directories must be without spaces!
+#
+# 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
+# WGET_RATE=50k         #limit download bandwith to 50KB/s
+# NO_SAVE_PROFILE=yes   # don't save env settings to /etc/profile.d
+# 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; }
+# QTDIR=c:\\Qt\\4.2.3
+# CROSS_COMPILE=yes

Modified: gnucash/trunk/packaging/win32/defaults.sh
===================================================================
--- gnucash/trunk/packaging/win32/defaults.sh	2010-05-19 22:00:48 UTC (rev 19183)
+++ gnucash/trunk/packaging/win32/defaults.sh	2010-05-20 08:08:35 UTC (rev 19184)
@@ -1,7 +1,7 @@
 #!/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.
+# Don't edit this file directly. Edit `custom.sh' in the same directory
+# instead. 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
@@ -9,28 +9,9 @@
 # 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
-# WGET_RATE=50k         #limit download bandwith to 50KB/s
-# NO_SAVE_PROFILE=yes   # don't save env settings to /etc/profile.d
-# 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
 
@@ -388,71 +369,8 @@
 set_default DOCS_URL "http://svn.gnucash.org/repo/gnucash-docs/trunk"
 set_default DOCS_DIR $GLOBAL_DIR\\gnucash-docs
 set_default XSLTPROCFLAGS ""
-##
 
-# There is no reason to ever need to comment these out!
-# * commented out glade, as it is not needed to run gnucash
-add_step prepare
-if [ "$CROSS_COMPILE" != "yes" ]; then
- add_step inst_wget
- add_step inst_dtk
- add_step inst_unzip
-fi
-add_step inst_mingw
-add_step inst_regex
-add_step inst_readline
-if [ "$CROSS_COMPILE" != "yes" ]; then
- add_step inst_active_perl
- add_step inst_mingwutils
-fi
-add_step inst_autotools
-if [ "$AQBANKING3" = "yes" ]; then
- add_step inst_gmp
-fi
-add_step inst_guile
-if [ "$CROSS_COMPILE" != "yes" ]; then
- add_step inst_svn
- if [ "$AQBANKING3" != "yes" ]; then
-  add_step inst_openssl
- fi
-fi
-add_step inst_exetype
-add_step inst_libxslt
-add_step inst_gnome
-if [ "$AQBANKING3" = "yes" ]; then
- add_step inst_gnutls
-fi
-add_step inst_swig
-add_step inst_pcre
-add_step inst_libbonoboui
-add_step inst_libgsf
-if [ "$CROSS_COMPILE" != "yes" ]; then
- add_step inst_hh
-fi
-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
-add_step inst_libdbi
-add_step inst_webkit
-##
-if [ "$UPDATE_SOURCES" = "yes" ]; then
- add_step svn_up
-fi
-if [ "$WITH_CUTECASH" = "yes" ]; then
- add_step inst_cmake
- add_step inst_cutecash
-fi
-add_step inst_gnucash
-add_step inst_docs
-if [ "$CROSS_COMPILE" != "yes" ]; then
- add_step inst_inno
-fi
-add_step finish
-
-# run commands registered with late_eval
-eval_now
+### Local Variables: ***
+### sh-basic-offset: 4 ***
+### indent-tabs-mode: nil ***
+### End: ***

Added: gnucash/trunk/packaging/win32/dist-impl.sh
===================================================================
--- gnucash/trunk/packaging/win32/dist-impl.sh	                        (rev 0)
+++ gnucash/trunk/packaging/win32/dist-impl.sh	2010-05-20 08:08:35 UTC (rev 19184)
@@ -0,0 +1,289 @@
+#!/bin/sh
+#
+# GnuCash shellscript functions for dist.sh
+# 
+
+function dist_prepare() {
+    # this directory is hardcoded in gnucash.iss.in
+    DIST_DIR=${INSTALL_DIR}\\..\\dist
+    DIST_UDIR=`unix_path $DIST_DIR`
+    DIST_WFSDIR=`win_fs_path $DIST_DIR`
+    TMP_UDIR=`unix_path $TMP_DIR`
+    if [ -x $DIST_DIR ]; then
+        die "Please remove ${DIST_DIR} first"
+    fi
+    if [ x$AQBANKING_WITH_QT != xyes ]; then
+        die "The aqbanking wizard is required to create the Windows installer.
+Please set AQBANKING_WITH_QT to yes and rerun install.sh 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`
+    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
+    _GNOME_UDIR=`unix_path $GNOME_DIR`
+    _PCRE_UDIR=`unix_path $PCRE_DIR`
+    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
+    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
+    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
+    _OPENSP_UDIR=`unix_path $OPENSP_DIR`
+    _LIBOFX_UDIR=`unix_path $LIBOFX_DIR`
+    _GMP_UDIR=`unix_path $GMP_DIR`
+    _GNUTLS_UDIR=`unix_path $GNUTLS_DIR`
+    _GWENHYWFAR_UDIR=`unix_path $GWENHYWFAR_DIR`
+    _AQBANKING_UDIR=`unix_path $AQBANKING_DIR`
+    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
+    _MYSQL_LIB_UDIR=`unix_path ${MYSQL_LIB_DIR}`
+    _PGSQL_UDIR=`unix_path ${PGSQL_DIR}`
+    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
+    _LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
+    _LIBGDA_UDIR=`unix_path $LIBGDA_DIR`
+    _GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
+    _REPOS_UDIR=`unix_path $REPOS_DIR`
+    _BUILD_UDIR=`unix_path $BUILD_DIR`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
+    _INNO_UDIR=`unix_path $INNO_DIR`
+    _WEBKIT_UDIR=`unix_path $WEBKIT_DIR`
+    add_to_env $_UNZIP_UDIR/bin PATH # unzip
+    add_to_env $_GNOME_UDIR/bin PATH # gconftool-2
+    add_to_env $_EXETYPE_UDIR/bin PATH # exetype
+}
+
+function dist_regex() {
+    setup RegEx
+    smart_wget $REGEX_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE bin/libgnurx-0.dll -d $DIST_DIR
+}
+
+function dist_autotools() {
+    setup Autotools
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin
+}
+
+function dist_guile() {
+    setup Guile
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_GUILE_UDIR/bin/libguile{.,-ltdl.,-srfi}*dll $DIST_UDIR/bin
+    cp -a $_GUILE_UDIR/bin/guile.exe $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/share
+    cp -a $_GUILE_UDIR/share/guile $DIST_UDIR/share
+    [ -f $DIST_UDIR/share/guile/1.6/slibcat ] && rm $DIST_UDIR/share/guile/1.6/slibcat
+}
+
+function dist_openssl() {
+    setup OpenSSL
+    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_OPENSSL_UDIR/bin/*.dll $DIST_UDIR/bin
+}
+
+function dist_gnome() {
+    setup Gnome platform
+    wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GETTEXT_RUNTIME_URL $DOWNLOAD_DIR $DIST_DIR
+    smart_wget $LIBICONV_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE bin/iconv.dll -d $DIST_DIR
+    wget_unpacked $GLIB_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBJPEG_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBPNG_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBTIFF_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $ZLIB_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $ATK_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $PANGO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBART_LGPL_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GTK_URL $DOWNLOAD_DIR $DIST_DIR
+    cp $DIST_DIR/share/themes/MS-Windows/gtk-2.0/gtkrc $DIST_DIR/etc/gtk-2.0
+    wget_unpacked $ORBIT2_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GAIL_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $POPT_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GCONF_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBBONOBO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GNOME_VFS_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOME_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMECANVAS_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBBONOBOUI_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMEUI_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGLADE_URL $DOWNLOAD_DIR $DIST_DIR
+	wget_unpacked $PIXMAN_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $DIST_DIR
+    rm -rf $DIST_UDIR/etc/gconf/gconf.xml.defaults/{desktop,schemas}
+    cp -a $DIST_UDIR/lib/locale $DIST_UDIR/share
+    rm -rf $DIST_UDIR/lib/locale
+}
+
+function dist_pcre() {
+    setup pcre
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_PCRE_UDIR/bin/pcre3.dll $DIST_UDIR/bin
+}
+
+function dist_libbonoboui() {
+    setup libbonoboui
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $DIST_UDIR/bin
+}
+
+function dist_libgsf() {
+    setup libGSF
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/share
+    cp -a $_LIBGSF_UDIR/share/locale $DIST_UDIR/lib
+}
+
+function dist_goffice() {
+    setup GOffice
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/lib
+    cp -a $_GOFFICE_UDIR/lib/goffice $DIST_UDIR/lib
+    mkdir -p $DIST_UDIR/share
+    cp -a $_GOFFICE_UDIR/share/{goffice,locale,pixmaps} $DIST_UDIR/share
+}
+
+function dist_libofx() {
+    setup OpenSP and LibOFX
+    cp -a ${_OPENSP_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_OPENSP_UDIR}/share/OpenSP ${DIST_UDIR}/share
+    cp -a ${_LIBOFX_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_LIBOFX_UDIR}/bin/*.exe ${DIST_UDIR}/bin
+    cp -a ${_LIBOFX_UDIR}/share/libofx ${DIST_UDIR}/share
+}
+
+function dist_gnutls() {
+    setup gnutls
+    cp -a ${_GNUTLS_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_GNUTLS_UDIR}/bin/*.exe ${DIST_UDIR}/bin
+}
+
+function dist_gmp() {
+    setup gmp
+    cp -a ${_GMP_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+}
+
+function dist_gwenhywfar() {
+    setup gwenhywfar
+    cp -a ${_GWENHYWFAR_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    mkdir -p ${DIST_UDIR}/etc
+    if [ "$AQBANKING3" != "yes" ]; then
+        cp -a ${_GWENHYWFAR_UDIR}/etc/* ${DIST_UDIR}/etc
+    fi
+    cp -a ${_GWENHYWFAR_UDIR}/lib/gwenhywfar ${DIST_UDIR}/lib
+    mkdir -p ${DIST_UDIR}/share/gwenhywfar
+    cp -a ${_GWENHYWFAR_UDIR}/share/gwenhywfar/ca-bundle.crt ${DIST_UDIR}/share/gwenhywfar
+}
+
+function dist_ktoblzcheck() {
+    setup ktoblzcheck
+    # dll is already copied in dist_gwenhywfar
+    cp -a ${_GWENHYWFAR_UDIR}/share/ktoblzcheck ${DIST_UDIR}/share
+}
+
+function dist_aqbanking() {
+    setup aqbanking
+    cp -a ${_AQBANKING_UDIR}/bin/*.exe ${DIST_UDIR}/bin
+    cp -a ${_AQBANKING_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_AQBANKING_UDIR}/lib/aqbanking ${DIST_UDIR}/lib
+    cp -a ${_AQBANKING_UDIR}/share/aqbanking ${DIST_UDIR}/share
+    if [ "$AQBANKING3" != "yes" ]; then
+        cp -a ${_AQBANKING_UDIR}/share/aqhbci ${DIST_UDIR}/share
+    fi
+    cp -a ${_AQBANKING_UDIR}/share/locale ${DIST_UDIR}/lib
+}
+
+function dist_libdbi() {
+    setup LibDBI
+    cp -a ${_SQLITE3_UDIR}/bin/* ${DIST_UDIR}/bin
+    cp -a ${_SQLITE3_UDIR}/lib/* ${DIST_UDIR}/lib
+    cp -a ${_MYSQL_LIB_UDIR}/bin/* ${DIST_UDIR}/bin
+    cp -a ${_MYSQL_LIB_UDIR}/lib/* ${DIST_UDIR}/lib
+    cp -a ${_PGSQL_UDIR}/bin/* ${DIST_UDIR}/bin
+    cp -a ${_PGSQL_UDIR}/lib/* ${DIST_UDIR}/lib
+    cp -a ${_LIBDBI_UDIR}/bin/* ${DIST_UDIR}/bin
+    cp -a ${_LIBDBI_UDIR}/lib/* ${DIST_UDIR}/lib
+    mkdir ${DIST_UDIR}/lib/dbd
+    cp -a ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/* ${DIST_UDIR}/lib/dbd
+}
+
+function dist_webkit() {
+    setup WebKit
+    cp -a ${_WEBKIT_UDIR}/bin/* ${DIST_UDIR}/bin
+}
+
+function dist_gnucash() {
+    setup GnuCash
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_INSTALL_UDIR/bin/* $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/etc/gconf/schemas
+    cp -a $_INSTALL_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas
+    mkdir -p $DIST_UDIR/lib
+    cp -a $_INSTALL_UDIR/lib/lib*.la $DIST_UDIR/lib
+    mkdir -p $DIST_UDIR/lib/gnucash
+    cp -a $_INSTALL_UDIR/lib/gnucash/lib*.dll $DIST_UDIR/lib/gnucash
+    cp -a $_INSTALL_UDIR/libexec $DIST_UDIR
+    mkdir -p $DIST_UDIR/share
+    cp -a $_INSTALL_UDIR/share/{gnucash,locale} $DIST_UDIR/share
+    cp -a $_REPOS_UDIR/packaging/win32/install-fq-mods.cmd $DIST_UDIR/bin
+
+    _QTDIR_WIN=$(unix_path $QTDIR | sed 's,^/\([A-Za-z]\)/,\1:/,g' )
+    _AQBANKING_SO_EFFECTIVE=$(awk '/AQBANKING_SO_EFFECTIVE / { print $3 }' ${_AQBANKING_UDIR}/include/aqbanking/version.h )
+    _GWENHYWFAR_SO_EFFECTIVE=$(awk '/GWENHYWFAR_SO_EFFECTIVE / { print $3 }' ${_GWENHYWFAR_UDIR}/include/gwenhywfar3/gwenhywfar/version.h )
+    sed < $_BUILD_UDIR/packaging/win32/gnucash.iss \
+        > $_GNUCASH_UDIR/gnucash.iss \
+        -e "s#@-qtbindir-@#${_QTDIR_WIN}/bin#g" \
+	-e "s#@-gwenhywfar_so_effective-@#${_GWENHYWFAR_SO_EFFECTIVE}#g" \
+	-e "s#@-aqbanking_so_effective-@#${_AQBANKING_SO_EFFECTIVE}#g"
+}
+
+function dist_finish() {
+    for file in $DIST_UDIR/etc/gconf/schemas/*.schemas; do
+        echo -n "Installing $file ... "
+        gconftool-2 \
+            --config-source=xml:merged:${DIST_WFSDIR}/etc/gconf/gconf.xml.defaults \
+            --install-schema-file $file >/dev/null
+        echo "done"
+    done
+    gconftool-2 --shutdown
+
+    mv $DIST_UDIR/libexec/gconfd-2.exe $DIST_UDIR/bin
+    exetype $DIST_UDIR/bin/gconfd-2.exe windows
+    cp $_INSTALL_UDIR/bin/redirect.exe $DIST_UDIR/libexec/gconfd-2.exe
+
+    if [ "$AQBANKING_WITH_QT" = "yes" ]; then
+        assert_one_dir ${DIST_UDIR}/lib/aqbanking/plugins/*/wizards
+        _qt3_wizard_path=`ls ${DIST_UDIR}/lib/aqbanking/plugins/*/wizards/qt3-wizard.exe` 
+        mv ${_qt3_wizard_path} $DIST_UDIR/bin
+        cp $_INSTALL_UDIR/bin/redirect.exe ${_qt3_wizard_path}
+    fi
+
+    # Strip redirections in distributed libtool .la files
+    for file in $DIST_UDIR/lib/*.la; do
+        cat $file | sed 's,^libdir=,#libdir=,' > $file.new
+        mv $file.new $file
+    done
+
+    echo "Now running the Inno Setup Compiler for creating the setup.exe"
+    ${_INNO_UDIR}/iscc //Q ${_GNUCASH_UDIR}/gnucash.iss
+
+    if [ "$BUILD_FROM_TARBALL" = "no" ]; then
+        # And changing output filename
+        PKG_VERSION=`grep PACKAGE_VERSION ${_BUILD_UDIR}/config.h | cut -d" " -f3 | cut -d\" -f2 `
+        SVN_REV=`grep GNUCASH_SVN_REV ${_BUILD_UDIR}/src/gnome-utils/gnc-svninfo.h | cut -d" " -f3 | cut -d\" -f2 `
+        SETUP_FILENAME="gnucash-${PKG_VERSION}-svn-r${SVN_REV}-setup.exe"
+        qpushd ${_GNUCASH_UDIR}
+            mv gnucash-${PKG_VERSION}-setup.exe ${SETUP_FILENAME}
+        qpopd
+        echo "Final resulting Setup program is:"
+        echo ${_GNUCASH_UDIR}/${SETUP_FILENAME}
+    fi
+}
+
+### Local Variables: ***
+### sh-basic-offset: 4 ***
+### indent-tabs-mode: nil ***
+### End: ***


Property changes on: gnucash/trunk/packaging/win32/dist-impl.sh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:eol-style
   + native

Modified: gnucash/trunk/packaging/win32/dist.sh
===================================================================
--- gnucash/trunk/packaging/win32/dist.sh	2010-05-19 22:00:48 UTC (rev 19183)
+++ gnucash/trunk/packaging/win32/dist.sh	2010-05-20 08:08:35 UTC (rev 19184)
@@ -9,312 +9,43 @@
 qpushd "$(dirname $(unix_path "$0"))"
 . functions.sh
 . defaults.sh
+. dist-impl.sh
 
+# variables
 register_env_var PATH ":"
 
-function prepare() {
-    # this directory is hardcoded in gnucash.iss.in
-    DIST_DIR=${INSTALL_DIR}\\..\\dist
-    DIST_UDIR=`unix_path $DIST_DIR`
-    DIST_WFSDIR=`win_fs_path $DIST_DIR`
-    TMP_UDIR=`unix_path $TMP_DIR`
-    if [ -x $DIST_DIR ]; then
-        die "Please remove ${DIST_DIR} first"
-    fi
-    if [ x$AQBANKING_WITH_QT != xyes ]; then
-        die "The aqbanking wizard is required to create the Windows installer.
-Please set AQBANKING_WITH_QT to yes and rerun install.sh 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`
-    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
-    _GNOME_UDIR=`unix_path $GNOME_DIR`
-    _PCRE_UDIR=`unix_path $PCRE_DIR`
-    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
-    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
-    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
-    _OPENSP_UDIR=`unix_path $OPENSP_DIR`
-    _LIBOFX_UDIR=`unix_path $LIBOFX_DIR`
-    _GMP_UDIR=`unix_path $GMP_DIR`
-    _GNUTLS_UDIR=`unix_path $GNUTLS_DIR`
-    _GWENHYWFAR_UDIR=`unix_path $GWENHYWFAR_DIR`
-    _AQBANKING_UDIR=`unix_path $AQBANKING_DIR`
-    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
-    _MYSQL_LIB_UDIR=`unix_path ${MYSQL_LIB_DIR}`
-    _PGSQL_UDIR=`unix_path ${PGSQL_DIR}`
-    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
-    _LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
-    _LIBGDA_UDIR=`unix_path $LIBGDA_DIR`
-    _GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
-    _REPOS_UDIR=`unix_path $REPOS_DIR`
-    _BUILD_UDIR=`unix_path $BUILD_DIR`
-    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
-    _INNO_UDIR=`unix_path $INNO_DIR`
-    _WEBKIT_UDIR=`unix_path $WEBKIT_DIR`
-    add_to_env $_UNZIP_UDIR/bin PATH # unzip
-    add_to_env $_GNOME_UDIR/bin PATH # gconftool-2
-    add_to_env $_EXETYPE_UDIR/bin PATH # exetype
-}
-
-function dist_regex() {
-    setup RegEx
-    smart_wget $REGEX_URL $DOWNLOAD_DIR
-    unzip -q $LAST_FILE bin/libgnurx-0.dll -d $DIST_DIR
-}
-
-function dist_autotools() {
-    setup Autotools
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin
-}
-
-function dist_guile() {
-    setup Guile
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_GUILE_UDIR/bin/libguile{.,-ltdl.,-srfi}*dll $DIST_UDIR/bin
-    cp -a $_GUILE_UDIR/bin/guile.exe $DIST_UDIR/bin
-    mkdir -p $DIST_UDIR/share
-    cp -a $_GUILE_UDIR/share/guile $DIST_UDIR/share
-    [ -f $DIST_UDIR/share/guile/1.6/slibcat ] && rm $DIST_UDIR/share/guile/1.6/slibcat
-}
-
-function dist_openssl() {
-    setup OpenSSL
-    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_OPENSSL_UDIR/bin/*.dll $DIST_UDIR/bin
-}
-
-function dist_gnome() {
-    setup Gnome platform
-    wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GETTEXT_RUNTIME_URL $DOWNLOAD_DIR $DIST_DIR
-    smart_wget $LIBICONV_URL $DOWNLOAD_DIR
-    unzip -q $LAST_FILE bin/iconv.dll -d $DIST_DIR
-    wget_unpacked $GLIB_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBJPEG_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBPNG_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBTIFF_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $ZLIB_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $ATK_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $PANGO_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBART_LGPL_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GTK_URL $DOWNLOAD_DIR $DIST_DIR
-    cp $DIST_DIR/share/themes/MS-Windows/gtk-2.0/gtkrc $DIST_DIR/etc/gtk-2.0
-    wget_unpacked $ORBIT2_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GAIL_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $POPT_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GCONF_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBBONOBO_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GNOME_VFS_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBGNOME_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBGNOMECANVAS_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBBONOBOUI_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBGNOMEUI_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $LIBGLADE_URL $DOWNLOAD_DIR $DIST_DIR
-	wget_unpacked $PIXMAN_URL $DOWNLOAD_DIR $DIST_DIR
-    wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $DIST_DIR
-    rm -rf $DIST_UDIR/etc/gconf/gconf.xml.defaults/{desktop,schemas}
-    cp -a $DIST_UDIR/lib/locale $DIST_UDIR/share
-    rm -rf $DIST_UDIR/lib/locale
-}
-
-function dist_pcre() {
-    setup pcre
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_PCRE_UDIR/bin/pcre3.dll $DIST_UDIR/bin
-}
-
-function dist_libbonoboui() {
-    setup libbonoboui
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $DIST_UDIR/bin
-}
-
-function dist_libgsf() {
-    setup libGSF
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin
-    mkdir -p $DIST_UDIR/share
-    cp -a $_LIBGSF_UDIR/share/locale $DIST_UDIR/lib
-}
-
-function dist_goffice() {
-    setup GOffice
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin
-    mkdir -p $DIST_UDIR/lib
-    cp -a $_GOFFICE_UDIR/lib/goffice $DIST_UDIR/lib
-    mkdir -p $DIST_UDIR/share
-    cp -a $_GOFFICE_UDIR/share/{goffice,locale,pixmaps} $DIST_UDIR/share
-}
-
-function dist_libofx() {
-    setup OpenSP and LibOFX
-    cp -a ${_OPENSP_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-    cp -a ${_OPENSP_UDIR}/share/OpenSP ${DIST_UDIR}/share
-    cp -a ${_LIBOFX_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-    cp -a ${_LIBOFX_UDIR}/bin/*.exe ${DIST_UDIR}/bin
-    cp -a ${_LIBOFX_UDIR}/share/libofx ${DIST_UDIR}/share
-}
-
-function dist_gnutls() {
-    setup gnutls
-    cp -a ${_GNUTLS_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-    cp -a ${_GNUTLS_UDIR}/bin/*.exe ${DIST_UDIR}/bin
-}
-
-function dist_gmp() {
-    setup gmp
-    cp -a ${_GMP_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-}
-
-function dist_gwenhywfar() {
-    setup gwenhywfar
-    cp -a ${_GWENHYWFAR_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-    mkdir -p ${DIST_UDIR}/etc
-    if [ "$AQBANKING3" != "yes" ]; then
-        cp -a ${_GWENHYWFAR_UDIR}/etc/* ${DIST_UDIR}/etc
-    fi
-    cp -a ${_GWENHYWFAR_UDIR}/lib/gwenhywfar ${DIST_UDIR}/lib
-    mkdir -p ${DIST_UDIR}/share/gwenhywfar
-    cp -a ${_GWENHYWFAR_UDIR}/share/gwenhywfar/ca-bundle.crt ${DIST_UDIR}/share/gwenhywfar
-}
-
-function dist_ktoblzcheck() {
-    setup ktoblzcheck
-    # dll is already copied in dist_gwenhywfar
-    cp -a ${_GWENHYWFAR_UDIR}/share/ktoblzcheck ${DIST_UDIR}/share
-}
-
-function dist_aqbanking() {
-    setup aqbanking
-    cp -a ${_AQBANKING_UDIR}/bin/*.exe ${DIST_UDIR}/bin
-    cp -a ${_AQBANKING_UDIR}/bin/*.dll ${DIST_UDIR}/bin
-    cp -a ${_AQBANKING_UDIR}/lib/aqbanking ${DIST_UDIR}/lib
-    cp -a ${_AQBANKING_UDIR}/share/aqbanking ${DIST_UDIR}/share
-    if [ "$AQBANKING3" != "yes" ]; then
-        cp -a ${_AQBANKING_UDIR}/share/aqhbci ${DIST_UDIR}/share
-    fi
-    cp -a ${_AQBANKING_UDIR}/share/locale ${DIST_UDIR}/lib
-}
-
-function dist_libdbi() {
-    setup LibDBI
-    cp -a ${_SQLITE3_UDIR}/bin/* ${DIST_UDIR}/bin
-    cp -a ${_SQLITE3_UDIR}/lib/* ${DIST_UDIR}/lib
-    cp -a ${_MYSQL_LIB_UDIR}/bin/* ${DIST_UDIR}/bin
-    cp -a ${_MYSQL_LIB_UDIR}/lib/* ${DIST_UDIR}/lib
-    cp -a ${_PGSQL_UDIR}/bin/* ${DIST_UDIR}/bin
-    cp -a ${_PGSQL_UDIR}/lib/* ${DIST_UDIR}/lib
-    cp -a ${_LIBDBI_UDIR}/bin/* ${DIST_UDIR}/bin
-    cp -a ${_LIBDBI_UDIR}/lib/* ${DIST_UDIR}/lib
-    mkdir ${DIST_UDIR}/lib/dbd
-    cp -a ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/* ${DIST_UDIR}/lib/dbd
-}
-
-function dist_webkit() {
-    setup WebKit
-    cp -a ${_WEBKIT_UDIR}/bin/* ${DIST_UDIR}/bin
-}
-
-function dist_gnucash() {
-    setup GnuCash
-    mkdir -p $DIST_UDIR/bin
-    cp -a $_INSTALL_UDIR/bin/* $DIST_UDIR/bin
-    mkdir -p $DIST_UDIR/etc/gconf/schemas
-    cp -a $_INSTALL_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas
-    mkdir -p $DIST_UDIR/lib
-    cp -a $_INSTALL_UDIR/lib/lib*.la $DIST_UDIR/lib
-    mkdir -p $DIST_UDIR/lib/gnucash
-    cp -a $_INSTALL_UDIR/lib/gnucash/lib*.dll $DIST_UDIR/lib/gnucash
-    cp -a $_INSTALL_UDIR/libexec $DIST_UDIR
-    mkdir -p $DIST_UDIR/share
-    cp -a $_INSTALL_UDIR/share/{gnucash,locale} $DIST_UDIR/share
-    cp -a $_REPOS_UDIR/packaging/win32/install-fq-mods.cmd $DIST_UDIR/bin
-
-    _QTDIR_WIN=$(unix_path $QTDIR | sed 's,^/\([A-Za-z]\)/,\1:/,g' )
-    _AQBANKING_SO_EFFECTIVE=$(awk '/AQBANKING_SO_EFFECTIVE / { print $3 }' ${_AQBANKING_UDIR}/include/aqbanking/version.h )
-    _GWENHYWFAR_SO_EFFECTIVE=$(awk '/GWENHYWFAR_SO_EFFECTIVE / { print $3 }' ${_GWENHYWFAR_UDIR}/include/gwenhywfar3/gwenhywfar/version.h )
-    sed < $_BUILD_UDIR/packaging/win32/gnucash.iss \
-        > $_GNUCASH_UDIR/gnucash.iss \
-        -e "s#@-qtbindir-@#${_QTDIR_WIN}/bin#g" \
-	-e "s#@-gwenhywfar_so_effective-@#${_GWENHYWFAR_SO_EFFECTIVE}#g" \
-	-e "s#@-aqbanking_so_effective-@#${_AQBANKING_SO_EFFECTIVE}#g"
-}
-
-function finish() {
-    for file in $DIST_UDIR/etc/gconf/schemas/*.schemas; do
-        echo -n "Installing $file ... "
-        gconftool-2 \
-            --config-source=xml:merged:${DIST_WFSDIR}/etc/gconf/gconf.xml.defaults \
-            --install-schema-file $file >/dev/null
-        echo "done"
-    done
-    gconftool-2 --shutdown
-
-    mv $DIST_UDIR/libexec/gconfd-2.exe $DIST_UDIR/bin
-    exetype $DIST_UDIR/bin/gconfd-2.exe windows
-    cp $_INSTALL_UDIR/bin/redirect.exe $DIST_UDIR/libexec/gconfd-2.exe
-
-    if [ "$AQBANKING_WITH_QT" = "yes" ]; then
-        assert_one_dir ${DIST_UDIR}/lib/aqbanking/plugins/*/wizards
-        _qt3_wizard_path=`ls ${DIST_UDIR}/lib/aqbanking/plugins/*/wizards/qt3-wizard.exe` 
-        mv ${_qt3_wizard_path} $DIST_UDIR/bin
-        cp $_INSTALL_UDIR/bin/redirect.exe ${_qt3_wizard_path}
-    fi
-
-    # Strip redirections in distributed libtool .la files
-    for file in $DIST_UDIR/lib/*.la; do
-        cat $file | sed 's,^libdir=,#libdir=,' > $file.new
-        mv $file.new $file
-    done
-
-    echo "Now running the Inno Setup Compiler for creating the setup.exe"
-    ${_INNO_UDIR}/iscc //Q ${_GNUCASH_UDIR}/gnucash.iss
-
-    if [ "$BUILD_FROM_TARBALL" = "no" ]; then
-        # And changing output filename
-        PKG_VERSION=`grep PACKAGE_VERSION ${_BUILD_UDIR}/config.h | cut -d" " -f3 | cut -d\" -f2 `
-        SVN_REV=`grep GNUCASH_SVN_REV ${_BUILD_UDIR}/src/gnome-utils/gnc-svninfo.h | cut -d" " -f3 | cut -d\" -f2 `
-        SETUP_FILENAME="gnucash-${PKG_VERSION}-svn-r${SVN_REV}-setup.exe"
-        qpushd ${_GNUCASH_UDIR}
-            mv gnucash-${PKG_VERSION}-setup.exe ${SETUP_FILENAME}
-        qpopd
-        echo "Final resulting Setup program is:"
-        echo ${_GNUCASH_UDIR}/${SETUP_FILENAME}
-    fi
-}
-
-prepare
-dist_regex
-dist_autotools
-dist_guile
-dist_gnome
-dist_pcre
-dist_libbonoboui
-dist_libgsf
-dist_goffice
-dist_libofx
+# steps
+add_step dist_prepare
+add_step dist_regex
+add_step dist_autotools
+add_step dist_guile
+add_step dist_gnome
+add_step dist_pcre
+add_step dist_libbonoboui
+add_step dist_libgsf
+add_step dist_goffice
+add_step dist_libofx
 if [ "$AQBANKING3" != "yes" ]; then
- dist_openssl
+    add_step dist_openssl
 else
- dist_gnutls
- dist_gmp
+    add_step dist_gnutls
+    add_step dist_gmp
 fi
-dist_gwenhywfar
-dist_ktoblzcheck
-dist_aqbanking
-dist_libdbi
-dist_webkit
-dist_gnucash
-finish
+add_step dist_gwenhywfar
+add_step dist_ktoblzcheck
+add_step dist_aqbanking
+add_step dist_libdbi
+add_step dist_webkit
+add_step dist_gnucash
+add_step dist_finish
+
+# run commands registered with late_eval
+eval_now
+
+for step in "${steps[@]}" ; do
+    eval $step
+done
+
 qpopd
 
 

Added: gnucash/trunk/packaging/win32/install-impl.sh
===================================================================
--- gnucash/trunk/packaging/win32/install-impl.sh	                        (rev 0)
+++ gnucash/trunk/packaging/win32/install-impl.sh	2010-05-20 08:08:35 UTC (rev 19184)
@@ -0,0 +1,1544 @@
+#!/bin/sh
+#
+# GnuCash shellscript functions for install.sh
+# 
+
+function inst_prepare() {
+    # Necessary so that intltoolize doesn't come up with some
+    # foolish AC_CONFIG_AUX_DIR; bug#362006
+    # We cannot simply create install-sh in the repository, because
+    # this will confuse other parts of the tools
+    _REPOS_UDIR=`unix_path $REPOS_DIR`
+    level0=.
+    level1=$(basename ${_REPOS_UDIR})
+    level2=$(basename $(dirname ${_REPOS_UDIR}))"/"$level1
+    for mydir in $level0 $level1 $level2; do
+        if [ -f $mydir/make-gnucash-potfiles.in ]; then
+            die "Do not save install.sh in the repository or one its parent directories"
+        fi
+    done
+#     # Remove old empty install-sh files
+#     if [ -f ${_REPOS_UDIR}/install-sh -a "$(cat ${_REPOS_UDIR}/install-sh &>/dev/null | wc -l)" -eq 0 ]; then
+#         rm -f ${_REPOS_UDIR}/install-sh
+#     fi
+    # Partially remove RegEx-GNU if installed
+    _REGEX_UDIR=`unix_path $REGEX_DIR`
+    if [ -f ${_REGEX_UDIR}/contrib/regex-0.12-GnuWin32.README ]; then
+        qpushd ${_REGEX_UDIR}
+            rm -f bin/*regex*.dll
+            rm -f contrib/regex*
+            rm -f lib/*regex*
+        qpopd
+    fi
+
+    DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR`
+    TMP_UDIR=`unix_path $TMP_DIR`
+    mkdir -p $TMP_UDIR
+    mkdir -p $DOWNLOAD_UDIR
+
+    if [ "$DISABLE_OPTIMIZATIONS" = "yes" ]; then
+        export CFLAGS="$CFLAGS -g -O0"
+    fi
+
+    if [ "$CROSS_COMPILE" = "yes" ]; then
+        # to avoid using the build machine's installed packages
+        set_env "" PKG_CONFIG_PATH    # registered
+        export PKG_CONFIG_LIBDIR=""   # not registered
+    fi
+}
+
+function check_m4_version_ok() {
+    v=`m4 --version | grep -e '[0-9]*\.[0-9]*\.[0-9]*' | sed -e 's/[mM]4//g' -e 's/[^\.0-9]//g'`
+    if [ "$v" = "1.4.7" -o "$v" = "1.4.11" -o "$v" = "1.4.13" ];
+	then
+	    return 1
+    else
+	    return 0
+    fi
+}
+
+function inst_wget() {
+    setup Wget
+    _WGET_UDIR=`unix_path $WGET_DIR`
+    add_to_env $_WGET_UDIR/bin PATH
+    if quiet $_WGET_UDIR/wget --version || quiet wget --version
+    then
+        echo "already installed.  skipping."
+    else
+        mkdir -p $_WGET_UDIR/bin
+        tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $_WGET_UDIR
+        cp $_WGET_UDIR/*/*/wget.exe $_WGET_UDIR/bin
+        quiet wget --version || die "wget unavailable"
+    fi
+}
+
+function inst_dtk() {
+    setup MSYS DTK
+    _MSYS_UDIR=`unix_path $MSYS_DIR`
+    if quiet ${_MSYS_UDIR}/bin/perl --help && [ check_m4_version_ok ]
+    then
+    echo "msys dtk already installed.  skipping."
+    else
+        smart_wget $DTK_URL $DOWNLOAD_DIR
+        $LAST_FILE //SP- //SILENT //DIR="$MSYS_DIR"
+        for file in \
+            /bin/{aclocal*,auto*,ifnames,libtool*,guile*} \
+            /share/{aclocal,aclocal-1.7,autoconf,autogen,automake-1.7,guile,libtool}
+        do
+			[ -f $file ] || continue
+            [ "${file##*.bak}" ] || continue
+            _dst_file=$file.bak
+            while [ -e $_dst_file ]; do _dst_file=$_dst_file.bak; done
+            mv $file $_dst_file
+        done
+        wget_unpacked $M4_URL $DOWNLOAD_DIR $TMP_DIR
+        mv $TMP_UDIR/usr/bin/m4.exe /bin
+        quiet ${_MSYS_UDIR}/bin/perl --help &&
+        [ check_m4_version_ok ] || die "msys dtk not installed correctly"
+    fi
+}
+
+function test_for_mingw() {
+    if [ "$CROSS_COMPILE" == "yes" ]; then
+        ${CC} --version && ${LD} --help
+    else
+        g++ --version && mingw32-make --help
+    fi
+}
+
+function inst_mingw() {
+    setup MinGW
+    _MINGW_UDIR=`unix_path $MINGW_DIR`
+    _MINGW_WFSDIR=`win_fs_path $MINGW_DIR`
+    [ "$CROSS_COMPILE" = "yes" ] && add_to_env $_MINGW_UDIR/bin PATH
+
+    if quiet test_for_mingw
+    then
+        echo "mingw already installed.  skipping."
+    else
+        mkdir -p $_MINGW_UDIR
+        if [ "$CROSS_COMPILE" != "yes" ]; then
+            wget_unpacked $BINUTILS_URL $DOWNLOAD_DIR $MINGW_DIR
+            wget_unpacked $GCC_CORE_URL $DOWNLOAD_DIR $MINGW_DIR
+            wget_unpacked $GCC_GPP_URL $DOWNLOAD_DIR $MINGW_DIR
+            wget_unpacked $MINGW_RT_URL $DOWNLOAD_DIR $MINGW_DIR
+            wget_unpacked $W32API_URL $DOWNLOAD_DIR $MINGW_DIR
+            wget_unpacked $MINGW_MAKE_URL $DOWNLOAD_DIR $MINGW_DIR
+            (echo "y"; echo "y"; echo "$_MINGW_WFSDIR"; echo "y") | sh pi.sh
+        else
+            ./create_cross_mingw.sh
+        fi
+        quiet test_for_mingw || die "mingw not installed correctly"
+    fi
+}
+
+function inst_unzip() {
+    setup Unzip
+    _UNZIP_UDIR=`unix_path $UNZIP_DIR`
+    add_to_env $_UNZIP_UDIR/bin PATH
+    if quiet $_UNZIP_UDIR/bin/unzip --help || quiet unzip --help
+    then
+        echo "unzip already installed.  skipping."
+    else
+        smart_wget $UNZIP_URL $DOWNLOAD_DIR
+        $LAST_FILE //SP- //SILENT //DIR="$UNZIP_DIR"
+        quiet unzip --help || die "unzip unavailable"
+    fi
+}
+
+function inst_regex() {
+    setup RegEx
+    _REGEX_UDIR=`unix_path $REGEX_DIR`
+    add_to_env -lregex REGEX_LDFLAGS
+    add_to_env -I$_REGEX_UDIR/include REGEX_CPPFLAGS
+    add_to_env -L$_REGEX_UDIR/lib REGEX_LDFLAGS
+    add_to_env $_REGEX_UDIR/bin PATH
+    if quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile
+    then
+        echo "regex already installed.  skipping."
+    else
+        mkdir -p $_REGEX_UDIR
+        wget_unpacked $REGEX_URL $DOWNLOAD_DIR $REGEX_DIR
+        wget_unpacked $REGEX_DEV_URL $DOWNLOAD_DIR $REGEX_DIR
+        quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile || die "regex not installed correctly"
+    fi
+}
+
+function inst_readline() {
+    setup Readline
+    _READLINE_UDIR=`unix_path $READLINE_DIR`
+    add_to_env -I$_READLINE_UDIR/include READLINE_CPPFLAGS
+    add_to_env -L$_READLINE_UDIR/lib READLINE_LDFLAGS
+    add_to_env $_READLINE_UDIR/bin PATH
+    if quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile
+    then
+        echo "readline already installed.  skipping."
+    else
+        mkdir -p $_READLINE_UDIR
+        wget_unpacked $READLINE_BIN_URL $DOWNLOAD_DIR $READLINE_DIR
+        wget_unpacked $READLINE_LIB_URL $DOWNLOAD_DIR $READLINE_DIR
+        quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile || die "readline not installed correctly"
+    fi
+}
+
+function inst_active_perl() {
+    setup ActivePerl \(intltool\)
+    _ACTIVE_PERL_UDIR=`unix_path $ACTIVE_PERL_DIR`
+    _ACTIVE_PERL_WFSDIR=`win_fs_path $ACTIVE_PERL_DIR`
+    set_env_or_die $_ACTIVE_PERL_WFSDIR/ActivePerl/Perl/bin/perl INTLTOOL_PERL
+    if quiet $INTLTOOL_PERL --help
+    then
+        echo "ActivePerl already installed.  skipping."
+    else
+        wget_unpacked $ACTIVE_PERL_URL $DOWNLOAD_DIR $ACTIVE_PERL_DIR
+        qpushd $_ACTIVE_PERL_UDIR
+            assert_one_dir ActivePerl-*
+            mv ActivePerl-* ActivePerl
+        qpopd
+        quiet $INTLTOOL_PERL --help || die "ActivePerl not installed correctly"
+    fi
+}
+
+function inst_autotools() {
+    setup Autotools
+    _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
+    add_to_env $_AUTOTOOLS_UDIR/bin PATH
+    add_to_env -I$_AUTOTOOLS_UDIR/include AUTOTOOLS_CPPFLAGS
+    add_to_env -L$_AUTOTOOLS_UDIR/lib AUTOTOOLS_LDFLAGS
+    if quiet autoconf --help && quiet automake --help
+    then
+        echo "autoconf/automake already installed.  skipping."
+    else
+        wget_unpacked $AUTOCONF_URL $DOWNLOAD_DIR $TMP_DIR
+        wget_unpacked $AUTOMAKE_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/autoconf-*
+        qpushd $TMP_UDIR/autoconf-*
+            echo "building autoconf..."
+            ./configure --prefix=$_AUTOTOOLS_UDIR
+            make
+            make install
+        qpopd
+        assert_one_dir $TMP_UDIR/automake-*
+        qpushd $TMP_UDIR/automake-*
+            echo "building automake..."
+            ./configure --prefix=$_AUTOTOOLS_UDIR
+            make
+            make install
+        qpopd
+        quiet autoconf --help && quiet automake --help || die "autoconf/automake not installed correctly"
+        rm -rf ${TMP_UDIR}/autoconf-* ${TMP_UDIR}/automake-*
+    fi
+    if quiet libtoolize --help && \
+       quiet ${LD} $AUTOTOOLS_LDFLAGS -lltdl -o $TMP_UDIR/ofile
+    then
+        echo "libtool/libtoolize already installed.  skipping."
+    else
+        wget_unpacked $LIBTOOL_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libtool-*
+        qpushd $TMP_UDIR/libtool-*
+            echo "building libtool..."
+            ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR --disable-static
+            make
+            make install
+        qpopd
+        quiet libtoolize --help && \
+        quiet ${LD} $AUTOTOOLS_LDFLAGS -lltdl -o $TMP_UDIR/ofile || die "libtool/libtoolize not installed correctly"
+        rm -rf ${TMP_UDIR}/libtool-*
+    fi
+    [ ! -d $_AUTOTOOLS_UDIR/share/aclocal ] || add_to_env "-I $_AUTOTOOLS_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_gmp() {
+    setup Gmp
+    _GMP_UDIR=`unix_path ${GMP_DIR}`
+    add_to_env -I$_GMP_UDIR/include GMP_CPPFLAGS
+    add_to_env -L$_GMP_UDIR/lib GMP_LDFLAGS
+    add_to_env ${_GMP_UDIR}/bin PATH
+    if quiet ${LD} $GMP_LDFLAGS -lgmp -o $TMP_UDIR/ofile
+    then
+        echo "Gmp already installed. skipping."
+    else
+        wget_unpacked $GMP_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/gmp-*
+        qpushd $TMP_UDIR/gmp-*
+            ./configure ${HOST_XCOMPILE} \
+                ABI=$GMP_ABI \
+                --prefix=${_GMP_UDIR} \
+                --disable-static --enable-shared 
+            make
+#            [ "$CROSS_COMPILE" != "yes" ] && make check
+            make install
+        qpopd
+        quiet ${LD} $GMP_LDFLAGS -lgmp -o $TMP_UDIR/ofile || die "Gmp not installed correctly"
+        rm -rf ${TMP_UDIR}/gmp-*
+    fi
+}
+
+function inst_guile() {
+    setup Guile
+    _GUILE_WFSDIR=`win_fs_path $GUILE_DIR`
+    _GUILE_UDIR=`unix_path $GUILE_DIR`
+    add_to_env -I$_GUILE_UDIR/include GUILE_CPPFLAGS
+    add_to_env -L$_GUILE_UDIR/lib GUILE_LDFLAGS
+    add_to_env $_GUILE_UDIR/bin PATH
+    if quiet guile -c '(use-modules (srfi srfi-39))' &&
+        quiet guile -c "(use-modules (ice-9 slib)) (require 'printf)"
+    then
+        echo "guile and slib already installed.  skipping."
+    else
+        smart_wget $GUILE_URL $DOWNLOAD_DIR
+        _GUILE_BALL=$LAST_FILE
+        smart_wget $SLIB_URL $DOWNLOAD_DIR
+        _SLIB_BALL=$LAST_FILE
+        tar -xzpf $_GUILE_BALL -C $TMP_UDIR
+        assert_one_dir $TMP_UDIR/guile-*
+        qpushd $TMP_UDIR/guile-*
+            qpushd ice-9
+                cp boot-9.scm boot-9.scm.bak
+                cat boot-9.scm.bak | sed '/SIGBUS/d' > boot-9.scm
+            qpopd
+            qpushd libguile
+                cp fports.c fports.c.bak
+                cat fports.c.bak | sed 's,#elif defined (FIONREAD),#elif 0,' > fports.c
+                cp load.c load.c.bak
+                cat load.c.bak | sed '/scan !=/s,:,;,' > load.c
+            qpopd
+            qpushd libguile-ltdl
+                cp raw-ltdl.c raw-ltdl.c.bak
+                cat raw-ltdl.c.bak | sed 's,\(SCMLTSTATIC\) LT_GLOBAL_DATA,\1,' > raw-ltdl.c
+                touch upstream/ltdl.c.diff
+            qpopd
+            ./configure ${HOST_XCOMPILE} \
+                --disable-static \
+                --disable-elisp \
+                --disable-networking \
+                --disable-dependency-tracking \
+                --disable-libtool-lock \
+                --disable-linuxthreads \
+                -C --prefix=$_GUILE_WFSDIR \
+                ac_cv_func_regcomp_rx=yes \
+                CPPFLAGS="${READLINE_CPPFLAGS} ${REGEX_CPPFLAGS}" \
+                LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS}"
+            cp config.status config.status.bak
+            cat config.status.bak | sed 's# fileblocks[$.A-Za-z]*,#,#' > config.status
+            ./config.status
+            qpushd guile-config
+              cp Makefile Makefile.bak
+              cat Makefile.bak | sed '/-bindir-/s,:,^,g' > Makefile
+            qpopd
+            make LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS} -no-undefined -avoid-version"
+            make install
+        qpopd
+        _SLIB_DIR=$_GUILE_UDIR/share/guile/1.*
+        unzip $_SLIB_BALL -d $_SLIB_DIR
+        qpushd $_SLIB_DIR/slib
+            cp guile.init guile.init.bak
+            sed '/lambda.*'"'"'unix/a\
+(define software-type (lambda () '"'"'ms-dos))' guile.init.bak > guile.init
+        qpopd
+        guile -c '(use-modules (srfi srfi-39))' &&
+        guile -c "(use-modules (ice-9 slib)) (require 'printf)" || die "guile not installed correctly"
+
+        # If this libguile is used from MSVC compiler, we must
+        # deactivate some macros of scmconfig.h again.
+        SCMCONFIG_H=$_GUILE_UDIR/include/libguile/scmconfig.h
+        cat >> ${SCMCONFIG_H} <<EOF
+
+#ifdef _MSC_VER
+# undef HAVE_STDINT_H
+# undef HAVE_INTTYPES_H
+# undef HAVE_UNISTD_H
+#endif
+EOF
+        # Also, for MSVC compiler we need to create an import library
+        if [ x"$(which pexports.exe > /dev/null 2>&1)" != x ]
+        then
+            pexports $_GUILE_UDIR/bin/libguile.dll > $_GUILE_UDIR/lib/libguile.def
+            ${DLLTOOL} -d $_GUILE_UDIR/lib/libguile.def -D $_GUILE_UDIR/bin/libguile.dll -l $_GUILE_UDIR/lib/libguile.lib
+        fi
+        # Also, for MSVC compiler we need to slightly modify the gc.h header
+        GC_H=$_GUILE_UDIR/include/libguile/gc.h
+        grep -v 'extern .*_freelist2;' ${GC_H} > ${GC_H}.tmp
+        grep -v 'extern int scm_block_gc;' ${GC_H}.tmp > ${GC_H}
+        cat >> ${GC_H} <<EOF
+#ifdef _MSC_VER
+# define LIBGUILEDECL __declspec (dllimport)
+#else
+# define LIBGUILEDECL /* */
+#endif
+extern LIBGUILEDECL SCM scm_freelist2;
+extern LIBGUILEDECL struct scm_t_freelist scm_master_freelist2;
+extern LIBGUILEDECL int scm_block_gc;
+EOF
+        rm -rf ${TMP_UDIR}/guile-*
+    fi
+    if [ "$CROSS_COMPILE" = "yes" ]; then
+        mkdir -p $_GUILE_UDIR/bin
+        qpushd $_GUILE_UDIR/bin
+        # The cross-compiling guile expects these program names
+        # for the build-time guile
+        ln -sf /usr/bin/guile-config mingw32-guile-config
+        ln -sf /usr/bin/guile mingw32-build-guile
+        qpopd
+    fi
+    [ ! -d $_GUILE_UDIR/share/aclocal ] || add_to_env "-I $_GUILE_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_svn() {
+    setup Subversion
+    _SVN_UDIR=`unix_path $SVN_DIR`
+    add_to_env $_SVN_UDIR/bin PATH
+    if quiet svn --version
+    then
+        echo "subversion already installed.  skipping."
+    else
+		smart_wget $SVN_URL $DOWNLOAD_DIR
+		$LAST_FILE //SP- //SILENT //DIR="$SVN_DIR"
+        quiet svn --version || die "svn not installed correctly"
+    fi
+}
+
+function inst_openssl() {
+    setup OpenSSL
+    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
+    add_to_env $_OPENSSL_UDIR/bin PATH
+    # Make sure the files of Win32OpenSSL-0_9_8d are really gone!
+    if test -f $_OPENSSL_UDIR/unins000.exe ; then
+        die "Wrong version of OpenSSL installed! Run $_OPENSSL_UDIR/unins000.exe and start install.sh again."
+    fi
+    # Make sure the files of openssl-0.9.7c-{bin,lib}.zip are really gone!
+    if [ -f $_OPENSSL_UDIR/lib/libcrypto.dll.a ] ; then
+        die "Found old OpenSSL installation in $_OPENSSL_UDIR.  Please remove that first."
+    fi
+
+    if quiet ${LD} -L$_OPENSSL_UDIR/lib -leay32 -lssl32 -o $TMP_UDIR/ofile ; then
+        echo "openssl already installed.  skipping."
+    else
+        smart_wget $OPENSSL_URL $DOWNLOAD_DIR
+        echo -n "Extracting ${LAST_FILE##*/} ... "
+        tar -xzpf $LAST_FILE -C $TMP_UDIR &>/dev/null | true
+        echo "done"
+        assert_one_dir $TMP_UDIR/openssl-*
+        qpushd $TMP_UDIR/openssl-*
+            for _dir in crypto ssl ; do
+                qpushd $_dir
+                    find . -name "*.h" -exec cp {} ../include/openssl/ \;
+                qpopd
+            done
+            cp *.h include/openssl
+            _COMSPEC_U=`unix_path $COMSPEC`
+            PATH=$_ACTIVE_PERL_UDIR/ActivePerl/Perl/bin:$_MINGW_UDIR/bin $_COMSPEC_U //c ms\\mingw32
+            mkdir -p $_OPENSSL_UDIR/bin
+            mkdir -p $_OPENSSL_UDIR/lib
+            mkdir -p $_OPENSSL_UDIR/include
+            cp -a libeay32.dll libssl32.dll $_OPENSSL_UDIR/bin
+            cp -a libssl32.dll $_OPENSSL_UDIR/bin/ssleay32.dll
+            for _implib in libeay32 libssl32 ; do
+                cp -a out/$_implib.a $_OPENSSL_UDIR/lib/$_implib.dll.a
+            done
+            cp -a include/openssl $_OPENSSL_UDIR/include
+        qpopd
+        quiet ${LD} -L$_OPENSSL_UDIR/lib -leay32 -lssl32 -o $TMP_UDIR/ofile || die "openssl not installed correctly"
+        rm -rf ${TMP_UDIR}/openssl-*
+    fi
+    _eay32dll=$(echo $(which libeay32.dll))  # which sucks
+    if [ -z "$_eay32dll" ] ; then
+        die "Did not find libeay32.dll in your PATH, why that?"
+    fi
+    if [ "$_eay32dll" != "$_OPENSSL_UDIR/bin/libeay32.dll" ] ; then
+        die "Found $_eay32dll in PATH.  If you have added $_OPENSSL_UDIR/bin to your PATH before, make sure it is listed before paths from other packages shipping SSL libraries, like SVN.  In particular, check $_MINGW_UDIR/etc/profile.d/installer.sh."
+    fi
+}
+
+function inst_mingwutils() {
+    setup MinGW-Utils
+    _MINGW_UTILS_UDIR=`unix_path $MINGW_UTILS_DIR`
+    add_to_env $_MINGW_UTILS_UDIR/bin PATH
+    if quiet which pexports && quiet which reimp
+    then
+        echo "mingw-utils already installed.  skipping."
+    else
+        wget_unpacked $MINGW_UTILS_URL $DOWNLOAD_DIR $MINGW_UTILS_DIR
+        (quiet which pexports && quiet which reimp) || die "mingw-utils not installed correctly"
+    fi
+}
+
+function inst_exetype() {
+    setup exetype
+    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
+    add_to_env $_EXETYPE_UDIR/bin PATH
+    if quiet which exetype
+    then
+        echo "exetype already installed.  skipping."
+    else
+        mkdir -p $_EXETYPE_UDIR/bin
+        cp $EXETYPE_SCRIPT $_EXETYPE_UDIR/bin/exetype
+        chmod +x $_EXETYPE_UDIR/bin/exetype
+        quiet which exetype || die "exetype unavailable"
+    fi
+}
+
+function inst_libxslt() {
+    setup LibXSLT
+    _LIBXSLT_UDIR=`unix_path $LIBXSLT_DIR`
+    add_to_env $_LIBXSLT_UDIR/bin PATH
+    if quiet which xsltproc
+    then
+        echo "libxslt already installed.  skipping."
+    else
+        [ "$CROSS_COMPILE" = "yes" ] && die "xsltproc unavailable"
+        wget_unpacked $LIBXSLT_URL $DOWNLOAD_DIR $LIBXSLT_DIR
+        wget_unpacked $LIBXSLT_LIBXML2_URL $DOWNLOAD_DIR $LIBXSLT_DIR
+        qpushd $_LIBXSLT_UDIR
+            mv libxslt-* mydir
+            cp -r mydir/* .
+            rm -rf mydir
+            mv libxml2-* mydir
+            cp -r mydir/* .
+            rm -rf mydir
+        qpopd
+        quiet which xsltproc || die "libxslt not installed correctly"
+    fi
+}
+
+function inst_gnome() {
+    setup Gnome platform
+    _GNOME_UDIR=`unix_path $GNOME_DIR`
+    add_to_env -I$_GNOME_UDIR/include GNOME_CPPFLAGS
+    add_to_env -L$_GNOME_UDIR/lib GNOME_LDFLAGS
+    add_to_env $_GNOME_UDIR/bin PATH
+    add_to_env $_GNOME_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    if [ "$CROSS_COMPILE" != "yes" ]; then
+        add_to_env $_GNOME_UDIR/bin/pkg-config-msys.sh PKG_CONFIG
+    else
+        add_to_env pkg-config PKG_CONFIG
+    fi
+    if quiet gconftool-2 --version &&
+        quiet ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgtkhtml-3.14 &&
+        quiet intltoolize --version
+    then
+        echo "gnome packages installed.  skipping."
+    else
+        mkdir -p $_GNOME_UDIR
+        wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBXML2_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GETTEXT_RUNTIME_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GETTEXT_RUNTIME_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GETTEXT_TOOLS_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBICONV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GLIB_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GLIB_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBJPEG_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBJPEG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBPNG_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBPNG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBTIFF_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBTIFF_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ZLIB_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ZLIB_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $PKG_CONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $PKG_CONFIG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $CAIRO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $EXPAT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $FONTCONFIG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $FREETYPE_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ATK_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ATK_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $PANGO_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $PANGO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBART_LGPL_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBART_LGPL_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GTK_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GTK_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $INTLTOOL_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ORBIT2_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $ORBIT2_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GAIL_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GAIL_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $POPT_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $POPT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GCONF_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GCONF_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBBONOBO_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBBONOBO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GNOME_VFS_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GNOME_VFS_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOME_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOME_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOMECANVAS_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOMECANVAS_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBBONOBOUI_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBBONOBOUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOMEUI_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGNOMEUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGLADE_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $LIBGLADE_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GTKHTML_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+        wget_unpacked $GTK_DOC_URL $DOWNLOAD_DIR $TMP_DIR
+        qpushd $_GNOME_UDIR
+            assert_one_dir $TMP_UDIR/gtk-doc-*
+            mv $TMP_UDIR/gtk-doc-*/gtk-doc.m4 $_GNOME_UDIR/share/aclocal
+            if [ ! -f libexec/gconfd-2.console.exe ]; then
+                cp libexec/gconfd-2.exe libexec/gconfd-2.console.exe
+            fi
+            exetype libexec/gconfd-2.exe windows
+            for file in bin/intltool-*; do
+                sed '1s,!.*perl,!'"$INTLTOOL_PERL"',;s,/opt/gnu/bin/iconv,iconv,' $file > tmp
+                mv tmp $file
+            done
+            # work around a bug in msys bash, adding 0x01 smilies
+            cat > bin/pkg-config-msys.sh <<EOF
+#!/bin/sh
+PKG_CONFIG="\$(dirname \$0)/pkg-config"
+if \${PKG_CONFIG} "\$@" > /dev/null 2>&1 ; then
+    res=true
+else
+    res=false
+fi
+\${PKG_CONFIG} "\$@" | tr -d \\\\r && \$res
+EOF
+            chmod +x bin/pkg-config{.exe,-msys.sh}
+            sed '/Requires/s,\(.*\) enchant\(.*\) iso-codes\(.*\),\1\2\3,' lib/pkgconfig/libgtkhtml-3.14.pc > tmp
+            mv tmp lib/pkgconfig/libgtkhtml-3.14.pc
+            rm -rf $TMP_UDIR/gtk-doc-*
+        qpopd
+
+        if [ "$CROSS_COMPILE" = "yes" ]; then
+            qpushd $_GNOME_UDIR/lib/pkgconfig
+                perl -pi.bak -e"s!^prefix=.*\$!prefix=$_GNOME_UDIR!" *.pc
+                #perl -pi.bak -e's!^Libs: !Libs: -L\${prefix}/bin !' *.pc
+            qpopd
+        fi
+        wget_unpacked $PIXMAN_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/pixman-*
+        qpushd $TMP_UDIR/pixman-*
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=$_GNOME_UDIR \
+                --disable-static
+            make
+            make install
+        qpopd
+        rm -rf $TMP_UDIR/pixman-*
+        ${PKG_CONFIG} --exists pixman-1 || die "pixman not installed correctly"
+        quiet gconftool-2 --version &&
+        quiet ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgtkhtml-3.14 &&
+        quiet intltoolize --version || die "gnome not installed correctly"
+    fi
+    [ ! -d $_GNOME_UDIR/share/aclocal ] || add_to_env "-I $_GNOME_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_swig() {
+    setup Swig
+    _SWIG_UDIR=`unix_path $SWIG_DIR`
+    add_to_env $_SWIG_UDIR PATH
+    if quiet swig -version
+    then
+        echo "swig already installed.  skipping."
+    else
+        wget_unpacked $SWIG_URL $DOWNLOAD_DIR $SWIG_DIR
+        qpushd $SWIG_DIR
+            mv swigwin-* mydir
+            mv mydir/* .
+            mv mydir/.[A-Za-z]* . # hidden files
+            rmdir mydir
+            rm INSTALL # bites with /bin/install
+        qpopd
+        quiet swig -version || die "swig unavailable"
+    fi
+}
+
+function inst_pcre() {
+    setup pcre
+    _PCRE_UDIR=`unix_path $PCRE_DIR`
+    add_to_env -I$_PCRE_UDIR/include PCRE_CPPFLAGS
+    add_to_env -L$_PCRE_UDIR/lib PCRE_LDFLAGS
+    add_to_env $_PCRE_UDIR/bin PATH
+    if quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile
+    then
+        echo "pcre already installed.  skipping."
+    else
+        mkdir -p $_PCRE_UDIR
+        wget_unpacked $PCRE_BIN_URL $DOWNLOAD_DIR $PCRE_DIR
+        wget_unpacked $PCRE_LIB_URL $DOWNLOAD_DIR $PCRE_DIR
+    fi
+    quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile || die "pcre not installed correctly"
+}
+
+function inst_libbonoboui() {
+    setup libbonoboui
+    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
+    add_to_env $_LIBBONOBOUI_UDIR/bin PATH
+    add_to_env $_LIBBONOBOUI_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ]
+    then
+        echo "libbonoboui already installed.  skipping."
+    else
+        wget_unpacked $LIBBONOBOUI_SRC_URL $DOWNLOAD_DIR $TMP_DIR
+        mydir=`pwd`
+        assert_one_dir $TMP_UDIR/libbonoboui-*
+        qpushd $TMP_UDIR/libbonoboui-*
+            [ -n "$LIBBONOBOUI_PATCH" -a -f "$LIBBONOBOUI_PATCH" ] && \
+                patch -p1 < $LIBBONOBOUI_PATCH
+            #libtoolize --force
+            #aclocal ${ACLOCAL_FLAGS} -I .
+            #automake
+            #autoconf
+            ./configure ${HOST_XCOMPILE} --prefix=$_LIBBONOBOUI_UDIR \
+                POPT_LIBS="-lpopt" \
+                CPPFLAGS="${GNOME_CPPFLAGS}" \
+                LDFLAGS="${GNOME_LDFLAGS}" \
+                --enable-static=no
+            make
+            make install
+
+            # We override the $GNOME_DIR libbonoboui files because
+            # those erroneously depend on the obsolete libxml2.dll
+            cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $_GNOME_UDIR/bin
+            cp -a $_LIBBONOBOUI_UDIR/lib/libbonoboui* $_GNOME_UDIR/lib
+        qpopd
+        ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ] || die "libbonoboui not installed correctly"
+        rm -rf ${TMP_UDIR}/libbonoboui-*
+    fi
+}
+
+function inst_libgsf() {
+    setup libGSF
+    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
+    add_to_env $_LIBGSF_UDIR/bin PATH
+    add_to_env $_LIBGSF_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1
+    then
+        echo "libgsf already installed.  skipping."
+    else
+        wget_unpacked $LIBGSF_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libgsf-*
+        qpushd $TMP_UDIR/libgsf-*
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=$_LIBGSF_UDIR \
+                --disable-static \
+                --without-python \
+                CPPFLAGS="${GNOME_CPPFLAGS}" \
+                LDFLAGS="${GNOME_LDFLAGS}"
+            make
+            make install
+        qpopd
+        ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly"
+    fi
+}
+
+function inst_goffice() {
+    setup GOffice
+    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
+    add_to_env $_GOFFICE_UDIR/bin PATH
+    add_to_env $_GOFFICE_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists libgoffice-0.8
+    then
+        echo "goffice already installed.  skipping."
+    else
+        wget_unpacked $GOFFICE_URL $DOWNLOAD_DIR $TMP_DIR
+        mydir=`pwd`
+        assert_one_dir $TMP_UDIR/goffice-*
+        qpushd $TMP_UDIR/goffice-*
+            [ -n "$GOFFICE_PATCH" -a -f "$GOFFICE_PATCH" ] && \
+                patch -p1 < $GOFFICE_PATCH
+            libtoolize --force
+            aclocal ${ACLOCAL_FLAGS} -I .
+            automake
+            autoconf
+            ./configure ${HOST_XCOMPILE} --prefix=$_GOFFICE_UDIR \
+                CPPFLAGS="${GNOME_CPPFLAGS} ${PCRE_CPPFLAGS} ${HH_CPPFLAGS}" \
+                LDFLAGS="${GNOME_LDFLAGS} ${PCRE_LDFLAGS} ${HH_LDFLAGS}"
+            [ -d ../libgsf-* ] || die "We need the unpacked package $TMP_UDIR/libgsf-*; please unpack it in $TMP_UDIR"
+            [ -f dumpdef.pl ] || cp -p ../libgsf-*/dumpdef.pl .
+            make
+            make install
+        qpopd
+        ${PKG_CONFIG} --exists libgoffice-0.8 && [ -f $_GOFFICE_UDIR/bin/libgoffice*.dll ] || die "goffice not installed correctly"
+        rm -rf ${TMP_UDIR}/goffice-*
+        rm -rf ${TMP_UDIR}/libgsf-*
+    fi
+}
+
+function inst_glade() {
+    setup Glade
+    _GLADE_UDIR=`unix_path $GLADE_DIR`
+    _GLADE_WFSDIR=`win_fs_path $GLADE_DIR`
+    add_to_env $_GLADE_UDIR/bin PATH
+    if quiet glade-3 --version
+    then
+        echo "glade already installed.  skipping."
+    else
+        wget_unpacked $GLADE_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/glade3-*
+        qpushd $TMP_UDIR/glade3-*
+            ./configure ${HOST_XCOMPILE} --prefix=$_GLADE_WFSDIR
+            make
+            make install
+        qpopd
+        quiet glade-3 --version || die "glade not installed correctly"
+        rm -rf ${TMP_UDIR}/glade3-*
+    fi
+}
+
+function inst_inno() {
+    setup Inno Setup Compiler
+    _INNO_UDIR=`unix_path $INNO_DIR`
+    add_to_env $_INNO_UDIR PATH
+    if quiet which iscc
+    then
+        echo "Inno Setup Compiler already installed.  skipping."
+    else
+        smart_wget $INNO_URL $DOWNLOAD_DIR
+        $LAST_FILE //SP- //SILENT //DIR="$INNO_DIR"
+        quiet which iscc || die "iscc (Inno Setup Compiler) not installed correctly"
+    fi
+}
+
+function test_for_hh() {
+    qpushd $TMP_UDIR
+        cat > ofile.c <<EOF
+#include <windows.h>
+#include <htmlhelp.h>
+int main(int argc, char **argv) {
+  HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);
+  return 0;
+}
+EOF
+        gcc -shared -o ofile.dll ofile.c $HH_CPPFLAGS $HH_LDFLAGS -lhtmlhelp || return 1
+    qpopd
+}
+
+function inst_hh() {
+    setup HTML Help Workshop
+    _HH_UDIR=`unix_path $HH_DIR`
+    add_to_env -I$_HH_UDIR/include HH_CPPFLAGS
+    add_to_env -L$_HH_UDIR/lib HH_LDFLAGS
+    add_to_env $_HH_UDIR PATH
+    if quiet test_for_hh
+    then
+        echo "html help workshop already installed.  skipping."
+    else
+        smart_wget $HH_URL $DOWNLOAD_DIR
+        echo "!!! When asked for an installation path, specify $HH_DIR !!!"
+        $LAST_FILE
+        qpushd $HH_DIR
+           _HHCTRL_OCX=$(which hhctrl.ocx || true)
+           [ "$_HHCTRL_OCX" ] || die "Did not find hhctrl.ocx"
+           pexports -h include/htmlhelp.h $_HHCTRL_OCX > lib/htmlhelp.def
+           qpushd lib
+               ${DLLTOOL} -k -d htmlhelp.def -l libhtmlhelp.a
+               mv htmlhelp.lib htmlhelp.lib.bak
+           qpopd
+        qpopd
+        quiet test_for_hh || die "html help workshop not installed correctly"
+    fi
+}
+
+function inst_opensp() {
+    setup OpenSP
+    _OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
+    add_to_env ${_OPENSP_UDIR}/bin PATH
+    if test -f ${_OPENSP_UDIR}/bin/libosp-5.dll
+    then
+        echo "OpenSP already installed. skipping."
+    else
+        wget_unpacked $OPENSP_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/OpenSP-*
+        qpushd $TMP_UDIR/OpenSP-*
+            [ -n "$OPENSP_PATCH" -a -f "$OPENSP_PATCH" ] && \
+                patch -p0 < $OPENSP_PATCH
+            libtoolize --force
+            aclocal ${ACLOCAL_FLAGS} -I m4
+            automake
+            autoconf
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=${_OPENSP_UDIR} \
+                --disable-doc-build --disable-static
+            # On many windows machines, none of the programs will
+            # build, but we only need the library, so ignore the rest.
+            make all-am
+            make -C lib
+            make -i
+            make -i install
+        qpopd
+        test -f ${_OPENSP_UDIR}/bin/libosp-5.dll || die "OpenSP not installed correctly"
+    fi
+}
+
+function inst_libofx() {
+    setup Libofx
+    _LIBOFX_UDIR=`unix_path ${LIBOFX_DIR}`
+    add_to_env ${_LIBOFX_UDIR}/bin PATH
+    add_to_env ${_LIBOFX_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists libofx
+    then
+        echo "Libofx already installed. skipping."
+    else
+        wget_unpacked $LIBOFX_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libofx-*
+        qpushd $TMP_UDIR/libofx-*
+            [ -n "$LIBOFX_PATCH" -a -f "$LIBOFX_PATCH" ] && \
+                patch -p1 < $LIBOFX_PATCH
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=${_LIBOFX_UDIR} \
+                --with-opensp-includes=${_OPENSP_UDIR}/include/OpenSP \
+                --with-opensp-libs=${_OPENSP_UDIR}/lib \
+                CPPFLAGS="-DOS_WIN32" \
+                --disable-static
+            make LDFLAGS="${LDFLAGS} -no-undefined"
+            make install
+        qpopd
+        quiet ${PKG_CONFIG} --exists libofx || die "Libofx not installed correctly"
+        rm -rf ${TMP_UDIR}/libofx-*
+    fi
+}
+
+function inst_gnutls() {
+    setup GNUTLS
+    _GNUTLS_UDIR=`unix_path ${GNUTLS_DIR}`
+    add_to_env ${_GNUTLS_UDIR}/bin PATH
+    add_to_env ${_GNUTLS_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    add_to_env "-I${_GNUTLS_UDIR}/include" GNUTLS_CPPFLAGS
+    add_to_env "-L${_GNUTLS_UDIR}/lib" GNUTLS_LDFLAGS
+    if quiet ${PKG_CONFIG} --exists gnutls
+    then
+        echo "GNUTLS already installed. skipping."
+    else
+        wget_unpacked $GNUTLS_URL $DOWNLOAD_DIR $GNUTLS_DIR
+        rm -f $_GNUTLS_UDIR/lib/*.la
+        quiet ${PKG_CONFIG} --exists gnutls || die "GNUTLS not installed correctly"
+    fi
+    [ ! -d $_GNUTLS_UDIR/share/aclocal ] || add_to_env "-I $_GNUTLS_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_gwenhywfar() {
+    setup Gwenhywfar
+    _GWENHYWFAR_UDIR=`unix_path ${GWENHYWFAR_DIR}`
+    add_to_env ${_GWENHYWFAR_UDIR}/bin PATH
+    add_to_env ${_GWENHYWFAR_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists gwenhywfar
+    then
+        echo "Gwenhywfar already installed. skipping."
+    else
+        wget_unpacked $GWENHYWFAR_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/gwenhywfar-*
+        qpushd $TMP_UDIR/gwenhywfar-*
+            # circumvent binreloc bug, http://trac.autopackage.org/ticket/28
+            if [ "$AQBANKING3" != "yes" ]; then
+                ./configure ${HOST_XCOMPILE} \
+                    --with-openssl-includes=$_OPENSSL_UDIR/include \
+                    --disable-binreloc \
+                    ssl_libraries="-L${_OPENSSL_UDIR}/lib" \
+                    ssl_lib="-leay32 -lssl32" \
+                    --prefix=$_GWENHYWFAR_UDIR \
+                    CPPFLAGS="${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS}" \
+                    LDFLAGS="${REGEX_LDFLAGS} ${GNOME_LDFLAGS} -lintl"
+            else
+                if [ -n "$GWENHYWFAR_PATCH" -a -f "$GWENHYWFAR_PATCH" ] ; then
+                    patch -p1 < $GWENHYWFAR_PATCH
+                    #aclocal -I m4 ${ACLOCAL_FLAGS}
+                    #automake
+                    #autoconf
+                fi
+                # Note: gwenhywfar-3.x and higher don't use openssl anymore.
+                ./configure ${HOST_XCOMPILE} \
+                    --with-libgcrypt-prefix=$_GNUTLS_UDIR \
+                    --disable-binreloc \
+                    --prefix=$_GWENHYWFAR_UDIR \
+                    CPPFLAGS="${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GNUTLS_CPPFLAGS}" \
+                    LDFLAGS="${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GNUTLS_LDFLAGS} -lintl"
+            fi
+            make
+#            [ "$CROSS_COMPILE" != "yes" ] && make check
+            make install
+        qpopd
+        ${PKG_CONFIG} --exists gwenhywfar || die "Gwenhywfar not installed correctly"
+        rm -rf ${TMP_UDIR}/gwenhywfar-*
+    fi
+    [ ! -d $_GWENHYWFAR_UDIR/share/aclocal ] || add_to_env "-I $_GWENHYWFAR_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_ktoblzcheck() {
+    setup Ktoblzcheck
+    # Out of convenience ktoblzcheck is being installed into
+    # GWENHYWFAR_DIR
+    add_to_env "-I${_GWENHYWFAR_UDIR}/include" KTOBLZCHECK_CPPFLAGS
+    add_to_env "-L${_GWENHYWFAR_UDIR}/lib" KTOBLZCHECK_LDFLAGS
+    if quiet ${PKG_CONFIG} --exists ktoblzcheck
+    then
+        echo "Ktoblzcheck already installed. skipping."
+    else
+        wget_unpacked $KTOBLZCHECK_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/ktoblzcheck-*
+        qpushd $TMP_UDIR/ktoblzcheck-*
+            # circumvent binreloc bug, http://trac.autopackage.org/ticket/28
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=${_GWENHYWFAR_UDIR} \
+                --disable-binreloc \
+                --disable-python
+            make
+#            [ "$CROSS_COMPILE" != "yes" ] && make check
+            make install
+        qpopd
+        ${PKG_CONFIG} --exists ktoblzcheck || die "Ktoblzcheck not installed correctly"
+        rm -rf ${TMP_UDIR}/ktoblzcheck-*
+    fi
+}
+
+function inst_qt4() {
+    # This section is not a full install, but the .la creation is
+    # already useful in itself and that's why it has already been
+    # added.
+
+    [ "$QTDIR" ] || die "QTDIR is not set.  Please install Qt and set that variable in custom.sh, or deactivate AQBANKING_WITH_QT"
+    export QTDIR=`unix_path ${QTDIR}`  # help configure of aqbanking
+    _QTDIR=$QTDIR
+    # This section creates .la files for the Qt-4 DLLs so that
+    # libtool correctly links to the DLLs.
+    if test ! -f ${_QTDIR}/lib/libQtCore4.la ; then
+        qpushd ${_QTDIR}/lib
+            for A in lib*.a; do
+                LIBBASENAME=`basename ${A} .a`
+                OUTFILE="${LIBBASENAME}.la"
+                BASENAME=`echo ${LIBBASENAME} | sed -e"s/lib//" `
+                DLLNAME="${BASENAME}.dll"
+
+                # Create la file
+                echo "# Generated by foo bar libtool" > $OUTFILE
+                echo "dlname='../bin/${DLLNAME}'" >> $OUTFILE
+                echo "library_names='${DLLNAME}'" >> $OUTFILE
+                echo "libdir='${_QTDIR}/bin'" >> $OUTFILE
+            done
+        qpopd
+    fi
+}
+
+function inst_aqbanking() {
+    setup AqBanking
+    _AQBANKING_UDIR=`unix_path ${AQBANKING_DIR}`
+    add_to_env ${_AQBANKING_UDIR}/bin PATH
+    add_to_env ${_AQBANKING_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists aqbanking
+    then
+        echo "AqBanking already installed. skipping."
+    else
+        wget_unpacked $AQBANKING_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/aqbanking-*
+        qpushd $TMP_UDIR/aqbanking-*
+            _AQ_CPPFLAGS="-I${_LIBOFX_UDIR}/include ${KTOBLZCHECK_CPPFLAGS} ${GNOME_CPPFLAGS} ${GNUTLS_CPPFLAGS}"
+            _AQ_LDFLAGS="-L${_LIBOFX_UDIR}/lib ${KTOBLZCHECK_LDFLAGS} ${GNOME_LDFLAGS} ${GNUTLS_LDFLAGS}"
+            if test x$CROSS_COMPILE = xyes; then
+                XMLMERGE="xmlmerge"
+            else
+                XMLMERGE="${_GWENHYWFAR_UDIR}/bin/xmlmerge"
+            fi
+            if test x$AQBANKING3 = xyes; then
+                _AQ_BACKENDS="aqhbci aqofxconnect"
+            else
+                _AQ_BACKENDS="aqdtaus aqhbci aqofxconnect"
+            fi
+            if test x$AQBANKING_WITH_QT = xyes; then
+                inst_qt4
+                if [ -n "$AQBANKING_PATCH" -a -f "$AQBANKING_PATCH" ] ; then
+                    patch -p1 < $AQBANKING_PATCH
+                    automake
+                    aclocal -I m4 ${ACLOCAL_FLAGS}
+                    autoconf
+                fi
+                ./configure ${HOST_XCOMPILE} \
+                    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
+                    --with-xmlmerge=${XMLMERGE} \
+                    --with-frontends="cbanking qbanking" \
+                    --with-backends="${_AQ_BACKENDS}" \
+                    CPPFLAGS="${_AQ_CPPFLAGS} ${GMP_CPPFLAGS}" \
+                    LDFLAGS="${_AQ_LDFLAGS} ${GMP_LDFLAGS}" \
+                    qt3_libs="-L${_QTDIR}/lib -L${_QTDIR}/bin -lQtCore4 -lQtGui4 -lQt3Support4" \
+                    qt3_includes="-I${_QTDIR}/include -I${_QTDIR}/include/Qt -I${_QTDIR}/include/QtCore -I${_QTDIR}/include/QtGui -I${_QTDIR}/include/Qt3Support" \
+                    --prefix=${_AQBANKING_UDIR}
+                make qt4-port
+                make clean
+            else
+                if [ -n "$AQBANKING_PATCH" -a -f "$AQBANKING_PATCH" ] ; then
+                    patch -p1 < $AQBANKING_PATCH
+                    automake
+                    aclocal -I m4 ${ACLOCAL_FLAGS}
+                    autoconf
+                fi
+                ./configure ${HOST_XCOMPILE} \
+                    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
+                    --with-xmlmerge=${XMLMERGE} \
+                    --with-frontends="cbanking" \
+                    --with-backends="${_AQ_BACKENDS}" \
+                    CPPFLAGS="${_AQ_CPPFLAGS} ${GMP_CPPFLAGS}" \
+                    LDFLAGS="${_AQ_LDFLAGS} ${GMP_LDFLAGS}" \
+                    --prefix=${_AQBANKING_UDIR}
+            fi
+            make
+            make install
+        qpopd
+        qpushd ${_AQBANKING_UDIR}/bin
+            if [ "$AQBANKING3" != "yes" ]; then
+                exetype aqbanking-tool.exe console
+                exetype aqhbci-tool.exe console
+            else
+                exetype aqbanking-cli.exe console
+                exetype aqhbci-tool4.exe console
+            fi
+        qpopd
+        ${PKG_CONFIG} --exists aqbanking || die "AqBanking not installed correctly"
+        rm -rf ${TMP_UDIR}/aqbanking-*
+    fi
+    [ ! -d $_AQBANKING_UDIR/share/aclocal ] || add_to_env "-I $_AQBANKING_UDIR/share/aclocal" ACLOCAL_FLAGS
+}
+
+function inst_libdbi() {
+    setup LibDBI
+    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
+    _MYSQL_LIB_UDIR=`unix_path ${MYSQL_LIB_DIR}`
+    _PGSQL_UDIR=`unix_path ${PGSQL_DIR}`
+    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
+    _LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
+    add_to_env -I$_LIBDBI_UDIR/include LIBDBI_CPPFLAGS
+    add_to_env -L$_LIBDBI_UDIR/lib LIBDBI_LDFLAGS
+    if test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll
+    then
+        echo "SQLite3 already installed.  skipping."
+    else
+        wget_unpacked $SQLITE3_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/sqlite-*
+        qpushd $TMP_UDIR/sqlite-*
+            ./configure ${HOST_XCOMPILE} \
+                --prefix=${_SQLITE3_UDIR}
+            make
+            make install
+        qpopd
+        test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll || die "SQLite3 not installed correctly"
+        rm -rf ${TMP_UDIR}/sqlite-*
+    fi
+    if test -f ${_MYSQL_LIB_UDIR}/lib/libmysql.dll -a \
+	        -f ${_MYSQL_LIB_UDIR}/lib/libmysqlclient.a
+    then
+        echo "MySQL library already installed.  skipping."
+    else
+        wget_unpacked $MYSQL_LIB_URL $DOWNLOAD_DIR $TMP_DIR
+        mkdir -p $_MYSQL_LIB_UDIR
+        assert_one_dir $TMP_UDIR/mysql*
+        cp -r $TMP_UDIR/mysql*/* $_MYSQL_LIB_UDIR
+        cp -r $TMP_UDIR/mysql*/include $_MYSQL_LIB_UDIR/include/mysql
+        rm -rf ${TMP_UDIR}/mysql*
+        qpushd $_MYSQL_LIB_UDIR/lib
+        ${DLLTOOL} --input-def $LIBMYSQL_DEF --dllname libmysql.dll --output-lib libmysqlclient.a -k
+        test -f ${_MYSQL_LIB_UDIR}/lib/libmysql.dll || die "mysql not installed correctly - libmysql.dll"
+        test -f ${_MYSQL_LIB_UDIR}/lib/libmysqlclient.a || die "mysql not installed correctly - libmysqlclient.a"
+        qpopd
+    fi
+    if test -f ${_PGSQL_UDIR}/lib/libpq.dll
+    then
+        echo "PGSQL library already installed.  skipping."
+    else
+        wget_unpacked $PGSQL_LIB_URL $DOWNLOAD_DIR $TMP_DIR
+        cp -r $TMP_UDIR/pgsql* $_PGSQL_UDIR
+        rm -rf ${TMP_UDIR}/pgsql*
+        test -f ${_PGSQL_UDIR}/lib/libpq.dll || die "libpq not installed correctly"
+    fi
+    if test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll
+    then
+        echo "libdbi already installed.  skipping."
+    else
+        wget_unpacked $LIBDBI_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libdbi-0*
+        qpushd $TMP_UDIR/libdbi-0*
+            if [ -n "$LIBDBI_PATCH" -a -f "$LIBDBI_PATCH" ]; then
+                patch -p1 < $LIBDBI_PATCH
+                ./autogen.sh
+            fi
+            if [ -n "$LIBDBI_PATCH2" -a -f "$LIBDBI_PATCH2" ]; then
+                patch -p1 < $LIBDBI_PATCH2
+	    fi
+            ./configure ${HOST_XCOMPILE} \
+                --disable-docs \
+                --prefix=${_LIBDBI_UDIR}
+            make
+            make install
+        qpopd
+        qpushd ${_LIBDBI_UDIR}
+        if [ x"$(which pexports.exe > /dev/null 2>&1)" != x ]
+        then
+            pexports bin/libdbi-0.dll > lib/libdbi.def
+            ${DLLTOOL} -d lib/libdbi.def -D bin/libdbi-0.dll -l lib/libdbi.lib
+        fi
+        qpopd
+        test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll || die "libdbi not installed correctly"
+        rm -rf ${TMP_UDIR}/libdbi-0*
+    fi
+    if test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll -a \
+            -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdmysql.dll -a \
+            -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdpgsql.dll
+    then
+        echo "libdbi drivers already installed.  skipping."
+    else
+        wget_unpacked $LIBDBI_DRIVERS_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libdbi-drivers-*
+        qpushd $TMP_UDIR/libdbi-drivers*
+            [ -n "$LIBDBI_DRIVERS_PATCH" -a -f "$LIBDBI_DRIVERS_PATCH" ] && \
+                patch -p0 < $LIBDBI_DRIVERS_PATCH
+            [ -n "$LIBDBI_DRIVERS_PATCH2" -a -f "$LIBDBI_DRIVERS_PATCH2" ] && \
+                patch -p0 < $LIBDBI_DRIVERS_PATCH2
+            [ -n "$LIBDBI_DRIVERS_PATCH3" -a -f "$LIBDBI_DRIVERS_PATCH3" ] && \
+                patch -p0 < $LIBDBI_DRIVERS_PATCH3
+            [ -n "$LIBDBI_DRIVERS_PATCH4" -a -f "$LIBDBI_DRIVERS_PATCH4" ] && \
+                patch -p0 < $LIBDBI_DRIVERS_PATCH4
+            LDFLAGS=-no-undefined ./configure ${HOST_XCOMPILE} \
+                --disable-docs \
+                --with-dbi-incdir=${_LIBDBI_UDIR}/include \
+                --with-dbi-libdir=${_LIBDBI_UDIR}/lib \
+                --with-sqlite3 \
+                --with-sqlite3-dir=${_SQLITE3_UDIR} \
+                --with-mysql \
+                --with-mysql-dir=${_MYSQL_LIB_UDIR} \
+                --with-pgsql \
+                --with-pgsql-dir=${_PGSQL_UDIR} \
+                --prefix=${_LIBDBI_DRIVERS_UDIR}
+            make
+            make install
+        qpopd
+        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll || die "libdbi sqlite3 driver not installed correctly"
+        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdmysql.dll || die "libdbi mysql driver not installed correctly"
+        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdpgsql.dll || die "libdbi pgsql driver not installed correctly"
+        rm -rf ${TMP_UDIR}/libdbi-drivers-*
+    fi
+}
+
+function inst_cmake() {
+    setup CMake
+    _CMAKE_UDIR=`unix_path ${CMAKE_DIR}`
+    add_to_env ${_CMAKE_UDIR}/bin PATH
+    if [ -f ${_CMAKE_UDIR}/bin/cmake.exe ]
+    then
+        echo "cmake already installed.  skipping."
+    else
+        wget_unpacked $CMAKE_URL $DOWNLOAD_DIR $CMAKE_DIR
+
+        assert_one_dir ${_CMAKE_UDIR}/cmake-2*
+        mv ${_CMAKE_UDIR}/cmake-2*/* ${_CMAKE_UDIR}
+        rm -rf ${_CMAKE_UDIR}/cmake-2*
+
+        [ -f ${_CMAKE_UDIR}/bin/cmake.exe ] || die "cmake not installed correctly"
+    fi
+}
+
+function inst_cutecash() {
+    setup Cutecash
+    _BUILD_UDIR=`unix_path $CUTECASH_BUILD_DIR`
+    _REPOS_UDIR=`unix_path $REPOS_DIR`
+    mkdir -p $_BUILD_UDIR
+
+    qpushd $_BUILD_UDIR
+        cmake ${_REPOS_UDIR} \
+            -G"MSYS Makefiles" \
+            -DREGEX_INCLUDE_PATH=${_REGEX_UDIR}/include \
+            -DREGEX_LIBRARY=${_REGEX_UDIR}/lib/libregex.a \
+            -DGUILE_INCLUDE_DIR=${_GUILE_UDIR}/include \
+            -DGUILE_LIBRARY=${_GUILE_UDIR}/bin/libguile.dll \
+            -DLIBINTL_INCLUDE_PATH=${_GNOME_UDIR}/include \
+            -DLIBINTL_LIBRARY=${_GNOME_UDIR}/bin/intl.dll \
+            -DLIBXML2_INCLUDE_DIR=${_GNOME_UDIR}/include/libxml2 \
+            -DLIBXML2_LIBRARIES=${_GNOME_UDIR}/bin/libxml2-2.dll \
+            -DPKG_CONFIG_EXECUTABLE=${_GNOME_UDIR}/bin/pkg-config \
+            -DZLIB_INCLUDE_DIR=${_GNOME_UDIR}/include \
+            -DZLIB_LIBRARY=${_GNOME_UDIR}/bin/zlib1.dll \
+            -DSWIG_EXECUTABLE=${_SWIG_UDIR}/swig.exe \
+            -DHTMLHELP_INCLUDE_PATH=${_HH_UDIR}/include \
+            -DWITH_SQL=ON \
+            -DLIBDBI_INCLUDE_PATH=${_LIBDBI_UDIR}/include \
+            -DLIBDBI_LIBRARY=${_LIBDBI_UDIR}/lib/libdbi.dll.a \
+            -DCMAKE_BUILD_TYPE=Debug
+        make
+    qpopd
+}
+
+function inst_webkit() {
+    setup WebKit
+    _WEBKIT_UDIR=`unix_path ${WEBKIT_DIR}`
+    add_to_env ${_WEBKIT_UDIR}/bin PATH
+    add_to_env -lwebkit-1.0-2 WEBKIT_LIBS
+    add_to_env -L${_WEBKIT_UDIR}/bin WEBKIT_LIBS
+    add_to_env -I${_WEBKIT_UDIR}/include/webkit-1.0 WEBKIT_CFLAGS
+    if quiet ${LD} ${WEBKIT_LIBS} -o $TMP_UDIR/ofile
+    then
+        echo "webkit already installed.  skipping."
+    else
+        wget_unpacked $WEBKIT_URL $DOWNLOAD_DIR $WEBKIT_DIR
+        quiet ${LD} ${WEBKIT_LIBS} -o $TMP_UDIR/ofile || die "webkit not installed correctly"
+    fi
+}
+
+function svn_up() {
+    mkdir -p $_REPOS_UDIR
+    qpushd $REPOS_DIR
+    if [ -x .svn ]; then
+        setup "svn update in ${REPOS_DIR}"
+        svn up -r ${SVN_REV}
+    else
+        setup svn co
+        svn co -r ${SVN_REV} $REPOS_URL .
+    fi
+    qpopd
+}
+
+function inst_gnucash() {
+    setup GnuCash
+    _INSTALL_WFSDIR=`win_fs_path $INSTALL_DIR`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
+    _BUILD_UDIR=`unix_path $BUILD_DIR`
+    _REL_REPOS_UDIR=`unix_path $REL_REPOS_DIR`
+    mkdir -p $_BUILD_UDIR
+    add_to_env $_INSTALL_UDIR/bin PATH
+
+    AQBANKING_OPTIONS="--enable-hbci --with-aqbanking-dir=${_AQBANKING_UDIR}"
+    AQBANKING_UPATH="${_OPENSSL_UDIR}/bin:${_GWENHYWFAR_UDIR}/bin:${_AQBANKING_UDIR}/bin"
+    LIBOFX_OPTIONS="--enable-ofx --with-ofx-prefix=${_LIBOFX_UDIR}"
+
+    if [ "$CROSS_COMPILE" = "yes" ]; then
+        # Set these variables manually because of cross-compiling
+        export GUILE_LIBS="${GUILE_LDFLAGS} -lguile -lguile-ltdl"
+        export GUILE_INCS="${GUILE_CPPFLAGS}"
+        export BUILD_GUILE=yes
+        export name_build_guile=/usr/bin/guile-config
+    fi
+
+    qpushd $REPOS_DIR
+        if [ "$BUILD_FROM_TARBALL" != "yes" ]; then
+            ./autogen.sh
+        fi
+    qpopd
+
+    qpushd $_BUILD_UDIR
+        $_REL_REPOS_UDIR/configure ${HOST_XCOMPILE} \
+            --prefix=$_INSTALL_WFSDIR \
+            --enable-debug \
+            --enable-schemas-install=no \
+            --enable-dbi \
+            --with-dbi-dbd-dir=$( echo ${_LIBDBI_DRIVERS_UDIR} | sed 's,^/\([A-Za-z]\)/,\1:/,g' )/lib/dbd \
+            ${LIBOFX_OPTIONS} \
+            ${AQBANKING_OPTIONS} \
+            --enable-binreloc \
+            --enable-locale-specific-tax \
+            --with-html-engine=webkit \
+            CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${LIBDBI_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
+            LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${LIBDBI_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
+            PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+
+        make
+
+        make_install
+    qpopd
+}
+
+# This function will be called by make_install.sh as well,
+# so do not regard variables from inst_* functions as set
+# Parameters allowed: skip_scripts, skip_schemas
+function make_install() {
+    _BUILD_UDIR=`unix_path $BUILD_DIR`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
+    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
+    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
+    _PCRE_UDIR=`unix_path $PCRE_DIR`
+    _GNOME_UDIR=`unix_path $GNOME_DIR`
+    _GUILE_UDIR=`unix_path $GUILE_DIR`
+    _REGEX_UDIR=`unix_path $REGEX_DIR`
+    _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
+    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
+    _GWENHYWFAR_UDIR=`unix_path ${GWENHYWFAR_DIR}`
+    _AQBANKING_UDIR=`unix_path ${AQBANKING_DIR}`
+    _LIBOFX_UDIR=`unix_path ${LIBOFX_DIR}`
+    _OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
+    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
+    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
+    _WEBKIT_UDIR=`unix_path ${WEBKIT_DIR}`
+    _GNUTLS_UDIR=`unix_path ${GNUTLS_DIR}`
+    AQBANKING_UPATH="${_OPENSSL_UDIR}/bin:${_GWENHYWFAR_UDIR}/bin:${_AQBANKING_UDIR}/bin"
+    AQBANKING_PATH="${OPENSSL_DIR}\\bin;${GWENHYWFAR_DIR}\\bin;${AQBANKING_DIR}\\bin"
+
+    for param in "$@"; do
+        [ "$param" = "skip_scripts" ] && _skip_scripts=1
+        [ "$param" = "skip_schemas" ] && _skip_schemas=1
+    done
+
+    make install
+
+    qpushd $_INSTALL_UDIR/lib
+        # Move modules that are compiled without -module to lib/gnucash and
+        # correct the 'dlname' in the libtool archives. We do not use these
+        # files to dlopen the modules, so actually this is unneeded.
+        # Also, in all installed .la files, remove the dependency_libs line
+        mv bin/*.dll gnucash 2>/dev/null || true
+        for A in gnucash/*.la; do
+            sed '/dependency_libs/d;s#../bin/##' $A > tmp ; mv tmp $A
+        done
+        for A in *.la; do
+            sed '/dependency_libs/d' $A > tmp ; mv tmp $A
+        done
+    qpopd
+
+    if [ -z $_skip_schemas ]; then
+        qpushd $_INSTALL_UDIR/etc/gconf/schemas
+            for file in *.schemas; do
+                gconftool-2 \
+                    --config-source=xml:merged:${_INSTALL_WFSDIR}/etc/gconf/gconf.xml.defaults \
+                    --install-schema-file $file >/dev/null
+            done
+            gconftool-2 --shutdown
+        qpopd
+    fi
+
+    if [ -z $_skip_scripts ]; then
+        # Create a startup script that works without the msys shell
+        # If you make any changes here, you should probably also change
+		# the equivalent sections in packaging/win32/gnucash.iss.in, and
+		# src/bin/environment*.in
+        qpushd $_INSTALL_UDIR/bin
+		cat > gnucash.cmd <<EOF
+ at echo off
+setlocal
+set PATH=$INSTALL_DIR\\bin;%PATH%
+set PATH=$INSTALL_DIR\\lib;%PATH%
+set PATH=$INSTALL_DIR\\lib\\gnucash;%PATH%
+set PATH=$GNUTLS_DIR\\bin;%PATH%
+set PATH=$GMP_DIR\\bin;%PATH%
+set PATH=$GOFFICE_DIR\\bin;%PATH%
+set PATH=$LIBGSF_DIR\\bin;%PATH%
+set PATH=$PCRE_DIR\\bin;%PATH%
+set PATH=$GNOME_DIR\\bin;%PATH%
+set PATH=$GUILE_DIR\\bin;%PATH%
+set PATH=$WEBKIT_DIR\\bin;%PATH%
+set PATH=$REGEX_DIR\\bin;%PATH%
+set PATH=$AUTOTOOLS_DIR\\bin;%PATH%
+set PATH=$AQBANKING_PATH;%PATH%
+set PATH=$LIBOFX_DIR\\bin;%PATH%
+set PATH=$OPENSP_DIR\\bin;%PATH%
+set PATH=$LIBDBI_DIR\\bin;%PATH%
+set PATH=$SQLITE3_DIR\\bin;%PATH%
+set PATH=$MYSQL_LIB_DIR\\lib;%PATH%
+set PATH=$PGSQL_DIR\\bin;%PATH%
+set PATH=$PGSQL_DIR\\lib;%PATH%
+
+set LTDL_LIBRARY_PATH=${INSTALL_DIR}\\lib
+
+start gnucash-bin %*
+EOF
+        qpopd
+    fi
+}
+
+function make_chm() {
+    _CHM_TYPE=$1
+    _CHM_LANG=$2
+    _XSLTPROC_OPTS=$3
+    echo "Processing $_CHM_TYPE ($_CHM_LANG) ..."
+    qpushd $_CHM_TYPE/$_CHM_LANG
+        xsltproc $XSLTPROCFLAGS $_XSLTPROC_OPTS ../../../docbook-xsl/htmlhelp/htmlhelp.xsl gnucash-$_CHM_TYPE.xml
+        count=0
+        echo >> htmlhelp.hhp
+        echo "[ALIAS]" >> htmlhelp.hhp
+        echo "IDH_0=index.html" >> htmlhelp.hhp
+        echo "#define IDH_0 0" > mymaps
+        echo "[Map]" > htmlhelp.hhmap
+        echo "Searching for anchors ..."
+        for id in `cat *.xml | sed '/sect.*id=/!d;s,.*id=["'\'']\([^"'\'']*\)["'\''].*,\1,'` ; do
+            files=`grep -l "[\"']${id}[\"']" *.html` || continue
+            echo "IDH_$((++count))=${files}#${id}" >> htmlhelp.hhp
+            echo "#define IDH_${count} ${count}" >> mymaps
+            echo "${id}=${count}" >> htmlhelp.hhmap
+        done
+        echo >> htmlhelp.hhp
+        echo "[MAP]" >> htmlhelp.hhp
+        cat mymaps >> htmlhelp.hhp
+        rm mymaps
+        hhc htmlhelp.hhp  >/dev/null  || true
+        cp -fv htmlhelp.chm $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.chm
+        cp -fv htmlhelp.hhmap $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.hhmap
+    qpopd
+}
+
+function inst_docs() {
+    _DOCS_UDIR=`unix_path $DOCS_DIR`
+    if [ ! -d $_DOCS_UDIR/docbook-xsl ] ; then
+        wget_unpacked $DOCBOOK_XSL_URL $DOWNLOAD_DIR $DOCS_DIR
+        # add a pause to allow windows to realize that the files now exist
+        sleep 1
+        mv $_DOCS_UDIR/docbook-xsl-* $_DOCS_UDIR/docbook-xsl
+    fi
+    mkdir -p $_DOCS_UDIR/repos
+    qpushd $DOCS_DIR/repos
+        if [ "$UPDATE_DOCS" = "yes" ]; then
+            if [ -x .svn ]; then
+                setup "SVN update of docs"
+                svn up -r ${DOCS_REV}
+            else
+                setup "SVN checkout of docs"
+                svn co -r ${DOCS_REV} $DOCS_URL .
+            fi
+        fi
+        setup docs
+        _DOCS_INST_UDIR=`unix_path $INSTALL_DIR`/share/gnucash/help
+        mkdir -p $_DOCS_INST_UDIR/{C,de_DE,it_IT,ja_JP}
+        make_chm guide C
+        make_chm guide de_DE
+        make_chm guide it_IT
+        make_chm guide ja_JP "--stringparam chunker.output.encoding Shift_JIS --stringparam htmlhelp.encoding Shift_JIS"
+        make_chm help C
+        make_chm help de_DE
+#        make_chm help it_IT
+    qpopd
+}
+
+function inst_finish() {
+    setup Finish...
+    if [ "$NO_SAVE_PROFILE" != "yes" ]; then
+        _NEW=x
+        for _ENV in $ENV_VARS; do
+            _ADDS=`eval echo '"\$'"${_ENV}"'_ADDS"'`
+            if [ "$_ADDS" ]; then
+                if [ "$_NEW" ]; then
+                    echo
+                    echo "Environment variables changed, please do the following"
+                    echo
+                    [ -d /etc/profile.d ] || echo "mkdir -p /etc/profile.d"
+                    _NEW=
+                fi
+                _VAL=`eval echo '"$'"${_ENV}_BASE"'"'`
+                if [ "$_VAL" ]; then
+                    _CHANGE="export ${_ENV}=\"${_ADDS}"'$'"${_ENV}\""
+                else
+                    _CHANGE="export ${_ENV}=\"${_ADDS}\""
+                fi
+                echo $_CHANGE
+                echo echo "'${_CHANGE}' >> /etc/profile.d/installer.sh"
+            fi
+        done
+    fi
+    if [ "$CROSS_COMPILE" = "yes" ]; then
+        echo "You might want to create a binary tarball now as follows:"
+        qpushd $GLOBAL_DIR
+        echo tar -czf $HOME/gnucash-fullbin.tar.gz --anchored \
+            --exclude='*.a' --exclude='*.o' --exclude='*.h' \
+            --exclude='*.info' --exclude='*.html' \
+            --exclude='*include/*' --exclude='*gtk-doc*' \
+            --exclude='bin*' \
+            --exclude='mingw32/*' --exclude='*bin/mingw32-*' \
+            --exclude='gnucash-trunk*' \
+            *
+        qpopd
+    fi
+}
+
+### Local Variables: ***
+### sh-basic-offset: 4 ***
+### indent-tabs-mode: nil ***
+### End: ***


Property changes on: gnucash/trunk/packaging/win32/install-impl.sh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:eol-style
   + native

Modified: gnucash/trunk/packaging/win32/install.sh
===================================================================
--- gnucash/trunk/packaging/win32/install.sh	2010-05-19 22:00:48 UTC (rev 19183)
+++ gnucash/trunk/packaging/win32/install.sh	2010-05-20 08:08:35 UTC (rev 19184)
@@ -1,5 +1,11 @@
 #!/bin/sh
+#
+# 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.
 
+
 [ ! "$BASH" -a -x /bin/bash ] && exec /bin/bash "$0" "$@"
 
 set -e
@@ -14,7 +20,9 @@
 qpushd "$(dirname $(unix_path "$0"))"
 . ./functions.sh
 . ./defaults.sh
+. ./install-impl.sh
 
+# variables
 register_env_var ACLOCAL_FLAGS " "
 register_env_var AUTOTOOLS_CPPFLAGS " "
 register_env_var AUTOTOOLS_LDFLAGS " "
@@ -46,1541 +54,74 @@
 register_env_var WEBKIT_CFLAGS " "
 register_env_var WEBKIT_LIBS " "
 
-function prepare() {
-    # Necessary so that intltoolize doesn't come up with some
-    # foolish AC_CONFIG_AUX_DIR; bug#362006
-    # We cannot simply create install-sh in the repository, because
-    # this will confuse other parts of the tools
-    _REPOS_UDIR=`unix_path $REPOS_DIR`
-    level0=.
-    level1=$(basename ${_REPOS_UDIR})
-    level2=$(basename $(dirname ${_REPOS_UDIR}))"/"$level1
-    for mydir in $level0 $level1 $level2; do
-        if [ -f $mydir/make-gnucash-potfiles.in ]; then
-            die "Do not save install.sh in the repository or one its parent directories"
-        fi
-    done
-#     # Remove old empty install-sh files
-#     if [ -f ${_REPOS_UDIR}/install-sh -a "$(cat ${_REPOS_UDIR}/install-sh &>/dev/null | wc -l)" -eq 0 ]; then
-#         rm -f ${_REPOS_UDIR}/install-sh
-#     fi
-    # Partially remove RegEx-GNU if installed
-    _REGEX_UDIR=`unix_path $REGEX_DIR`
-    if [ -f ${_REGEX_UDIR}/contrib/regex-0.12-GnuWin32.README ]; then
-        qpushd ${_REGEX_UDIR}
-            rm -f bin/*regex*.dll
-            rm -f contrib/regex*
-            rm -f lib/*regex*
-        qpopd
-    fi
-
-    DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR`
-    TMP_UDIR=`unix_path $TMP_DIR`
-    mkdir -p $TMP_UDIR
-    mkdir -p $DOWNLOAD_UDIR
-
-    if [ "$DISABLE_OPTIMIZATIONS" = "yes" ]; then
-        export CFLAGS="$CFLAGS -g -O0"
-    fi
-
-    if [ "$CROSS_COMPILE" = "yes" ]; then
-        # to avoid using the build machine's installed packages
-        set_env "" PKG_CONFIG_PATH    # registered
-        export PKG_CONFIG_LIBDIR=""   # not registered
-    fi
-}
-
-function check_m4_version_ok() {
-    v=`m4 --version | grep -e '[0-9]*\.[0-9]*\.[0-9]*' | sed -e 's/[mM]4//g' -e 's/[^\.0-9]//g'`
-    if [ "$v" = "1.4.7" -o "$v" = "1.4.11" -o "$v" = "1.4.13" ];
-	then
-	    return 1
-    else
-	    return 0
-    fi
-}
-
-function inst_wget() {
-    setup Wget
-    _WGET_UDIR=`unix_path $WGET_DIR`
-    add_to_env $_WGET_UDIR/bin PATH
-    if quiet $_WGET_UDIR/wget --version || quiet wget --version
-    then
-        echo "already installed.  skipping."
-    else
-        mkdir -p $_WGET_UDIR/bin
-        tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $_WGET_UDIR
-        cp $_WGET_UDIR/*/*/wget.exe $_WGET_UDIR/bin
-        quiet wget --version || die "wget unavailable"
-    fi
-}
-
-function inst_dtk() {
-    setup MSYS DTK
-    _MSYS_UDIR=`unix_path $MSYS_DIR`
-    if quiet ${_MSYS_UDIR}/bin/perl --help && [ check_m4_version_ok ]
-    then
-    echo "msys dtk already installed.  skipping."
-    else
-        smart_wget $DTK_URL $DOWNLOAD_DIR
-        $LAST_FILE //SP- //SILENT //DIR="$MSYS_DIR"
-        for file in \
-            /bin/{aclocal*,auto*,ifnames,libtool*,guile*} \
-            /share/{aclocal,aclocal-1.7,autoconf,autogen,automake-1.7,guile,libtool}
-        do
-			[ -f $file ] || continue
-            [ "${file##*.bak}" ] || continue
-            _dst_file=$file.bak
-            while [ -e $_dst_file ]; do _dst_file=$_dst_file.bak; done
-            mv $file $_dst_file
-        done
-        wget_unpacked $M4_URL $DOWNLOAD_DIR $TMP_DIR
-        mv $TMP_UDIR/usr/bin/m4.exe /bin
-        quiet ${_MSYS_UDIR}/bin/perl --help &&
-        [ check_m4_version_ok ] || die "msys dtk not installed correctly"
-    fi
-}
-
-function test_for_mingw() {
-    if [ "$CROSS_COMPILE" == "yes" ]; then
-        ${CC} --version && ${LD} --help
-    else
-        g++ --version && mingw32-make --help
-    fi
-}
-
-function inst_mingw() {
-    setup MinGW
-    _MINGW_UDIR=`unix_path $MINGW_DIR`
-    _MINGW_WFSDIR=`win_fs_path $MINGW_DIR`
-    [ "$CROSS_COMPILE" = "yes" ] && add_to_env $_MINGW_UDIR/bin PATH
-
-    if quiet test_for_mingw
-    then
-        echo "mingw already installed.  skipping."
-    else
-        mkdir -p $_MINGW_UDIR
-        if [ "$CROSS_COMPILE" != "yes" ]; then
-            wget_unpacked $BINUTILS_URL $DOWNLOAD_DIR $MINGW_DIR
-            wget_unpacked $GCC_CORE_URL $DOWNLOAD_DIR $MINGW_DIR
-            wget_unpacked $GCC_GPP_URL $DOWNLOAD_DIR $MINGW_DIR
-            wget_unpacked $MINGW_RT_URL $DOWNLOAD_DIR $MINGW_DIR
-            wget_unpacked $W32API_URL $DOWNLOAD_DIR $MINGW_DIR
-            wget_unpacked $MINGW_MAKE_URL $DOWNLOAD_DIR $MINGW_DIR
-            (echo "y"; echo "y"; echo "$_MINGW_WFSDIR"; echo "y") | sh pi.sh
-        else
-            ./create_cross_mingw.sh
-        fi
-        quiet test_for_mingw || die "mingw not installed correctly"
-    fi
-}
-
-function inst_unzip() {
-    setup Unzip
-    _UNZIP_UDIR=`unix_path $UNZIP_DIR`
-    add_to_env $_UNZIP_UDIR/bin PATH
-    if quiet $_UNZIP_UDIR/bin/unzip --help || quiet unzip --help
-    then
-        echo "unzip already installed.  skipping."
-    else
-        smart_wget $UNZIP_URL $DOWNLOAD_DIR
-        $LAST_FILE //SP- //SILENT //DIR="$UNZIP_DIR"
-        quiet unzip --help || die "unzip unavailable"
-    fi
-}
-
-function inst_regex() {
-    setup RegEx
-    _REGEX_UDIR=`unix_path $REGEX_DIR`
-    add_to_env -lregex REGEX_LDFLAGS
-    add_to_env -I$_REGEX_UDIR/include REGEX_CPPFLAGS
-    add_to_env -L$_REGEX_UDIR/lib REGEX_LDFLAGS
-    add_to_env $_REGEX_UDIR/bin PATH
-    if quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile
-    then
-        echo "regex already installed.  skipping."
-    else
-        mkdir -p $_REGEX_UDIR
-        wget_unpacked $REGEX_URL $DOWNLOAD_DIR $REGEX_DIR
-        wget_unpacked $REGEX_DEV_URL $DOWNLOAD_DIR $REGEX_DIR
-        quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile || die "regex not installed correctly"
-    fi
-}
-
-function inst_readline() {
-    setup Readline
-    _READLINE_UDIR=`unix_path $READLINE_DIR`
-    add_to_env -I$_READLINE_UDIR/include READLINE_CPPFLAGS
-    add_to_env -L$_READLINE_UDIR/lib READLINE_LDFLAGS
-    add_to_env $_READLINE_UDIR/bin PATH
-    if quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile
-    then
-        echo "readline already installed.  skipping."
-    else
-        mkdir -p $_READLINE_UDIR
-        wget_unpacked $READLINE_BIN_URL $DOWNLOAD_DIR $READLINE_DIR
-        wget_unpacked $READLINE_LIB_URL $DOWNLOAD_DIR $READLINE_DIR
-        quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile || die "readline not installed correctly"
-    fi
-}
-
-function inst_active_perl() {
-    setup ActivePerl \(intltool\)
-    _ACTIVE_PERL_UDIR=`unix_path $ACTIVE_PERL_DIR`
-    _ACTIVE_PERL_WFSDIR=`win_fs_path $ACTIVE_PERL_DIR`
-    set_env_or_die $_ACTIVE_PERL_WFSDIR/ActivePerl/Perl/bin/perl INTLTOOL_PERL
-    if quiet $INTLTOOL_PERL --help
-    then
-        echo "ActivePerl already installed.  skipping."
-    else
-        wget_unpacked $ACTIVE_PERL_URL $DOWNLOAD_DIR $ACTIVE_PERL_DIR
-        qpushd $_ACTIVE_PERL_UDIR
-            assert_one_dir ActivePerl-*
-            mv ActivePerl-* ActivePerl
-        qpopd
-        quiet $INTLTOOL_PERL --help || die "ActivePerl not installed correctly"
-    fi
-}
-
-function inst_autotools() {
-    setup Autotools
-    _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
-    add_to_env $_AUTOTOOLS_UDIR/bin PATH
-    add_to_env -I$_AUTOTOOLS_UDIR/include AUTOTOOLS_CPPFLAGS
-    add_to_env -L$_AUTOTOOLS_UDIR/lib AUTOTOOLS_LDFLAGS
-    if quiet autoconf --help && quiet automake --help
-    then
-        echo "autoconf/automake already installed.  skipping."
-    else
-        wget_unpacked $AUTOCONF_URL $DOWNLOAD_DIR $TMP_DIR
-        wget_unpacked $AUTOMAKE_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/autoconf-*
-        qpushd $TMP_UDIR/autoconf-*
-            echo "building autoconf..."
-            ./configure --prefix=$_AUTOTOOLS_UDIR
-            make
-            make install
-        qpopd
-        assert_one_dir $TMP_UDIR/automake-*
-        qpushd $TMP_UDIR/automake-*
-            echo "building automake..."
-            ./configure --prefix=$_AUTOTOOLS_UDIR
-            make
-            make install
-        qpopd
-        quiet autoconf --help && quiet automake --help || die "autoconf/automake not installed correctly"
-        rm -rf ${TMP_UDIR}/autoconf-* ${TMP_UDIR}/automake-*
-    fi
-    if quiet libtoolize --help && \
-       quiet ${LD} $AUTOTOOLS_LDFLAGS -lltdl -o $TMP_UDIR/ofile
-    then
-        echo "libtool/libtoolize already installed.  skipping."
-    else
-        wget_unpacked $LIBTOOL_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/libtool-*
-        qpushd $TMP_UDIR/libtool-*
-            echo "building libtool..."
-            ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR --disable-static
-            make
-            make install
-        qpopd
-        quiet libtoolize --help && \
-        quiet ${LD} $AUTOTOOLS_LDFLAGS -lltdl -o $TMP_UDIR/ofile || die "libtool/libtoolize not installed correctly"
-        rm -rf ${TMP_UDIR}/libtool-*
-    fi
-    [ ! -d $_AUTOTOOLS_UDIR/share/aclocal ] || add_to_env "-I $_AUTOTOOLS_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
-
-function inst_gmp() {
-    setup Gmp
-    _GMP_UDIR=`unix_path ${GMP_DIR}`
-    add_to_env -I$_GMP_UDIR/include GMP_CPPFLAGS
-    add_to_env -L$_GMP_UDIR/lib GMP_LDFLAGS
-    add_to_env ${_GMP_UDIR}/bin PATH
-    if quiet ${LD} $GMP_LDFLAGS -lgmp -o $TMP_UDIR/ofile
-    then
-        echo "Gmp already installed. skipping."
-    else
-        wget_unpacked $GMP_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/gmp-*
-        qpushd $TMP_UDIR/gmp-*
-            ./configure ${HOST_XCOMPILE} \
-                ABI=$GMP_ABI \
-                --prefix=${_GMP_UDIR} \
-                --disable-static --enable-shared 
-            make
-#            [ "$CROSS_COMPILE" != "yes" ] && make check
-            make install
-        qpopd
-        quiet ${LD} $GMP_LDFLAGS -lgmp -o $TMP_UDIR/ofile || die "Gmp not installed correctly"
-        rm -rf ${TMP_UDIR}/gmp-*
-    fi
-}
-
-function inst_guile() {
-    setup Guile
-    _GUILE_WFSDIR=`win_fs_path $GUILE_DIR`
-    _GUILE_UDIR=`unix_path $GUILE_DIR`
-    add_to_env -I$_GUILE_UDIR/include GUILE_CPPFLAGS
-    add_to_env -L$_GUILE_UDIR/lib GUILE_LDFLAGS
-    add_to_env $_GUILE_UDIR/bin PATH
-    if quiet guile -c '(use-modules (srfi srfi-39))' &&
-        quiet guile -c "(use-modules (ice-9 slib)) (require 'printf)"
-    then
-        echo "guile and slib already installed.  skipping."
-    else
-        smart_wget $GUILE_URL $DOWNLOAD_DIR
-        _GUILE_BALL=$LAST_FILE
-        smart_wget $SLIB_URL $DOWNLOAD_DIR
-        _SLIB_BALL=$LAST_FILE
-        tar -xzpf $_GUILE_BALL -C $TMP_UDIR
-        assert_one_dir $TMP_UDIR/guile-*
-        qpushd $TMP_UDIR/guile-*
-            qpushd ice-9
-                cp boot-9.scm boot-9.scm.bak
-                cat boot-9.scm.bak | sed '/SIGBUS/d' > boot-9.scm
-            qpopd
-            qpushd libguile
-                cp fports.c fports.c.bak
-                cat fports.c.bak | sed 's,#elif defined (FIONREAD),#elif 0,' > fports.c
-                cp load.c load.c.bak
-                cat load.c.bak | sed '/scan !=/s,:,;,' > load.c
-            qpopd
-            qpushd libguile-ltdl
-                cp raw-ltdl.c raw-ltdl.c.bak
-                cat raw-ltdl.c.bak | sed 's,\(SCMLTSTATIC\) LT_GLOBAL_DATA,\1,' > raw-ltdl.c
-                touch upstream/ltdl.c.diff
-            qpopd
-            ./configure ${HOST_XCOMPILE} \
-                --disable-static \
-                --disable-elisp \
-                --disable-networking \
-                --disable-dependency-tracking \
-                --disable-libtool-lock \
-                --disable-linuxthreads \
-                -C --prefix=$_GUILE_WFSDIR \
-                ac_cv_func_regcomp_rx=yes \
-                CPPFLAGS="${READLINE_CPPFLAGS} ${REGEX_CPPFLAGS}" \
-                LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS}"
-            cp config.status config.status.bak
-            cat config.status.bak | sed 's# fileblocks[$.A-Za-z]*,#,#' > config.status
-            ./config.status
-            qpushd guile-config
-              cp Makefile Makefile.bak
-              cat Makefile.bak | sed '/-bindir-/s,:,^,g' > Makefile
-            qpopd
-            make LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS} -no-undefined -avoid-version"
-            make install
-        qpopd
-        _SLIB_DIR=$_GUILE_UDIR/share/guile/1.*
-        unzip $_SLIB_BALL -d $_SLIB_DIR
-        qpushd $_SLIB_DIR/slib
-            cp guile.init guile.init.bak
-            sed '/lambda.*'"'"'unix/a\
-(define software-type (lambda () '"'"'ms-dos))' guile.init.bak > guile.init
-        qpopd
-        guile -c '(use-modules (srfi srfi-39))' &&
-        guile -c "(use-modules (ice-9 slib)) (require 'printf)" || die "guile not installed correctly"
-
-        # If this libguile is used from MSVC compiler, we must
-        # deactivate some macros of scmconfig.h again.
-        SCMCONFIG_H=$_GUILE_UDIR/include/libguile/scmconfig.h
-        cat >> ${SCMCONFIG_H} <<EOF
-
-#ifdef _MSC_VER
-# undef HAVE_STDINT_H
-# undef HAVE_INTTYPES_H
-# undef HAVE_UNISTD_H
-#endif
-EOF
-        # Also, for MSVC compiler we need to create an import library
-        if [ x"$(which pexports.exe > /dev/null 2>&1)" != x ]
-        then
-            pexports $_GUILE_UDIR/bin/libguile.dll > $_GUILE_UDIR/lib/libguile.def
-            ${DLLTOOL} -d $_GUILE_UDIR/lib/libguile.def -D $_GUILE_UDIR/bin/libguile.dll -l $_GUILE_UDIR/lib/libguile.lib
-        fi
-        # Also, for MSVC compiler we need to slightly modify the gc.h header
-        GC_H=$_GUILE_UDIR/include/libguile/gc.h
-        grep -v 'extern .*_freelist2;' ${GC_H} > ${GC_H}.tmp
-        grep -v 'extern int scm_block_gc;' ${GC_H}.tmp > ${GC_H}
-        cat >> ${GC_H} <<EOF
-#ifdef _MSC_VER
-# define LIBGUILEDECL __declspec (dllimport)
-#else
-# define LIBGUILEDECL /* */
-#endif
-extern LIBGUILEDECL SCM scm_freelist2;
-extern LIBGUILEDECL struct scm_t_freelist scm_master_freelist2;
-extern LIBGUILEDECL int scm_block_gc;
-EOF
-        rm -rf ${TMP_UDIR}/guile-*
-    fi
-    if [ "$CROSS_COMPILE" = "yes" ]; then
-        mkdir -p $_GUILE_UDIR/bin
-        qpushd $_GUILE_UDIR/bin
-        # The cross-compiling guile expects these program names
-        # for the build-time guile
-        ln -sf /usr/bin/guile-config mingw32-guile-config
-        ln -sf /usr/bin/guile mingw32-build-guile
-        qpopd
-    fi
-    [ ! -d $_GUILE_UDIR/share/aclocal ] || add_to_env "-I $_GUILE_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
-
-function inst_svn() {
-    setup Subversion
-    _SVN_UDIR=`unix_path $SVN_DIR`
-    add_to_env $_SVN_UDIR/bin PATH
-    if quiet svn --version
-    then
-        echo "subversion already installed.  skipping."
-    else
-		smart_wget $SVN_URL $DOWNLOAD_DIR
-		$LAST_FILE //SP- //SILENT //DIR="$SVN_DIR"
-        quiet svn --version || die "svn not installed correctly"
-    fi
-}
-
-function inst_openssl() {
-    setup OpenSSL
-    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
-    add_to_env $_OPENSSL_UDIR/bin PATH
-    # Make sure the files of Win32OpenSSL-0_9_8d are really gone!
-    if test -f $_OPENSSL_UDIR/unins000.exe ; then
-        die "Wrong version of OpenSSL installed! Run $_OPENSSL_UDIR/unins000.exe and start install.sh again."
-    fi
-    # Make sure the files of openssl-0.9.7c-{bin,lib}.zip are really gone!
-    if [ -f $_OPENSSL_UDIR/lib/libcrypto.dll.a ] ; then
-        die "Found old OpenSSL installation in $_OPENSSL_UDIR.  Please remove that first."
-    fi
-
-    if quiet ${LD} -L$_OPENSSL_UDIR/lib -leay32 -lssl32 -o $TMP_UDIR/ofile ; then
-        echo "openssl already installed.  skipping."
-    else
-        smart_wget $OPENSSL_URL $DOWNLOAD_DIR
-        echo -n "Extracting ${LAST_FILE##*/} ... "
-        tar -xzpf $LAST_FILE -C $TMP_UDIR &>/dev/null | true
-        echo "done"
-        assert_one_dir $TMP_UDIR/openssl-*
-        qpushd $TMP_UDIR/openssl-*
-            for _dir in crypto ssl ; do
-                qpushd $_dir
-                    find . -name "*.h" -exec cp {} ../include/openssl/ \;
-                qpopd
-            done
-            cp *.h include/openssl
-            _COMSPEC_U=`unix_path $COMSPEC`
-            PATH=$_ACTIVE_PERL_UDIR/ActivePerl/Perl/bin:$_MINGW_UDIR/bin $_COMSPEC_U //c ms\\mingw32
-            mkdir -p $_OPENSSL_UDIR/bin
-            mkdir -p $_OPENSSL_UDIR/lib
-            mkdir -p $_OPENSSL_UDIR/include
-            cp -a libeay32.dll libssl32.dll $_OPENSSL_UDIR/bin
-            cp -a libssl32.dll $_OPENSSL_UDIR/bin/ssleay32.dll
-            for _implib in libeay32 libssl32 ; do
-                cp -a out/$_implib.a $_OPENSSL_UDIR/lib/$_implib.dll.a
-            done
-            cp -a include/openssl $_OPENSSL_UDIR/include
-        qpopd
-        quiet ${LD} -L$_OPENSSL_UDIR/lib -leay32 -lssl32 -o $TMP_UDIR/ofile || die "openssl not installed correctly"
-        rm -rf ${TMP_UDIR}/openssl-*
-    fi
-    _eay32dll=$(echo $(which libeay32.dll))  # which sucks
-    if [ -z "$_eay32dll" ] ; then
-        die "Did not find libeay32.dll in your PATH, why that?"
-    fi
-    if [ "$_eay32dll" != "$_OPENSSL_UDIR/bin/libeay32.dll" ] ; then
-        die "Found $_eay32dll in PATH.  If you have added $_OPENSSL_UDIR/bin to your PATH before, make sure it is listed before paths from other packages shipping SSL libraries, like SVN.  In particular, check $_MINGW_UDIR/etc/profile.d/installer.sh."
-    fi
-}
-
-function inst_mingwutils() {
-    setup MinGW-Utils
-    _MINGW_UTILS_UDIR=`unix_path $MINGW_UTILS_DIR`
-    add_to_env $_MINGW_UTILS_UDIR/bin PATH
-    if quiet which pexports && quiet which reimp
-    then
-        echo "mingw-utils already installed.  skipping."
-    else
-        wget_unpacked $MINGW_UTILS_URL $DOWNLOAD_DIR $MINGW_UTILS_DIR
-        (quiet which pexports && quiet which reimp) || die "mingw-utils not installed correctly"
-    fi
-}
-
-function inst_exetype() {
-    setup exetype
-    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
-    add_to_env $_EXETYPE_UDIR/bin PATH
-    if quiet which exetype
-    then
-        echo "exetype already installed.  skipping."
-    else
-        mkdir -p $_EXETYPE_UDIR/bin
-        cp $EXETYPE_SCRIPT $_EXETYPE_UDIR/bin/exetype
-        chmod +x $_EXETYPE_UDIR/bin/exetype
-        quiet which exetype || die "exetype unavailable"
-    fi
-}
-
-function inst_libxslt() {
-    setup LibXSLT
-    _LIBXSLT_UDIR=`unix_path $LIBXSLT_DIR`
-    add_to_env $_LIBXSLT_UDIR/bin PATH
-    if quiet which xsltproc
-    then
-        echo "libxslt already installed.  skipping."
-    else
-        [ "$CROSS_COMPILE" = "yes" ] && die "xsltproc unavailable"
-        wget_unpacked $LIBXSLT_URL $DOWNLOAD_DIR $LIBXSLT_DIR
-        wget_unpacked $LIBXSLT_LIBXML2_URL $DOWNLOAD_DIR $LIBXSLT_DIR
-        qpushd $_LIBXSLT_UDIR
-            mv libxslt-* mydir
-            cp -r mydir/* .
-            rm -rf mydir
-            mv libxml2-* mydir
-            cp -r mydir/* .
-            rm -rf mydir
-        qpopd
-        quiet which xsltproc || die "libxslt not installed correctly"
-    fi
-}
-
-function inst_gnome() {
-    setup Gnome platform
-    _GNOME_UDIR=`unix_path $GNOME_DIR`
-    add_to_env -I$_GNOME_UDIR/include GNOME_CPPFLAGS
-    add_to_env -L$_GNOME_UDIR/lib GNOME_LDFLAGS
-    add_to_env $_GNOME_UDIR/bin PATH
-    add_to_env $_GNOME_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if [ "$CROSS_COMPILE" != "yes" ]; then
-        add_to_env $_GNOME_UDIR/bin/pkg-config-msys.sh PKG_CONFIG
-    else
-        add_to_env pkg-config PKG_CONFIG
-    fi
-    if quiet gconftool-2 --version &&
-        quiet ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgtkhtml-3.14 &&
-        quiet intltoolize --version
-    then
-        echo "gnome packages installed.  skipping."
-    else
-        mkdir -p $_GNOME_UDIR
-        wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBXML2_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GETTEXT_RUNTIME_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GETTEXT_RUNTIME_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GETTEXT_TOOLS_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBICONV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GLIB_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GLIB_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBJPEG_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBJPEG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBPNG_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBPNG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBTIFF_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBTIFF_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ZLIB_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ZLIB_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $PKG_CONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $PKG_CONFIG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $CAIRO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $EXPAT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $FONTCONFIG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $FREETYPE_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ATK_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ATK_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $PANGO_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $PANGO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBART_LGPL_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBART_LGPL_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GTK_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GTK_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $INTLTOOL_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ORBIT2_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $ORBIT2_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GAIL_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GAIL_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $POPT_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $POPT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GCONF_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GCONF_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBBONOBO_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBBONOBO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GNOME_VFS_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GNOME_VFS_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOME_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOME_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOMECANVAS_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOMECANVAS_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBBONOBOUI_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBBONOBOUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOMEUI_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGNOMEUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGLADE_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $LIBGLADE_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GTKHTML_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-        wget_unpacked $GTK_DOC_URL $DOWNLOAD_DIR $TMP_DIR
-        qpushd $_GNOME_UDIR
-            assert_one_dir $TMP_UDIR/gtk-doc-*
-            mv $TMP_UDIR/gtk-doc-*/gtk-doc.m4 $_GNOME_UDIR/share/aclocal
-            if [ ! -f libexec/gconfd-2.console.exe ]; then
-                cp libexec/gconfd-2.exe libexec/gconfd-2.console.exe
-            fi
-            exetype libexec/gconfd-2.exe windows
-            for file in bin/intltool-*; do
-                sed '1s,!.*perl,!'"$INTLTOOL_PERL"',;s,/opt/gnu/bin/iconv,iconv,' $file > tmp
-                mv tmp $file
-            done
-            # work around a bug in msys bash, adding 0x01 smilies
-            cat > bin/pkg-config-msys.sh <<EOF
-#!/bin/sh
-PKG_CONFIG="\$(dirname \$0)/pkg-config"
-if \${PKG_CONFIG} "\$@" > /dev/null 2>&1 ; then
-    res=true
-else
-    res=false
+# steps
+# There is no reason to ever need to comment these out!
+# * commented out glade, as it is not needed to run gnucash
+add_step inst_prepare
+if [ "$CROSS_COMPILE" != "yes" ]; then
+ add_step inst_wget
+ add_step inst_dtk
+ add_step inst_unzip
 fi
-\${PKG_CONFIG} "\$@" | tr -d \\\\r && \$res
-EOF
-            chmod +x bin/pkg-config{.exe,-msys.sh}
-            sed '/Requires/s,\(.*\) enchant\(.*\) iso-codes\(.*\),\1\2\3,' lib/pkgconfig/libgtkhtml-3.14.pc > tmp
-            mv tmp lib/pkgconfig/libgtkhtml-3.14.pc
-            rm -rf $TMP_UDIR/gtk-doc-*
-        qpopd
+add_step inst_mingw
+add_step inst_regex
+add_step inst_readline
+if [ "$CROSS_COMPILE" != "yes" ]; then
+ add_step inst_active_perl
+ add_step inst_mingwutils
+fi
+add_step inst_autotools
+if [ "$AQBANKING3" = "yes" ]; then
+ add_step inst_gmp
+fi
+add_step inst_guile
+if [ "$CROSS_COMPILE" != "yes" ]; then
+ add_step inst_svn
+ if [ "$AQBANKING3" != "yes" ]; then
+  add_step inst_openssl
+ fi
+fi
+add_step inst_exetype
+add_step inst_libxslt
+add_step inst_gnome
+if [ "$AQBANKING3" = "yes" ]; then
+ add_step inst_gnutls
+fi
+add_step inst_swig
+add_step inst_pcre
+add_step inst_libbonoboui
+add_step inst_libgsf
+if [ "$CROSS_COMPILE" != "yes" ]; then
+ add_step inst_hh
+fi
+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
+add_step inst_libdbi
+add_step inst_webkit
+##
+if [ "$UPDATE_SOURCES" = "yes" ]; then
+ add_step svn_up
+fi
+if [ "$WITH_CUTECASH" = "yes" ]; then
+ add_step inst_cmake
+ add_step inst_cutecash
+fi
+add_step inst_gnucash
+add_step inst_docs
+if [ "$CROSS_COMPILE" != "yes" ]; then
+ add_step inst_inno
+fi
+add_step inst_finish
 
-        if [ "$CROSS_COMPILE" = "yes" ]; then
-            qpushd $_GNOME_UDIR/lib/pkgconfig
-                perl -pi.bak -e"s!^prefix=.*\$!prefix=$_GNOME_UDIR!" *.pc
-                #perl -pi.bak -e's!^Libs: !Libs: -L\${prefix}/bin !' *.pc
-            qpopd
-        fi
-        wget_unpacked $PIXMAN_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/pixman-*
-        qpushd $TMP_UDIR/pixman-*
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=$_GNOME_UDIR \
-                --disable-static
-            make
-            make install
-        qpopd
-        rm -rf $TMP_UDIR/pixman-*
-        ${PKG_CONFIG} --exists pixman-1 || die "pixman not installed correctly"
-        quiet gconftool-2 --version &&
-        quiet ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgtkhtml-3.14 &&
-        quiet intltoolize --version || die "gnome not installed correctly"
-    fi
-    [ ! -d $_GNOME_UDIR/share/aclocal ] || add_to_env "-I $_GNOME_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
+# run commands registered with late_eval
+eval_now
 
-function inst_swig() {
-    setup Swig
-    _SWIG_UDIR=`unix_path $SWIG_DIR`
-    add_to_env $_SWIG_UDIR PATH
-    if quiet swig -version
-    then
-        echo "swig already installed.  skipping."
-    else
-        wget_unpacked $SWIG_URL $DOWNLOAD_DIR $SWIG_DIR
-        qpushd $SWIG_DIR
-            mv swigwin-* mydir
-            mv mydir/* .
-            mv mydir/.[A-Za-z]* . # hidden files
-            rmdir mydir
-            rm INSTALL # bites with /bin/install
-        qpopd
-        quiet swig -version || die "swig unavailable"
-    fi
-}
-
-function inst_pcre() {
-    setup pcre
-    _PCRE_UDIR=`unix_path $PCRE_DIR`
-    add_to_env -I$_PCRE_UDIR/include PCRE_CPPFLAGS
-    add_to_env -L$_PCRE_UDIR/lib PCRE_LDFLAGS
-    add_to_env $_PCRE_UDIR/bin PATH
-    if quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile
-    then
-        echo "pcre already installed.  skipping."
-    else
-        mkdir -p $_PCRE_UDIR
-        wget_unpacked $PCRE_BIN_URL $DOWNLOAD_DIR $PCRE_DIR
-        wget_unpacked $PCRE_LIB_URL $DOWNLOAD_DIR $PCRE_DIR
-    fi
-    quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile || die "pcre not installed correctly"
-}
-
-function inst_libbonoboui() {
-    setup libbonoboui
-    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
-    add_to_env $_LIBBONOBOUI_UDIR/bin PATH
-    add_to_env $_LIBBONOBOUI_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ]
-    then
-        echo "libbonoboui already installed.  skipping."
-    else
-        wget_unpacked $LIBBONOBOUI_SRC_URL $DOWNLOAD_DIR $TMP_DIR
-        mydir=`pwd`
-        assert_one_dir $TMP_UDIR/libbonoboui-*
-        qpushd $TMP_UDIR/libbonoboui-*
-            [ -n "$LIBBONOBOUI_PATCH" -a -f "$LIBBONOBOUI_PATCH" ] && \
-                patch -p1 < $LIBBONOBOUI_PATCH
-            #libtoolize --force
-            #aclocal ${ACLOCAL_FLAGS} -I .
-            #automake
-            #autoconf
-            ./configure ${HOST_XCOMPILE} --prefix=$_LIBBONOBOUI_UDIR \
-                POPT_LIBS="-lpopt" \
-                CPPFLAGS="${GNOME_CPPFLAGS}" \
-                LDFLAGS="${GNOME_LDFLAGS}" \
-                --enable-static=no
-            make
-            make install
-
-            # We override the $GNOME_DIR libbonoboui files because
-            # those erroneously depend on the obsolete libxml2.dll
-            cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $_GNOME_UDIR/bin
-            cp -a $_LIBBONOBOUI_UDIR/lib/libbonoboui* $_GNOME_UDIR/lib
-        qpopd
-        ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ] || die "libbonoboui not installed correctly"
-        rm -rf ${TMP_UDIR}/libbonoboui-*
-    fi
-}
-
-function inst_libgsf() {
-    setup libGSF
-    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
-    add_to_env $_LIBGSF_UDIR/bin PATH
-    add_to_env $_LIBGSF_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1
-    then
-        echo "libgsf already installed.  skipping."
-    else
-        wget_unpacked $LIBGSF_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/libgsf-*
-        qpushd $TMP_UDIR/libgsf-*
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=$_LIBGSF_UDIR \
-                --disable-static \
-                --without-python \
-                CPPFLAGS="${GNOME_CPPFLAGS}" \
-                LDFLAGS="${GNOME_LDFLAGS}"
-            make
-            make install
-        qpopd
-        ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly"
-    fi
-}
-
-function inst_goffice() {
-    setup GOffice
-    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
-    add_to_env $_GOFFICE_UDIR/bin PATH
-    add_to_env $_GOFFICE_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists libgoffice-0.8
-    then
-        echo "goffice already installed.  skipping."
-    else
-        wget_unpacked $GOFFICE_URL $DOWNLOAD_DIR $TMP_DIR
-        mydir=`pwd`
-        assert_one_dir $TMP_UDIR/goffice-*
-        qpushd $TMP_UDIR/goffice-*
-            [ -n "$GOFFICE_PATCH" -a -f "$GOFFICE_PATCH" ] && \
-                patch -p1 < $GOFFICE_PATCH
-            libtoolize --force
-            aclocal ${ACLOCAL_FLAGS} -I .
-            automake
-            autoconf
-            ./configure ${HOST_XCOMPILE} --prefix=$_GOFFICE_UDIR \
-                CPPFLAGS="${GNOME_CPPFLAGS} ${PCRE_CPPFLAGS} ${HH_CPPFLAGS}" \
-                LDFLAGS="${GNOME_LDFLAGS} ${PCRE_LDFLAGS} ${HH_LDFLAGS}"
-            [ -d ../libgsf-* ] || die "We need the unpacked package $TMP_UDIR/libgsf-*; please unpack it in $TMP_UDIR"
-            [ -f dumpdef.pl ] || cp -p ../libgsf-*/dumpdef.pl .
-            make
-            make install
-        qpopd
-        ${PKG_CONFIG} --exists libgoffice-0.8 && [ -f $_GOFFICE_UDIR/bin/libgoffice*.dll ] || die "goffice not installed correctly"
-        rm -rf ${TMP_UDIR}/goffice-*
-        rm -rf ${TMP_UDIR}/libgsf-*
-    fi
-}
-
-function inst_glade() {
-    setup Glade
-    _GLADE_UDIR=`unix_path $GLADE_DIR`
-    _GLADE_WFSDIR=`win_fs_path $GLADE_DIR`
-    add_to_env $_GLADE_UDIR/bin PATH
-    if quiet glade-3 --version
-    then
-        echo "glade already installed.  skipping."
-    else
-        wget_unpacked $GLADE_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/glade3-*
-        qpushd $TMP_UDIR/glade3-*
-            ./configure ${HOST_XCOMPILE} --prefix=$_GLADE_WFSDIR
-            make
-            make install
-        qpopd
-        quiet glade-3 --version || die "glade not installed correctly"
-        rm -rf ${TMP_UDIR}/glade3-*
-    fi
-}
-
-function inst_inno() {
-    setup Inno Setup Compiler
-    _INNO_UDIR=`unix_path $INNO_DIR`
-    add_to_env $_INNO_UDIR PATH
-    if quiet which iscc
-    then
-        echo "Inno Setup Compiler already installed.  skipping."
-    else
-        smart_wget $INNO_URL $DOWNLOAD_DIR
-        $LAST_FILE //SP- //SILENT //DIR="$INNO_DIR"
-        quiet which iscc || die "iscc (Inno Setup Compiler) not installed correctly"
-    fi
-}
-
-function test_for_hh() {
-    qpushd $TMP_UDIR
-        cat > ofile.c <<EOF
-#include <windows.h>
-#include <htmlhelp.h>
-int main(int argc, char **argv) {
-  HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);
-  return 0;
-}
-EOF
-        gcc -shared -o ofile.dll ofile.c $HH_CPPFLAGS $HH_LDFLAGS -lhtmlhelp || return 1
-    qpopd
-}
-
-function inst_hh() {
-    setup HTML Help Workshop
-    _HH_UDIR=`unix_path $HH_DIR`
-    add_to_env -I$_HH_UDIR/include HH_CPPFLAGS
-    add_to_env -L$_HH_UDIR/lib HH_LDFLAGS
-    add_to_env $_HH_UDIR PATH
-    if quiet test_for_hh
-    then
-        echo "html help workshop already installed.  skipping."
-    else
-        smart_wget $HH_URL $DOWNLOAD_DIR
-        echo "!!! When asked for an installation path, specify $HH_DIR !!!"
-        $LAST_FILE
-        qpushd $HH_DIR
-           _HHCTRL_OCX=$(which hhctrl.ocx || true)
-           [ "$_HHCTRL_OCX" ] || die "Did not find hhctrl.ocx"
-           pexports -h include/htmlhelp.h $_HHCTRL_OCX > lib/htmlhelp.def
-           qpushd lib
-               ${DLLTOOL} -k -d htmlhelp.def -l libhtmlhelp.a
-               mv htmlhelp.lib htmlhelp.lib.bak
-           qpopd
-        qpopd
-        quiet test_for_hh || die "html help workshop not installed correctly"
-    fi
-}
-
-function inst_opensp() {
-    setup OpenSP
-    _OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
-    add_to_env ${_OPENSP_UDIR}/bin PATH
-    if test -f ${_OPENSP_UDIR}/bin/libosp-5.dll
-    then
-        echo "OpenSP already installed. skipping."
-    else
-        wget_unpacked $OPENSP_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/OpenSP-*
-        qpushd $TMP_UDIR/OpenSP-*
-            [ -n "$OPENSP_PATCH" -a -f "$OPENSP_PATCH" ] && \
-                patch -p0 < $OPENSP_PATCH
-            libtoolize --force
-            aclocal ${ACLOCAL_FLAGS} -I m4
-            automake
-            autoconf
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=${_OPENSP_UDIR} \
-                --disable-doc-build --disable-static
-            # On many windows machines, none of the programs will
-            # build, but we only need the library, so ignore the rest.
-            make all-am
-            make -C lib
-            make -i
-            make -i install
-        qpopd
-        test -f ${_OPENSP_UDIR}/bin/libosp-5.dll || die "OpenSP not installed correctly"
-    fi
-}
-
-function inst_libofx() {
-    setup Libofx
-    _LIBOFX_UDIR=`unix_path ${LIBOFX_DIR}`
-    add_to_env ${_LIBOFX_UDIR}/bin PATH
-    add_to_env ${_LIBOFX_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists libofx
-    then
-        echo "Libofx already installed. skipping."
-    else
-        wget_unpacked $LIBOFX_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/libofx-*
-        qpushd $TMP_UDIR/libofx-*
-            [ -n "$LIBOFX_PATCH" -a -f "$LIBOFX_PATCH" ] && \
-                patch -p1 < $LIBOFX_PATCH
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=${_LIBOFX_UDIR} \
-                --with-opensp-includes=${_OPENSP_UDIR}/include/OpenSP \
-                --with-opensp-libs=${_OPENSP_UDIR}/lib \
-                CPPFLAGS="-DOS_WIN32" \
-                --disable-static
-            make LDFLAGS="${LDFLAGS} -no-undefined"
-            make install
-        qpopd
-        quiet ${PKG_CONFIG} --exists libofx || die "Libofx not installed correctly"
-        rm -rf ${TMP_UDIR}/libofx-*
-    fi
-}
-
-function inst_gnutls() {
-    setup GNUTLS
-    _GNUTLS_UDIR=`unix_path ${GNUTLS_DIR}`
-    add_to_env ${_GNUTLS_UDIR}/bin PATH
-    add_to_env ${_GNUTLS_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
-    add_to_env "-I${_GNUTLS_UDIR}/include" GNUTLS_CPPFLAGS
-    add_to_env "-L${_GNUTLS_UDIR}/lib" GNUTLS_LDFLAGS
-    if quiet ${PKG_CONFIG} --exists gnutls
-    then
-        echo "GNUTLS already installed. skipping."
-    else
-        wget_unpacked $GNUTLS_URL $DOWNLOAD_DIR $GNUTLS_DIR
-        rm -f $_GNUTLS_UDIR/lib/*.la
-        quiet ${PKG_CONFIG} --exists gnutls || die "GNUTLS not installed correctly"
-    fi
-    [ ! -d $_GNUTLS_UDIR/share/aclocal ] || add_to_env "-I $_GNUTLS_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
-
-function inst_gwenhywfar() {
-    setup Gwenhywfar
-    _GWENHYWFAR_UDIR=`unix_path ${GWENHYWFAR_DIR}`
-    add_to_env ${_GWENHYWFAR_UDIR}/bin PATH
-    add_to_env ${_GWENHYWFAR_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists gwenhywfar
-    then
-        echo "Gwenhywfar already installed. skipping."
-    else
-        wget_unpacked $GWENHYWFAR_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/gwenhywfar-*
-        qpushd $TMP_UDIR/gwenhywfar-*
-            # circumvent binreloc bug, http://trac.autopackage.org/ticket/28
-            if [ "$AQBANKING3" != "yes" ]; then
-                ./configure ${HOST_XCOMPILE} \
-                    --with-openssl-includes=$_OPENSSL_UDIR/include \
-                    --disable-binreloc \
-                    ssl_libraries="-L${_OPENSSL_UDIR}/lib" \
-                    ssl_lib="-leay32 -lssl32" \
-                    --prefix=$_GWENHYWFAR_UDIR \
-                    CPPFLAGS="${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS}" \
-                    LDFLAGS="${REGEX_LDFLAGS} ${GNOME_LDFLAGS} -lintl"
-            else
-                if [ -n "$GWENHYWFAR_PATCH" -a -f "$GWENHYWFAR_PATCH" ] ; then
-                    patch -p1 < $GWENHYWFAR_PATCH
-                    #aclocal -I m4 ${ACLOCAL_FLAGS}
-                    #automake
-                    #autoconf
-                fi
-                # Note: gwenhywfar-3.x and higher don't use openssl anymore.
-                ./configure ${HOST_XCOMPILE} \
-                    --with-libgcrypt-prefix=$_GNUTLS_UDIR \
-                    --disable-binreloc \
-                    --prefix=$_GWENHYWFAR_UDIR \
-                    CPPFLAGS="${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GNUTLS_CPPFLAGS}" \
-                    LDFLAGS="${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GNUTLS_LDFLAGS} -lintl"
-            fi
-            make
-#            [ "$CROSS_COMPILE" != "yes" ] && make check
-            make install
-        qpopd
-        ${PKG_CONFIG} --exists gwenhywfar || die "Gwenhywfar not installed correctly"
-        rm -rf ${TMP_UDIR}/gwenhywfar-*
-    fi
-    [ ! -d $_GWENHYWFAR_UDIR/share/aclocal ] || add_to_env "-I $_GWENHYWFAR_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
-
-function inst_ktoblzcheck() {
-    setup Ktoblzcheck
-    # Out of convenience ktoblzcheck is being installed into
-    # GWENHYWFAR_DIR
-    add_to_env "-I${_GWENHYWFAR_UDIR}/include" KTOBLZCHECK_CPPFLAGS
-    add_to_env "-L${_GWENHYWFAR_UDIR}/lib" KTOBLZCHECK_LDFLAGS
-    if quiet ${PKG_CONFIG} --exists ktoblzcheck
-    then
-        echo "Ktoblzcheck already installed. skipping."
-    else
-        wget_unpacked $KTOBLZCHECK_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/ktoblzcheck-*
-        qpushd $TMP_UDIR/ktoblzcheck-*
-            # circumvent binreloc bug, http://trac.autopackage.org/ticket/28
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=${_GWENHYWFAR_UDIR} \
-                --disable-binreloc \
-                --disable-python
-            make
-#            [ "$CROSS_COMPILE" != "yes" ] && make check
-            make install
-        qpopd
-        ${PKG_CONFIG} --exists ktoblzcheck || die "Ktoblzcheck not installed correctly"
-        rm -rf ${TMP_UDIR}/ktoblzcheck-*
-    fi
-}
-
-function inst_qt4() {
-    # This section is not a full install, but the .la creation is
-    # already useful in itself and that's why it has already been
-    # added.
-
-    [ "$QTDIR" ] || die "QTDIR is not set.  Please install Qt and set that variable in custom.sh, or deactivate AQBANKING_WITH_QT"
-    export QTDIR=`unix_path ${QTDIR}`  # help configure of aqbanking
-    _QTDIR=$QTDIR
-    # This section creates .la files for the Qt-4 DLLs so that
-    # libtool correctly links to the DLLs.
-    if test ! -f ${_QTDIR}/lib/libQtCore4.la ; then
-        qpushd ${_QTDIR}/lib
-            for A in lib*.a; do
-                LIBBASENAME=`basename ${A} .a`
-                OUTFILE="${LIBBASENAME}.la"
-                BASENAME=`echo ${LIBBASENAME} | sed -e"s/lib//" `
-                DLLNAME="${BASENAME}.dll"
-
-                # Create la file
-                echo "# Generated by foo bar libtool" > $OUTFILE
-                echo "dlname='../bin/${DLLNAME}'" >> $OUTFILE
-                echo "library_names='${DLLNAME}'" >> $OUTFILE
-                echo "libdir='${_QTDIR}/bin'" >> $OUTFILE
-            done
-        qpopd
-    fi
-}
-
-function inst_aqbanking() {
-    setup AqBanking
-    _AQBANKING_UDIR=`unix_path ${AQBANKING_DIR}`
-    add_to_env ${_AQBANKING_UDIR}/bin PATH
-    add_to_env ${_AQBANKING_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet ${PKG_CONFIG} --exists aqbanking
-    then
-        echo "AqBanking already installed. skipping."
-    else
-        wget_unpacked $AQBANKING_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/aqbanking-*
-        qpushd $TMP_UDIR/aqbanking-*
-            _AQ_CPPFLAGS="-I${_LIBOFX_UDIR}/include ${KTOBLZCHECK_CPPFLAGS} ${GNOME_CPPFLAGS} ${GNUTLS_CPPFLAGS}"
-            _AQ_LDFLAGS="-L${_LIBOFX_UDIR}/lib ${KTOBLZCHECK_LDFLAGS} ${GNOME_LDFLAGS} ${GNUTLS_LDFLAGS}"
-            if test x$CROSS_COMPILE = xyes; then
-                XMLMERGE="xmlmerge"
-            else
-                XMLMERGE="${_GWENHYWFAR_UDIR}/bin/xmlmerge"
-            fi
-            if test x$AQBANKING3 = xyes; then
-                _AQ_BACKENDS="aqhbci aqofxconnect"
-            else
-                _AQ_BACKENDS="aqdtaus aqhbci aqofxconnect"
-            fi
-            if test x$AQBANKING_WITH_QT = xyes; then
-                inst_qt4
-                if [ -n "$AQBANKING_PATCH" -a -f "$AQBANKING_PATCH" ] ; then
-                    patch -p1 < $AQBANKING_PATCH
-                    automake
-                    aclocal -I m4 ${ACLOCAL_FLAGS}
-                    autoconf
-                fi
-                ./configure ${HOST_XCOMPILE} \
-                    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
-                    --with-xmlmerge=${XMLMERGE} \
-                    --with-frontends="cbanking qbanking" \
-                    --with-backends="${_AQ_BACKENDS}" \
-                    CPPFLAGS="${_AQ_CPPFLAGS} ${GMP_CPPFLAGS}" \
-                    LDFLAGS="${_AQ_LDFLAGS} ${GMP_LDFLAGS}" \
-                    qt3_libs="-L${_QTDIR}/lib -L${_QTDIR}/bin -lQtCore4 -lQtGui4 -lQt3Support4" \
-                    qt3_includes="-I${_QTDIR}/include -I${_QTDIR}/include/Qt -I${_QTDIR}/include/QtCore -I${_QTDIR}/include/QtGui -I${_QTDIR}/include/Qt3Support" \
-                    --prefix=${_AQBANKING_UDIR}
-                make qt4-port
-                make clean
-            else
-                if [ -n "$AQBANKING_PATCH" -a -f "$AQBANKING_PATCH" ] ; then
-                    patch -p1 < $AQBANKING_PATCH
-                    automake
-                    aclocal -I m4 ${ACLOCAL_FLAGS}
-                    autoconf
-                fi
-                ./configure ${HOST_XCOMPILE} \
-                    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
-                    --with-xmlmerge=${XMLMERGE} \
-                    --with-frontends="cbanking" \
-                    --with-backends="${_AQ_BACKENDS}" \
-                    CPPFLAGS="${_AQ_CPPFLAGS} ${GMP_CPPFLAGS}" \
-                    LDFLAGS="${_AQ_LDFLAGS} ${GMP_LDFLAGS}" \
-                    --prefix=${_AQBANKING_UDIR}
-            fi
-            make
-            make install
-        qpopd
-        qpushd ${_AQBANKING_UDIR}/bin
-            if [ "$AQBANKING3" != "yes" ]; then
-                exetype aqbanking-tool.exe console
-                exetype aqhbci-tool.exe console
-            else
-                exetype aqbanking-cli.exe console
-                exetype aqhbci-tool4.exe console
-            fi
-        qpopd
-        ${PKG_CONFIG} --exists aqbanking || die "AqBanking not installed correctly"
-        rm -rf ${TMP_UDIR}/aqbanking-*
-    fi
-    [ ! -d $_AQBANKING_UDIR/share/aclocal ] || add_to_env "-I $_AQBANKING_UDIR/share/aclocal" ACLOCAL_FLAGS
-}
-
-function inst_libdbi() {
-    setup LibDBI
-    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
-    _MYSQL_LIB_UDIR=`unix_path ${MYSQL_LIB_DIR}`
-    _PGSQL_UDIR=`unix_path ${PGSQL_DIR}`
-    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
-    _LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
-    add_to_env -I$_LIBDBI_UDIR/include LIBDBI_CPPFLAGS
-    add_to_env -L$_LIBDBI_UDIR/lib LIBDBI_LDFLAGS
-    if test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll
-    then
-        echo "SQLite3 already installed.  skipping."
-    else
-        wget_unpacked $SQLITE3_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/sqlite-*
-        qpushd $TMP_UDIR/sqlite-*
-            ./configure ${HOST_XCOMPILE} \
-                --prefix=${_SQLITE3_UDIR}
-            make
-            make install
-        qpopd
-        test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll || die "SQLite3 not installed correctly"
-        rm -rf ${TMP_UDIR}/sqlite-*
-    fi
-    if test -f ${_MYSQL_LIB_UDIR}/lib/libmysql.dll -a \
-	        -f ${_MYSQL_LIB_UDIR}/lib/libmysqlclient.a
-    then
-        echo "MySQL library already installed.  skipping."
-    else
-        wget_unpacked $MYSQL_LIB_URL $DOWNLOAD_DIR $TMP_DIR
-        mkdir -p $_MYSQL_LIB_UDIR
-        assert_one_dir $TMP_UDIR/mysql*
-        cp -r $TMP_UDIR/mysql*/* $_MYSQL_LIB_UDIR
-        cp -r $TMP_UDIR/mysql*/include $_MYSQL_LIB_UDIR/include/mysql
-        rm -rf ${TMP_UDIR}/mysql*
-        qpushd $_MYSQL_LIB_UDIR/lib
-        ${DLLTOOL} --input-def $LIBMYSQL_DEF --dllname libmysql.dll --output-lib libmysqlclient.a -k
-        test -f ${_MYSQL_LIB_UDIR}/lib/libmysql.dll || die "mysql not installed correctly - libmysql.dll"
-        test -f ${_MYSQL_LIB_UDIR}/lib/libmysqlclient.a || die "mysql not installed correctly - libmysqlclient.a"
-        qpopd
-    fi
-    if test -f ${_PGSQL_UDIR}/lib/libpq.dll
-    then
-        echo "PGSQL library already installed.  skipping."
-    else
-        wget_unpacked $PGSQL_LIB_URL $DOWNLOAD_DIR $TMP_DIR
-        cp -r $TMP_UDIR/pgsql* $_PGSQL_UDIR
-        rm -rf ${TMP_UDIR}/pgsql*
-        test -f ${_PGSQL_UDIR}/lib/libpq.dll || die "libpq not installed correctly"
-    fi
-    if test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll
-    then
-        echo "libdbi already installed.  skipping."
-    else
-        wget_unpacked $LIBDBI_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/libdbi-0*
-        qpushd $TMP_UDIR/libdbi-0*
-            if [ -n "$LIBDBI_PATCH" -a -f "$LIBDBI_PATCH" ]; then
-                patch -p1 < $LIBDBI_PATCH
-                ./autogen.sh
-            fi
-            if [ -n "$LIBDBI_PATCH2" -a -f "$LIBDBI_PATCH2" ]; then
-                patch -p1 < $LIBDBI_PATCH2
-	    fi
-            ./configure ${HOST_XCOMPILE} \
-                --disable-docs \
-                --prefix=${_LIBDBI_UDIR}
-            make
-            make install
-        qpopd
-        qpushd ${_LIBDBI_UDIR}
-        if [ x"$(which pexports.exe > /dev/null 2>&1)" != x ]
-        then
-            pexports bin/libdbi-0.dll > lib/libdbi.def
-            ${DLLTOOL} -d lib/libdbi.def -D bin/libdbi-0.dll -l lib/libdbi.lib
-        fi
-        qpopd
-        test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll || die "libdbi not installed correctly"
-        rm -rf ${TMP_UDIR}/libdbi-0*
-    fi
-    if test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll -a \
-            -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdmysql.dll -a \
-            -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdpgsql.dll
-    then
-        echo "libdbi drivers already installed.  skipping."
-    else
-        wget_unpacked $LIBDBI_DRIVERS_URL $DOWNLOAD_DIR $TMP_DIR
-        assert_one_dir $TMP_UDIR/libdbi-drivers-*
-        qpushd $TMP_UDIR/libdbi-drivers*
-            [ -n "$LIBDBI_DRIVERS_PATCH" -a -f "$LIBDBI_DRIVERS_PATCH" ] && \
-                patch -p0 < $LIBDBI_DRIVERS_PATCH
-            [ -n "$LIBDBI_DRIVERS_PATCH2" -a -f "$LIBDBI_DRIVERS_PATCH2" ] && \
-                patch -p0 < $LIBDBI_DRIVERS_PATCH2
-            [ -n "$LIBDBI_DRIVERS_PATCH3" -a -f "$LIBDBI_DRIVERS_PATCH3" ] && \
-                patch -p0 < $LIBDBI_DRIVERS_PATCH3
-            [ -n "$LIBDBI_DRIVERS_PATCH4" -a -f "$LIBDBI_DRIVERS_PATCH4" ] && \
-                patch -p0 < $LIBDBI_DRIVERS_PATCH4
-            LDFLAGS=-no-undefined ./configure ${HOST_XCOMPILE} \
-                --disable-docs \
-                --with-dbi-incdir=${_LIBDBI_UDIR}/include \
-                --with-dbi-libdir=${_LIBDBI_UDIR}/lib \
-                --with-sqlite3 \
-                --with-sqlite3-dir=${_SQLITE3_UDIR} \
-                --with-mysql \
-                --with-mysql-dir=${_MYSQL_LIB_UDIR} \
-                --with-pgsql \
-                --with-pgsql-dir=${_PGSQL_UDIR} \
-                --prefix=${_LIBDBI_DRIVERS_UDIR}
-            make
-            make install
-        qpopd
-        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll || die "libdbi sqlite3 driver not installed correctly"
-        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdmysql.dll || die "libdbi mysql driver not installed correctly"
-        test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdpgsql.dll || die "libdbi pgsql driver not installed correctly"
-        rm -rf ${TMP_UDIR}/libdbi-drivers-*
-    fi
-}
-
-function inst_cmake() {
-    setup CMake
-    _CMAKE_UDIR=`unix_path ${CMAKE_DIR}`
-    add_to_env ${_CMAKE_UDIR}/bin PATH
-    if [ -f ${_CMAKE_UDIR}/bin/cmake.exe ]
-    then
-        echo "cmake already installed.  skipping."
-    else
-        wget_unpacked $CMAKE_URL $DOWNLOAD_DIR $CMAKE_DIR
-
-        assert_one_dir ${_CMAKE_UDIR}/cmake-2*
-        mv ${_CMAKE_UDIR}/cmake-2*/* ${_CMAKE_UDIR}
-        rm -rf ${_CMAKE_UDIR}/cmake-2*
-
-        [ -f ${_CMAKE_UDIR}/bin/cmake.exe ] || die "cmake not installed correctly"
-    fi
-}
-
-function inst_cutecash() {
-    setup Cutecash
-    _BUILD_UDIR=`unix_path $CUTECASH_BUILD_DIR`
-    _REPOS_UDIR=`unix_path $REPOS_DIR`
-    mkdir -p $_BUILD_UDIR
-
-    qpushd $_BUILD_UDIR
-        cmake ${_REPOS_UDIR} \
-            -G"MSYS Makefiles" \
-            -DREGEX_INCLUDE_PATH=${_REGEX_UDIR}/include \
-            -DREGEX_LIBRARY=${_REGEX_UDIR}/lib/libregex.a \
-            -DGUILE_INCLUDE_DIR=${_GUILE_UDIR}/include \
-            -DGUILE_LIBRARY=${_GUILE_UDIR}/bin/libguile.dll \
-            -DLIBINTL_INCLUDE_PATH=${_GNOME_UDIR}/include \
-            -DLIBINTL_LIBRARY=${_GNOME_UDIR}/bin/intl.dll \
-            -DLIBXML2_INCLUDE_DIR=${_GNOME_UDIR}/include/libxml2 \
-            -DLIBXML2_LIBRARIES=${_GNOME_UDIR}/bin/libxml2-2.dll \
-            -DPKG_CONFIG_EXECUTABLE=${_GNOME_UDIR}/bin/pkg-config \
-            -DZLIB_INCLUDE_DIR=${_GNOME_UDIR}/include \
-            -DZLIB_LIBRARY=${_GNOME_UDIR}/bin/zlib1.dll \
-            -DSWIG_EXECUTABLE=${_SWIG_UDIR}/swig.exe \
-            -DHTMLHELP_INCLUDE_PATH=${_HH_UDIR}/include \
-            -DWITH_SQL=ON \
-            -DLIBDBI_INCLUDE_PATH=${_LIBDBI_UDIR}/include \
-            -DLIBDBI_LIBRARY=${_LIBDBI_UDIR}/lib/libdbi.dll.a \
-            -DCMAKE_BUILD_TYPE=Debug
-        make
-    qpopd
-}
-
-function inst_webkit() {
-    setup WebKit
-    _WEBKIT_UDIR=`unix_path ${WEBKIT_DIR}`
-    add_to_env ${_WEBKIT_UDIR}/bin PATH
-    add_to_env -lwebkit-1.0-2 WEBKIT_LIBS
-    add_to_env -L${_WEBKIT_UDIR}/bin WEBKIT_LIBS
-    add_to_env -I${_WEBKIT_UDIR}/include/webkit-1.0 WEBKIT_CFLAGS
-    if quiet ${LD} ${WEBKIT_LIBS} -o $TMP_UDIR/ofile
-    then
-        echo "webkit already installed.  skipping."
-    else
-        wget_unpacked $WEBKIT_URL $DOWNLOAD_DIR $WEBKIT_DIR
-        quiet ${LD} ${WEBKIT_LIBS} -o $TMP_UDIR/ofile || die "webkit not installed correctly"
-    fi
-}
-
-function svn_up() {
-    mkdir -p $_REPOS_UDIR
-    qpushd $REPOS_DIR
-    if [ -x .svn ]; then
-        setup "svn update in ${REPOS_DIR}"
-        svn up -r ${SVN_REV}
-    else
-        setup svn co
-        svn co -r ${SVN_REV} $REPOS_URL .
-    fi
-    qpopd
-}
-
-function inst_gnucash() {
-    setup GnuCash
-    _INSTALL_WFSDIR=`win_fs_path $INSTALL_DIR`
-    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
-    _BUILD_UDIR=`unix_path $BUILD_DIR`
-    _REL_REPOS_UDIR=`unix_path $REL_REPOS_DIR`
-    mkdir -p $_BUILD_UDIR
-    add_to_env $_INSTALL_UDIR/bin PATH
-
-    AQBANKING_OPTIONS="--enable-hbci --with-aqbanking-dir=${_AQBANKING_UDIR}"
-    AQBANKING_UPATH="${_OPENSSL_UDIR}/bin:${_GWENHYWFAR_UDIR}/bin:${_AQBANKING_UDIR}/bin"
-    LIBOFX_OPTIONS="--enable-ofx --with-ofx-prefix=${_LIBOFX_UDIR}"
-
-    if [ "$CROSS_COMPILE" = "yes" ]; then
-        # Set these variables manually because of cross-compiling
-        export GUILE_LIBS="${GUILE_LDFLAGS} -lguile -lguile-ltdl"
-        export GUILE_INCS="${GUILE_CPPFLAGS}"
-        export BUILD_GUILE=yes
-        export name_build_guile=/usr/bin/guile-config
-    fi
-
-    qpushd $REPOS_DIR
-        if [ "$BUILD_FROM_TARBALL" != "yes" ]; then
-            ./autogen.sh
-        fi
-    qpopd
-
-    qpushd $_BUILD_UDIR
-        $_REL_REPOS_UDIR/configure ${HOST_XCOMPILE} \
-            --prefix=$_INSTALL_WFSDIR \
-            --enable-debug \
-            --enable-schemas-install=no \
-            --enable-dbi \
-            --with-dbi-dbd-dir=$( echo ${_LIBDBI_DRIVERS_UDIR} | sed 's,^/\([A-Za-z]\)/,\1:/,g' )/lib/dbd \
-            ${LIBOFX_OPTIONS} \
-            ${AQBANKING_OPTIONS} \
-            --enable-binreloc \
-            --enable-locale-specific-tax \
-            --with-html-engine=webkit \
-            CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${LIBDBI_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
-            LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${LIBDBI_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
-            PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
-
-        make
-
-        make_install
-    qpopd
-}
-
-# This function will be called by make_install.sh as well,
-# so do not regard variables from inst_* functions as set
-# Parameters allowed: skip_scripts, skip_schemas
-function make_install() {
-    _BUILD_UDIR=`unix_path $BUILD_DIR`
-    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
-    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
-    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
-    _PCRE_UDIR=`unix_path $PCRE_DIR`
-    _GNOME_UDIR=`unix_path $GNOME_DIR`
-    _GUILE_UDIR=`unix_path $GUILE_DIR`
-    _REGEX_UDIR=`unix_path $REGEX_DIR`
-    _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
-    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
-    _GWENHYWFAR_UDIR=`unix_path ${GWENHYWFAR_DIR}`
-    _AQBANKING_UDIR=`unix_path ${AQBANKING_DIR}`
-    _LIBOFX_UDIR=`unix_path ${LIBOFX_DIR}`
-    _OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
-    _LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
-    _SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
-    _WEBKIT_UDIR=`unix_path ${WEBKIT_DIR}`
-    _GNUTLS_UDIR=`unix_path ${GNUTLS_DIR}`
-    AQBANKING_UPATH="${_OPENSSL_UDIR}/bin:${_GWENHYWFAR_UDIR}/bin:${_AQBANKING_UDIR}/bin"
-    AQBANKING_PATH="${OPENSSL_DIR}\\bin;${GWENHYWFAR_DIR}\\bin;${AQBANKING_DIR}\\bin"
-
-    for param in "$@"; do
-        [ "$param" = "skip_scripts" ] && _skip_scripts=1
-        [ "$param" = "skip_schemas" ] && _skip_schemas=1
-    done
-
-    make install
-
-    qpushd $_INSTALL_UDIR/lib
-        # Move modules that are compiled without -module to lib/gnucash and
-        # correct the 'dlname' in the libtool archives. We do not use these
-        # files to dlopen the modules, so actually this is unneeded.
-        # Also, in all installed .la files, remove the dependency_libs line
-        mv bin/*.dll gnucash 2>/dev/null || true
-        for A in gnucash/*.la; do
-            sed '/dependency_libs/d;s#../bin/##' $A > tmp ; mv tmp $A
-        done
-        for A in *.la; do
-            sed '/dependency_libs/d' $A > tmp ; mv tmp $A
-        done
-    qpopd
-
-    if [ -z $_skip_schemas ]; then
-        qpushd $_INSTALL_UDIR/etc/gconf/schemas
-            for file in *.schemas; do
-                gconftool-2 \
-                    --config-source=xml:merged:${_INSTALL_WFSDIR}/etc/gconf/gconf.xml.defaults \
-                    --install-schema-file $file >/dev/null
-            done
-            gconftool-2 --shutdown
-        qpopd
-    fi
-
-    if [ -z $_skip_scripts ]; then
-        # Create a startup script that works without the msys shell
-        # If you make any changes here, you should probably also change
-		# the equivalent sections in packaging/win32/gnucash.iss.in, and
-		# src/bin/environment*.in
-        qpushd $_INSTALL_UDIR/bin
-		cat > gnucash.cmd <<EOF
- at echo off
-setlocal
-set PATH=$INSTALL_DIR\\bin;%PATH%
-set PATH=$INSTALL_DIR\\lib;%PATH%
-set PATH=$INSTALL_DIR\\lib\\gnucash;%PATH%
-set PATH=$GNUTLS_DIR\\bin;%PATH%
-set PATH=$GMP_DIR\\bin;%PATH%
-set PATH=$GOFFICE_DIR\\bin;%PATH%
-set PATH=$LIBGSF_DIR\\bin;%PATH%
-set PATH=$PCRE_DIR\\bin;%PATH%
-set PATH=$GNOME_DIR\\bin;%PATH%
-set PATH=$GUILE_DIR\\bin;%PATH%
-set PATH=$WEBKIT_DIR\\bin;%PATH%
-set PATH=$REGEX_DIR\\bin;%PATH%
-set PATH=$AUTOTOOLS_DIR\\bin;%PATH%
-set PATH=$AQBANKING_PATH;%PATH%
-set PATH=$LIBOFX_DIR\\bin;%PATH%
-set PATH=$OPENSP_DIR\\bin;%PATH%
-set PATH=$LIBDBI_DIR\\bin;%PATH%
-set PATH=$SQLITE3_DIR\\bin;%PATH%
-set PATH=$MYSQL_LIB_DIR\\lib;%PATH%
-set PATH=$PGSQL_DIR\\bin;%PATH%
-set PATH=$PGSQL_DIR\\lib;%PATH%
-
-set LTDL_LIBRARY_PATH=${INSTALL_DIR}\\lib
-
-start gnucash-bin %*
-EOF
-        qpopd
-    fi
-}
-
-function make_chm() {
-    _CHM_TYPE=$1
-    _CHM_LANG=$2
-    _XSLTPROC_OPTS=$3
-    echo "Processing $_CHM_TYPE ($_CHM_LANG) ..."
-    qpushd $_CHM_TYPE/$_CHM_LANG
-        xsltproc $XSLTPROCFLAGS $_XSLTPROC_OPTS ../../../docbook-xsl/htmlhelp/htmlhelp.xsl gnucash-$_CHM_TYPE.xml
-        count=0
-        echo >> htmlhelp.hhp
-        echo "[ALIAS]" >> htmlhelp.hhp
-        echo "IDH_0=index.html" >> htmlhelp.hhp
-        echo "#define IDH_0 0" > mymaps
-        echo "[Map]" > htmlhelp.hhmap
-        echo "Searching for anchors ..."
-        for id in `cat *.xml | sed '/sect.*id=/!d;s,.*id=["'\'']\([^"'\'']*\)["'\''].*,\1,'` ; do
-            files=`grep -l "[\"']${id}[\"']" *.html` || continue
-            echo "IDH_$((++count))=${files}#${id}" >> htmlhelp.hhp
-            echo "#define IDH_${count} ${count}" >> mymaps
-            echo "${id}=${count}" >> htmlhelp.hhmap
-        done
-        echo >> htmlhelp.hhp
-        echo "[MAP]" >> htmlhelp.hhp
-        cat mymaps >> htmlhelp.hhp
-        rm mymaps
-        hhc htmlhelp.hhp  >/dev/null  || true
-        cp -fv htmlhelp.chm $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.chm
-        cp -fv htmlhelp.hhmap $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.hhmap
-    qpopd
-}
-
-function inst_docs() {
-    _DOCS_UDIR=`unix_path $DOCS_DIR`
-    if [ ! -d $_DOCS_UDIR/docbook-xsl ] ; then
-        wget_unpacked $DOCBOOK_XSL_URL $DOWNLOAD_DIR $DOCS_DIR
-        # add a pause to allow windows to realize that the files now exist
-        sleep 1
-        mv $_DOCS_UDIR/docbook-xsl-* $_DOCS_UDIR/docbook-xsl
-    fi
-    mkdir -p $_DOCS_UDIR/repos
-    qpushd $DOCS_DIR/repos
-        if [ "$UPDATE_DOCS" = "yes" ]; then
-            if [ -x .svn ]; then
-                setup "SVN update of docs"
-                svn up -r ${DOCS_REV}
-            else
-                setup "SVN checkout of docs"
-                svn co -r ${DOCS_REV} $DOCS_URL .
-            fi
-        fi
-        setup docs
-        _DOCS_INST_UDIR=`unix_path $INSTALL_DIR`/share/gnucash/help
-        mkdir -p $_DOCS_INST_UDIR/{C,de_DE,it_IT,ja_JP}
-        make_chm guide C
-        make_chm guide de_DE
-        make_chm guide it_IT
-        make_chm guide ja_JP "--stringparam chunker.output.encoding Shift_JIS --stringparam htmlhelp.encoding Shift_JIS"
-        make_chm help C
-        make_chm help de_DE
-#        make_chm help it_IT
-    qpopd
-}
-
-function finish() {
-    setup Finish...
-    if [ "$NO_SAVE_PROFILE" != "yes" ]; then
-        _NEW=x
-        for _ENV in $ENV_VARS; do
-            _ADDS=`eval echo '"\$'"${_ENV}"'_ADDS"'`
-            if [ "$_ADDS" ]; then
-                if [ "$_NEW" ]; then
-                    echo
-                    echo "Environment variables changed, please do the following"
-                    echo
-                    [ -d /etc/profile.d ] || echo "mkdir -p /etc/profile.d"
-                    _NEW=
-                fi
-                _VAL=`eval echo '"$'"${_ENV}_BASE"'"'`
-                if [ "$_VAL" ]; then
-                    _CHANGE="export ${_ENV}=\"${_ADDS}"'$'"${_ENV}\""
-                else
-                    _CHANGE="export ${_ENV}=\"${_ADDS}\""
-                fi
-                echo $_CHANGE
-                echo echo "'${_CHANGE}' >> /etc/profile.d/installer.sh"
-            fi
-        done
-    fi
-    if [ "$CROSS_COMPILE" = "yes" ]; then
-        echo "You might want to create a binary tarball now as follows:"
-        qpushd $GLOBAL_DIR
-        echo tar -czf $HOME/gnucash-fullbin.tar.gz --anchored \
-            --exclude='*.a' --exclude='*.o' --exclude='*.h' \
-            --exclude='*.info' --exclude='*.html' \
-            --exclude='*include/*' --exclude='*gtk-doc*' \
-            --exclude='bin*' \
-            --exclude='mingw32/*' --exclude='*bin/mingw32-*' \
-            --exclude='gnucash-trunk*' \
-            *
-        qpopd
-    fi
-}
-
 for step in "${steps[@]}" ; do
     eval $step
 done



More information about the gnucash-changes mailing list