Bug #618505 - Separate shell functions files from variables and steps files, patch by Yasuaki Taniguchi

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19184 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Geert Janssens 2010-05-20 08:08:35 +00:00
parent 2bac5bcb31
commit 60c67af073
6 changed files with 1962 additions and 1920 deletions

View File

@ -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

View File

@ -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,27 +9,8 @@
# 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_REV "HEAD"
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: ***

289
packaging/win32/dist-impl.sh Executable file
View File

@ -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: ***

View File

@ -9,312 +9,43 @@ function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
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

1544
packaging/win32/install-impl.sh Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff