From a89f885af41fabb4b058c8f4bdbd066571e8b9e5 Mon Sep 17 00:00:00 2001 From: Christian Stimming Date: Mon, 18 Sep 2006 09:50:25 +0000 Subject: [PATCH] Convert shell scripts from DOS CR-LF linefeeds to unix LF. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14855 57a11ea4-9604-0410-9ed3-97b8803252fd --- packaging/win32/README | 3 +- packaging/win32/custom.sh | 362 ++++---- packaging/win32/install.sh | 1634 ++++++++++++++++++------------------ 3 files changed, 999 insertions(+), 1000 deletions(-) diff --git a/packaging/win32/README b/packaging/win32/README index 3c9e98c191..de44b7fc0c 100644 --- a/packaging/win32/README +++ b/packaging/win32/README @@ -45,8 +45,7 @@ These steps need to be performed: * Then run the script create_cross_mingw.sh - it will download, compile, and install a mingw32 toolchain. -* Run "dos2unix custom.sh install.sh" and in custom.sh, make a - search&replace of '\\' into '/'. +* In custom.sh, make a search&replace of '\\' into '/'. * Edit custom.sh to set your preferred directory paths. diff --git a/packaging/win32/custom.sh b/packaging/win32/custom.sh index 57dde46a0d..bd99f88766 100644 --- a/packaging/win32/custom.sh +++ b/packaging/win32/custom.sh @@ -1,181 +1,181 @@ -#!/bin/sh # for emacs -# -# all directories should be without spaces! - -GLOBAL_DIR=c:\\soft -TMP_DIR=$GLOBAL_DIR\\tmp -DOWNLOAD_DIR=$GLOBAL_DIR\\downloads - -REPOS_URL="http://svn.gnucash.org/repo/gnucash/trunk" -REPOS_DIR=$GLOBAL_DIR\\repos -GNUCASH_DIR=$GLOBAL_DIR\\gnucash - -#### -HOST_XCOMPILE="" -cross_compile=no -LD=ld -CC=gcc -DLLTOOL=dlltool -LIBTOOLIZE=libtoolize -# For cross-compiling, uncomment the following lines: -# HOST_XCOMPILE="--host=mingw32" -# PKG_CONFIG_PATH="" # to avoid using the host's installed packages -# PATH=/opt/mingw32/bin:/opt/mingw32/mingw32/bin:$PATH -# cross_compile=yes -# LD=mingw32-ld -# CC=mingw32-gcc -# DLLTOOL=mingw32-dlltool -# LIBTOOLIZE=$GLOBAL_DIR/autotools/bin/libtoolize -#### - -MSYS_DIR=$GLOBAL_DIR\\msys - -WGET_DIR=$GLOBAL_DIR\\wget -#WGET= - -SF_MIRROR="http://heanet.dl.sourceforge.net/sourceforge" -GTK_MIRROR="ftp://ftp.gtk.org/pub" -GNOME_MIRROR="ftp.gnome.org/pub/gnome" - -DTK_URL="$SF_MIRROR/mingw/msysDTK-1.0.1.exe" - -MINGW_URL="$SF_MIRROR/mingw/MinGW-5.0.2.exe" -MINGW_DIR=$GLOBAL_DIR\\mingw - -UNZIP_URL="$SF_MIRROR/gnuwin32/unzip-5.51-1.exe" -UNZIP_DIR=$GLOBAL_DIR\\unzip - -REGEX_BIN_URL="$SF_MIRROR/gnuwin32/regex-0.12-bin.zip" -REGEX_LIB_URL="$SF_MIRROR/gnuwin32/regex-0.12-lib.zip" -REGEX_DIR=$GLOBAL_DIR\\regex - -READLINE_BIN_URL="$SF_MIRROR/gnuwin32/readline-5.0-bin.zip" -READLINE_LIB_URL="$SF_MIRROR/gnuwin32/readline-5.0-lib.zip" -READLINE_DIR=$GLOBAL_DIR\\readline - -INDENT_BIN_URL="$SF_MIRROR/gnuwin32/indent-2.2.9-bin.zip" -INDENT_DIR=$GLOBAL_DIR\\indent - -ACTIVE_PERL_URL="http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.zip" -ACTIVE_PERL_DIR=$GLOBAL_DIR\\active-perl - -GUILE_URL="http://ftp.gnu.org/pub/gnu/guile/guile-1.6.8.tar.gz" -SLIB_URL="http://swiss.csail.mit.edu/ftpdir/scm/slib3a3.zip" -GUILE_DIR=$GLOBAL_DIR\\guile - -OPENSSL_URL="http://www.slproweb.com/download/Win32OpenSSL-0_9_8c.exe" -OPENSSL_DIR=$GLOBAL_DIR\\openssl - -PEXPORTS_URL="http://www.emmestech.com/software/cygwin/pexports-0.43/pexports-0.43.zip" -PEXPORTS_DIR=$GLOBAL_DIR\\pexports - -LIBXML2_URL="http://www.zlatkovic.com/pub/libxml/libxml2-2.6.26.win32.zip" -LIBXML2_DIR=$GLOBAL_DIR\\gnome #avoid XML_FLAGS - -EXPAT_URL="ftp://ftp.jclark.com/pub/xml/expat.zip" -EXPAT_DIR=$GLOBAL_DIR\\gnome #avoid EXPAT_FLAGS - -GNOME_WIN32_URL="$GNOME_MIRROR/binaries/win32" -GETTEXT_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-0.14.5.zip" -GETTEXT_DEV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-dev-0.14.5.zip" -LIBICONV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/libiconv-1.9.1.bin.woe32.zip" -GLIB_URL="$GNOME_WIN32_URL/glib/2.12/glib-2.12.3.zip" -GLIB_DEV_URL="$GNOME_WIN32_URL/glib/2.12/glib-dev-2.12.3.zip" -LIBJPEG_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/libjpeg-6b-4.zip" -LIBPNG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/libpng-1.2.8-bin.zip" -ZLIB_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/zlib123-dll.zip" -PKG_CONFIG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/pkg-config-0.20.zip" -CAIRO_URL="$GTK_MIRROR/gtk/v2.8/win32/cairo-1.2.4.zip" -CAIRO_DEV_URL="$GTK_MIRROR/gtk/v2.8/win32/cairo-dev-1.2.4.zip" -FONTCONFIG_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-2.2.2-20040412.zip" -FONTCONFIG_DEV_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-dev-2.2.2-20040412.zip" -FREETYPE_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/freetype-2.1.10.zip" -FREETYPE_DEV_URL="$SF_MIRROR/gnuwin32/freetype-2.1.10-lib.zip" -ATK_URL="$GNOME_WIN32_URL/atk/1.12/atk-1.12.2.zip" -ATK_DEV_URL="$GNOME_WIN32_URL/atk/1.12/atk-dev-1.12.2.zip" -PANGO_URL="$GNOME_WIN32_URL/pango/1.14/pango-1.14.3.zip" -PANGO_DEV_URL="$GNOME_WIN32_URL/pango/1.14/pango-dev-1.14.3.zip" -LIBART_LGPL_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-2.3.17.zip" -LIBART_LGPL_DEV_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-dev-2.3.17.zip" -GTK_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-2.10.3.zip" -GTK_DEV_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-dev-2.10.3.zip" -INTLTOOL_URL="$GNOME_WIN32_URL/intltool/0.35/intltool-0.35.0.zip" -ORBIT2_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-2.14.2.zip" -ORBIT2_DEV_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-dev-2.14.2.zip" -GAIL_URL="$GNOME_WIN32_URL/gail/1.9/gail-1.9.2.zip" -GAIL_DEV_URL="$GNOME_WIN32_URL/gail/1.9/gail-dev-1.9.2.zip" -POPT_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/popt-1.10.2-tml-20050828.zip" -POPT_DEV_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/popt-dev-1.10.2-tml-20050828.zip" -GCONF_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-2.14.0.zip" -GCONF_DEV_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-dev-2.14.0.zip" -LIBBONOBO_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-2.16.0.zip" -LIBBONOBO_DEV_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-dev-2.16.0.zip" -GNOME_VFS_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-2.14.2.zip" -GNOME_VFS_DEV_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-dev-2.14.2.zip" -LIBGNOME_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-2.16.0.zip" -LIBGNOME_DEV_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-dev-2.16.0.zip" -LIBGNOMECANVAS_URL="$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-2.14.0.zip" -LIBGNOMECANVAS_DEV_URL="$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-dev-2.14.0.zip" -LIBBONOBOUI_URL="$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-2.16.0.zip" -LIBBONOBOUI_DEV_URL="$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-dev-2.16.0.zip" -LIBGNOMEUI_URL="$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-2.16.0.zip" -LIBGNOMEUI_DEV_URL="$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-dev-2.16.0.zip" -LIBGLADE_URL="$GNOME_WIN32_URL/libglade/2.6/libglade-2.6.0.zip" -LIBGLADE_DEV_URL="$GNOME_WIN32_URL/libglade/2.6/libglade-dev-2.6.0.zip" -LIBGNOMEPRINT_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-2.12.1.zip" -LIBGNOMEPRINT_DEV_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-dev-2.12.1.zip" -LIBGNOMEPRINTUI_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip" -LIBGNOMEPRINTUI_DEV_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip" -GTKHTML_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-3.12.0.zip" -GTKHTML_DEV_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-dev-3.12.0.zip" -GNOME_DIR=$GLOBAL_DIR\\gnome - -GWRAP_URL="http://download.savannah.gnu.org/releases/g-wrap/g-wrap-1.9.6.tar.gz" -GWRAP_DIR=$GLOBAL_DIR\\g-wrap - -AUTOCONF_URL="http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.bz2" -AUTOMAKE_URL="http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2" -LIBTOOL_URL="http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz" -AUTOTOOLS_DIR=$GLOBAL_DIR\\autotools - -LIBGSF_URL="$GNOME_MIRROR/sources/libgsf/1.14/libgsf-1.14.1.tar.bz2" -LIBGSF_DIR=$GLOBAL_DIR\\libgsf - -GOFFICE_URL="$GNOME_MIRROR/sources/goffice/0.3/goffice-0.3.0.tar.bz2" -GOFFICE_DIR=$GLOBAL_DIR\\goffice -GOFFICE_PATCH=`pwd`/goffice-0.3.0-patch.diff - -GLADE_URL="$GNOME_MIRROR/sources/glade3/3.0/glade3-3.0.1.tar.bz2" -GLADE_DIR=$GLOBAL_DIR\\glade - -SVN_URL="http://subversion.tigris.org/files/documents/15/32856/svn-1.3.2-setup.exe" -SVN_DIR=$GLOBAL_DIR\\svn - -# 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_wget -add_step inst_dtk -add_step inst_mingw -add_step inst_unzip -add_step inst_regex -add_step inst_readline -add_step inst_indent -if test x$cross_compile != xyes ; then - add_step inst_active_perl -fi -add_step inst_guile -if test x$cross_compile != xyes ; then - add_step inst_openssl -fi -add_step inst_pexports -add_step inst_libxml2 -add_step inst_expat -add_step inst_gnome -add_step inst_gwrap -add_step inst_autotools -add_step inst_libgsf -add_step inst_goffice -#add_step inst_glade -add_step inst_svn -add_step svn_up -add_step inst_gnucash +#!/bin/sh # for emacs +# +# all directories should be without spaces! + +GLOBAL_DIR=c:\\soft +TMP_DIR=$GLOBAL_DIR\\tmp +DOWNLOAD_DIR=$GLOBAL_DIR\\downloads + +REPOS_URL="http://svn.gnucash.org/repo/gnucash/trunk" +REPOS_DIR=$GLOBAL_DIR\\repos +GNUCASH_DIR=$GLOBAL_DIR\\gnucash + +#### +HOST_XCOMPILE="" +cross_compile=no +LD=ld +CC=gcc +DLLTOOL=dlltool +LIBTOOLIZE=libtoolize +# For cross-compiling, uncomment the following lines: +# HOST_XCOMPILE="--host=mingw32" +# PKG_CONFIG_PATH="" # to avoid using the host's installed packages +# PATH=/opt/mingw32/bin:/opt/mingw32/mingw32/bin:$PATH +# cross_compile=yes +# LD=mingw32-ld +# CC=mingw32-gcc +# DLLTOOL=mingw32-dlltool +# LIBTOOLIZE=$GLOBAL_DIR/autotools/bin/libtoolize +#### + +MSYS_DIR=$GLOBAL_DIR\\msys + +WGET_DIR=$GLOBAL_DIR\\wget +#WGET= + +SF_MIRROR="http://heanet.dl.sourceforge.net/sourceforge" +GTK_MIRROR="ftp://ftp.gtk.org/pub" +GNOME_MIRROR="ftp.gnome.org/pub/gnome" + +DTK_URL="$SF_MIRROR/mingw/msysDTK-1.0.1.exe" + +MINGW_URL="$SF_MIRROR/mingw/MinGW-5.0.2.exe" +MINGW_DIR=$GLOBAL_DIR\\mingw + +UNZIP_URL="$SF_MIRROR/gnuwin32/unzip-5.51-1.exe" +UNZIP_DIR=$GLOBAL_DIR\\unzip + +REGEX_BIN_URL="$SF_MIRROR/gnuwin32/regex-0.12-bin.zip" +REGEX_LIB_URL="$SF_MIRROR/gnuwin32/regex-0.12-lib.zip" +REGEX_DIR=$GLOBAL_DIR\\regex + +READLINE_BIN_URL="$SF_MIRROR/gnuwin32/readline-5.0-bin.zip" +READLINE_LIB_URL="$SF_MIRROR/gnuwin32/readline-5.0-lib.zip" +READLINE_DIR=$GLOBAL_DIR\\readline + +INDENT_BIN_URL="$SF_MIRROR/gnuwin32/indent-2.2.9-bin.zip" +INDENT_DIR=$GLOBAL_DIR\\indent + +ACTIVE_PERL_URL="http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.zip" +ACTIVE_PERL_DIR=$GLOBAL_DIR\\active-perl + +GUILE_URL="http://ftp.gnu.org/pub/gnu/guile/guile-1.6.8.tar.gz" +SLIB_URL="http://swiss.csail.mit.edu/ftpdir/scm/slib3a3.zip" +GUILE_DIR=$GLOBAL_DIR\\guile + +OPENSSL_URL="http://www.slproweb.com/download/Win32OpenSSL-0_9_8c.exe" +OPENSSL_DIR=$GLOBAL_DIR\\openssl + +PEXPORTS_URL="http://www.emmestech.com/software/cygwin/pexports-0.43/pexports-0.43.zip" +PEXPORTS_DIR=$GLOBAL_DIR\\pexports + +LIBXML2_URL="http://www.zlatkovic.com/pub/libxml/libxml2-2.6.26.win32.zip" +LIBXML2_DIR=$GLOBAL_DIR\\gnome #avoid XML_FLAGS + +EXPAT_URL="ftp://ftp.jclark.com/pub/xml/expat.zip" +EXPAT_DIR=$GLOBAL_DIR\\gnome #avoid EXPAT_FLAGS + +GNOME_WIN32_URL="$GNOME_MIRROR/binaries/win32" +GETTEXT_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-0.14.5.zip" +GETTEXT_DEV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-dev-0.14.5.zip" +LIBICONV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/libiconv-1.9.1.bin.woe32.zip" +GLIB_URL="$GNOME_WIN32_URL/glib/2.12/glib-2.12.3.zip" +GLIB_DEV_URL="$GNOME_WIN32_URL/glib/2.12/glib-dev-2.12.3.zip" +LIBJPEG_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/libjpeg-6b-4.zip" +LIBPNG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/libpng-1.2.8-bin.zip" +ZLIB_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/zlib123-dll.zip" +PKG_CONFIG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/pkg-config-0.20.zip" +CAIRO_URL="$GTK_MIRROR/gtk/v2.8/win32/cairo-1.2.4.zip" +CAIRO_DEV_URL="$GTK_MIRROR/gtk/v2.8/win32/cairo-dev-1.2.4.zip" +FONTCONFIG_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-2.2.2-20040412.zip" +FONTCONFIG_DEV_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-dev-2.2.2-20040412.zip" +FREETYPE_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/freetype-2.1.10.zip" +FREETYPE_DEV_URL="$SF_MIRROR/gnuwin32/freetype-2.1.10-lib.zip" +ATK_URL="$GNOME_WIN32_URL/atk/1.12/atk-1.12.2.zip" +ATK_DEV_URL="$GNOME_WIN32_URL/atk/1.12/atk-dev-1.12.2.zip" +PANGO_URL="$GNOME_WIN32_URL/pango/1.14/pango-1.14.3.zip" +PANGO_DEV_URL="$GNOME_WIN32_URL/pango/1.14/pango-dev-1.14.3.zip" +LIBART_LGPL_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-2.3.17.zip" +LIBART_LGPL_DEV_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-dev-2.3.17.zip" +GTK_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-2.10.3.zip" +GTK_DEV_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-dev-2.10.3.zip" +INTLTOOL_URL="$GNOME_WIN32_URL/intltool/0.35/intltool-0.35.0.zip" +ORBIT2_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-2.14.2.zip" +ORBIT2_DEV_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-dev-2.14.2.zip" +GAIL_URL="$GNOME_WIN32_URL/gail/1.9/gail-1.9.2.zip" +GAIL_DEV_URL="$GNOME_WIN32_URL/gail/1.9/gail-dev-1.9.2.zip" +POPT_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/popt-1.10.2-tml-20050828.zip" +POPT_DEV_URL="$GNOME_MIRROR/platform/2.13/2.13.92/win32/dependencies/popt-dev-1.10.2-tml-20050828.zip" +GCONF_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-2.14.0.zip" +GCONF_DEV_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-dev-2.14.0.zip" +LIBBONOBO_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-2.16.0.zip" +LIBBONOBO_DEV_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-dev-2.16.0.zip" +GNOME_VFS_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-2.14.2.zip" +GNOME_VFS_DEV_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-dev-2.14.2.zip" +LIBGNOME_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-2.16.0.zip" +LIBGNOME_DEV_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-dev-2.16.0.zip" +LIBGNOMECANVAS_URL="$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-2.14.0.zip" +LIBGNOMECANVAS_DEV_URL="$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-dev-2.14.0.zip" +LIBBONOBOUI_URL="$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-2.16.0.zip" +LIBBONOBOUI_DEV_URL="$GNOME_WIN32_URL/libbonoboui/2.16/libbonoboui-dev-2.16.0.zip" +LIBGNOMEUI_URL="$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-2.16.0.zip" +LIBGNOMEUI_DEV_URL="$GNOME_WIN32_URL/libgnomeui/2.16/libgnomeui-dev-2.16.0.zip" +LIBGLADE_URL="$GNOME_WIN32_URL/libglade/2.6/libglade-2.6.0.zip" +LIBGLADE_DEV_URL="$GNOME_WIN32_URL/libglade/2.6/libglade-dev-2.6.0.zip" +LIBGNOMEPRINT_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-2.12.1.zip" +LIBGNOMEPRINT_DEV_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-dev-2.12.1.zip" +LIBGNOMEPRINTUI_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip" +LIBGNOMEPRINTUI_DEV_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip" +GTKHTML_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-3.12.0.zip" +GTKHTML_DEV_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-dev-3.12.0.zip" +GNOME_DIR=$GLOBAL_DIR\\gnome + +GWRAP_URL="http://download.savannah.gnu.org/releases/g-wrap/g-wrap-1.9.6.tar.gz" +GWRAP_DIR=$GLOBAL_DIR\\g-wrap + +AUTOCONF_URL="http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.bz2" +AUTOMAKE_URL="http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2" +LIBTOOL_URL="http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz" +AUTOTOOLS_DIR=$GLOBAL_DIR\\autotools + +LIBGSF_URL="$GNOME_MIRROR/sources/libgsf/1.14/libgsf-1.14.1.tar.bz2" +LIBGSF_DIR=$GLOBAL_DIR\\libgsf + +GOFFICE_URL="$GNOME_MIRROR/sources/goffice/0.3/goffice-0.3.0.tar.bz2" +GOFFICE_DIR=$GLOBAL_DIR\\goffice +GOFFICE_PATCH=`pwd`/goffice-0.3.0-patch.diff + +GLADE_URL="$GNOME_MIRROR/sources/glade3/3.0/glade3-3.0.1.tar.bz2" +GLADE_DIR=$GLOBAL_DIR\\glade + +SVN_URL="http://subversion.tigris.org/files/documents/15/32856/svn-1.3.2-setup.exe" +SVN_DIR=$GLOBAL_DIR\\svn + +# 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_wget +add_step inst_dtk +add_step inst_mingw +add_step inst_unzip +add_step inst_regex +add_step inst_readline +add_step inst_indent +if test x$cross_compile != xyes ; then + add_step inst_active_perl +fi +add_step inst_guile +if test x$cross_compile != xyes ; then + add_step inst_openssl +fi +add_step inst_pexports +add_step inst_libxml2 +add_step inst_expat +add_step inst_gnome +add_step inst_gwrap +add_step inst_autotools +add_step inst_libgsf +add_step inst_goffice +#add_step inst_glade +add_step inst_svn +add_step svn_up +add_step inst_gnucash diff --git a/packaging/win32/install.sh b/packaging/win32/install.sh index 013e2dc3b8..25a709a4b1 100644 --- a/packaging/win32/install.sh +++ b/packaging/win32/install.sh @@ -1,817 +1,817 @@ -#!/bin/sh - -set -e - -function add_step() { steps=("${steps[@]}" "$@"); } -function qpushd() { pushd "$@" >/dev/null; } -function qpopd() { popd >/dev/null; } - -# c:/dir/sub -function win_fs_path() { - echo "$*" | sed 's,\\,/,g' -} - -# /c/dir/sub -function unix_path() { - echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g' -} - -qpushd "$(dirname $(unix_path "$0"))" -. custom.sh - -SEPS_ACLOCAL_FLAGS=" " -SEPS_AUTOTOOLS_CPPFLAGS=" " -SEPS_AUTOTOOLS_LDFLAGS=" " -SEPS_GNOME_CPPFLAGS=" " -SEPS_GNOME_LDFLAGS=" " -SEPS_GUILE_LOAD_PATH=";" -SEPS_GUILE_CPPFLAGS=" " -SEPS_GUILE_LDFLAGS=" " -SEPS_INTLTOOL_PERL=" " -SEPS_PATH=":" -SEPS_PKG_CONFIG_PATH=":" -SEPS_READLINE_CPPFLAGS=" " -SEPS_READLINE_LDFLAGS=" " -SEPS_REGEX_CPPFLAGS=" " -SEPS_REGEX_LDFLAGS=" " -ENV_VARS="\ -ACLOCAL_FLAGS \ -AUTOTOOLS_CPPFLAGS \ -AUTOTOOLS_LDFLAGS \ -GNOME_CPPFLAGS \ -GNOME_LDFLAGS \ -GUILE_LOAD_PATH \ -GUILE_CPPFLAGS \ -GUILE_LDFLAGS \ -INTLTOOL_PERL \ -PATH \ -PKG_CONFIG_PATH \ -READLINE_CPPFLAGS \ -READLINE_LDFLAGS \ -REGEX_CPPFLAGS \ -REGEX_LDFLAGS \ -" - -function setup() { - echo - echo "############################################################" - echo "### $*" - echo "############################################################" -} - -function die() { - echo - echo "!!! $* !!!" - echo "!!! ABORTING !!!" - exit -1 -} - -function quiet() { "$@" &>/dev/null; } -function add_to_env() { - _SEP=`eval echo '"$'"SEPS_$2"'"'` - _ENV=`eval echo '"$'"$2"'"'` - _SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'` - _TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"` - if [ "$_TEST" ]; then - if [ "$_ENV" ]; then - eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"' - else - eval "$2_ADDS"'="'"$1"'"' - fi - eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"' - fi -} - -function prepare() { - mkdir -p $TMP_DIR - mkdir -p $DOWNLOAD_DIR - for _ENV in $ENV_VARS; do - eval "${_ENV}_BASE"'=$'"${_ENV}" - eval "${_ENV}_ADDS=" - eval export "${_ENV}" - done - DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR` - TMP_UDIR=`unix_path $TMP_DIR` -} - -# usage: smart_wget URL DESTDIR -function smart_wget() { - _FILE=`basename $1` - _DLD=`unix_path $2` - - # If the file already exists in the download directory ($2) - # then don't do anything. But if it does NOT exist then - # download the file to the tmpdir and then when that completes - # move it to the dest dir. - if [ ! -f $_DLD/$_FILE ] ; then - wget -c $1 -P $TMP_DIR - mv $TMP_UDIR/$_FILE $_DLD - fi - LAST_FILE=$_DLD/$_FILE -} - -# usage: wget_unpacked URL DOWNLOAD_DIR UNPACK_DIR -function wget_unpacked() { - smart_wget $1 $2 - _UPD=`unix_path $3` - echo -n "Extracting ${LAST_FILE##*/} ... " - case $LAST_FILE in - *.zip) unzip -q -o $LAST_FILE -d $_UPD;; - *.tar.gz) tar -xzpf $LAST_FILE -C $_UPD;; - *.tar.bz2) tar -xjpf $LAST_FILE -C $_UPD;; - *) die "Cannot unpack file $LAST_FILE!";; - esac - echo "done" -} - -function inst_wget() { - setup Wget - _WGET_UDIR=`unix_path $WGET_DIR` - if quiet $_WGET_UDIR/wget --version || quiet wget --version - then - echo "already installed. skipping." - else - mkdir -p $WGET_DIR - tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $WGET_DIR - cp $_WGET_UDIR/*/*/wget.exe $WGET_DIR - fi - add_to_env $_WGET_UDIR PATH - quiet wget --version || die "wget unavailable" -} - -function inst_dtk() { - setup MSYS DTK - if quiet perl --help - then - echo "msys dtk already installed. skipping." - else - smart_wget $DTK_URL $DOWNLOAD_DIR - echo "!!! When asked for an installation path, specify $MSYS_DIR !!!" - $LAST_FILE - for file in \ - /bin/{aclocal*,auto*,ifnames,libtool*,guile*} \ - /share/{aclocal,aclocal-1.7,autoconf,autogen,automake-1.7,guile,libtool} - do - [ "${file##*.bak}" ] || continue - _dst_file=$file.bak - while [ -e $_dst_file ]; do _dst_file=$_dst_file.bak; done - mv $file $_dst_file - done - fi - quiet perl --help || die "msys dtk not installed correctly" -} - -function inst_mingw() { - setup MinGW - if quiet ${CC} --version - then - echo "mingw already installed. skipping." - else - _MINGW_WFSDIR=`win_fs_path $MINGW_DIR` - smart_wget $MINGW_URL $DOWNLOAD_DIR - echo "!!! Install g++ !!!" - echo "!!! When asked for an installation path, specify $MINGW_DIR !!!" - $LAST_FILE - (echo "y"; echo "y"; echo "$_MINGW_WFSDIR") | sh pi.sh - fi - quiet ${CC} --version && quiet ${LD} --help || die "mingw not installed correctly" -} - -function inst_unzip() { - setup Unzip - _UNZIP_UDIR=`unix_path $UNZIP_DIR` - if quiet $_UNZIP_UDIR/bin/unzip --help || quiet unzip --help - then - echo "unzip already installed. skipping." - else - smart_wget $UNZIP_URL $DOWNLOAD_DIR - echo "!!! When asked for an installation path, specify $UNZIP_DIR !!!" - $LAST_FILE - fi - add_to_env $_UNZIP_UDIR/bin PATH - quiet unzip --help || die "unzip unavailable" -} - -function inst_regex() { - setup RegEx - _REGEX_UDIR=`unix_path $REGEX_DIR` - 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 -lregex -o $TMP_UDIR/ofile - then - echo "regex already installed. skipping." - else - mkdir -p $REGEX_DIR - wget_unpacked $REGEX_BIN_URL $DOWNLOAD_DIR $REGEX_DIR - wget_unpacked $REGEX_LIB_URL $DOWNLOAD_DIR $REGEX_DIR - fi - quiet ${LD} $REGEX_LDFLAGS -lregex -o $TMP_UDIR/ofile || die "regex not installed correctly" -} - -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_DIR - wget_unpacked $READLINE_BIN_URL $DOWNLOAD_DIR $READLINE_DIR - wget_unpacked $READLINE_LIB_URL $DOWNLOAD_DIR $READLINE_DIR - fi - quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile || die "readline not installed correctly" -} - -function inst_indent() { - setup Indent - _INDENT_UDIR=`unix_path $INDENT_DIR` - add_to_env $_INDENT_UDIR/bin PATH - if quiet which indent - then - echo "indent already installed. skipping." - else - mkdir -p $INDENT_DIR - wget_unpacked $INDENT_BIN_URL $DOWNLOAD_DIR $INDENT_DIR - fi - quiet which indent || die "indent unavailable" -} - -function inst_active_perl() { - setup ActivePerl \(intltool\) - _ACTIVE_PERL_WFSDIR=`win_fs_path $ACTIVE_PERL_DIR` - add_to_env $_ACTIVE_PERL_WFSDIR/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 - # this is the first of several bad hacks - # it would be much more natural to have a sort of -p flag like for `patch' - # please deuglify me - qpushd $ACTIVE_PERL_DIR - cp -r ActivePerl/Perl/* . - rm -rf ActivePerl - qpopd - fi - quiet $INTLTOOL_PERL --help || die "ActivePerl not installed correctly" -} - -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 - smart_wget $SLIB_URL $DOWNLOAD_DIR - tar -xzpf $DOWNLOAD_UDIR/guile-*.tar.gz -C $TMP_UDIR - 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-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} -lregex" - 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} -lregex -no-undefined" - make install - qpopd - qpushd $GUILE_DIR/bin - mv libguilereadline-v-12-12.dll libguilereadline-v-12.dll - mv libguile-srfi-srfi-4-v-1-1.dll libguile-srfi-srfi-4-v-1.dll - mv libguile-srfi-srfi-13-14-v-1-1.dll libguile-srfi-srfi-13-14-v-1.dll - qpopd - _GUILE_MAJOR=`echo $_GUILE_UDIR/share/guile/1.* | sed 's,.*/,,'` - _SLIB_DIR=$GUILE_DIR\\share\\guile\\$_GUILE_MAJOR - mkdir -p $_SLIB_DIR - unzip $DOWNLOAD_DIR/slib*.zip -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 - fi - if test x$cross_compile != xyes ; then - add_to_env "-I $_GUILE_UDIR/share/aclocal" ACLOCAL_FLAGS - fi - guile -c '(use-modules (srfi srfi-39))' && - guile -c "(use-modules (ice-9 slib)) (require 'printf)" || die "guile not installed correctly" -} - -function inst_openssl() { - setup OpenSSL - if [ -f $WINDIR\\system32\\libssl32.dll ] - then - echo "openssl already installed. skipping." - else - smart_wget $OPENSSL_URL $DOWNLOAD_DIR - echo "!!! When asked for an installation path, specify $OPENSSL_DIR !!!" - $LAST_FILE - fi - [ -f $WINDIR\\system32\\libssl32.dll ] || die "openssl not installed correctly" -} - -function inst_pexports() { - setup pexports - _PEXPORTS_UDIR=`unix_path $PEXPORTS_DIR` - add_to_env $_PEXPORTS_UDIR/bin PATH - if quiet which pexports - then - echo "pexports already installed. skipping." - else - wget_unpacked $PEXPORTS_URL $DOWNLOAD_DIR $PEXPORTS_DIR - qpushd $PEXPORTS_DIR - mv pexports-* mydir - mv mydir/* . - rmdir mydir - if test x$cross_compile = xyes ; then - cd src - make - cp pexports.exe ../bin/pexports - fi - qpopd - fi - quiet which pexports || die "pexports unavailable" -} - -function inst_libxml2() { - setup LibXML2 - _LIBXML2_UDIR=`unix_path $LIBXML2_DIR` - if quiet ${LD} -L$_LIBXML2_UDIR/lib -lxml2 -o $TMP_UDIR/ofile - then - echo "libxml2 already installed. skipping." - else - wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $LIBXML2_DIR - qpushd $LIBXML2_DIR - mv libxml2-* mydir - cp -r mydir/* . - rm -rf mydir - pexports bin/libxml2.dll > libxml2.def - ${DLLTOOL} --input-def libxml2.def --output-lib lib/libxml2.a - rm libxml2.def - _LIBXML2_VERSION=`echo $LAST_FILE | sed 's#.*libxml2-\(.*\).win32.zip#\1#'` - mkdir -p lib/pkgconfig - cat > lib/pkgconfig/libxml-2.0.pc < lib/pkgconfig/freetype2.pc < core-runtime.c - qpopd - cp configure configure.bak - cat configure.bak | sed 's,"glib","glib-2.0",g' > configure - ./configure ${HOST_XCOMPILE} \ - CPPFLAGS="${GUILE_CPPFLAGS}" \ - LDFLAGS="${GUILE_LDFLAGS}" \ - --prefix=$_GWRAP_WFSDIR \ - --with-modules-dir=`echo $GWRAP_DIR | sed 's#\\\\#\\\\\\\\#g'`\\\\share\\\\guile\\\\site - qpushd guile/g-wrap/gw - cp Makefile Makefile.bak - cat Makefile.bak | sed '/^libgw_guile_standard_la_LIBADD/s,$, ../../../libffi/libffi.la ../../../g-wrap/libgwrap-core-runtime.la,;/libgw_guile_gw_glib_la_LIBADD/s,$, ../../../g-wrap/libgwrap-core-runtime.la,' > Makefile - make standard.c gw-glib.c - cp standard.scm standard.scm.bak - cat standard.scm.bak | sed 's,"\(libgw-guile-standard\)","../lib/\1-0",' > standard.scm - cp gw-glib.scm gw-glib.scm.bak - cat gw-glib.scm.bak | sed 's,"\(libgw-guile-gw-glib\)","../lib/\1-0",' > gw-glib.scm - qpopd - qpushd guile/test - cp Makefile Makefile.bak - cat Makefile.bak | sed '/^std_libs/s,\\$, ../../libffi/libffi.la \\,' > Makefile - qpopd - make LDFLAGS="-no-undefined" - qpushd guile/g-wrap - # Fix the filenames of the to be loaded DLLs - cp guile.scm guile.scm.bak - sed "s/slot-ref wrapset 'shlib-path) \"\\\\\"))/slot-ref wrapset 'shlib-path) \"-0\\\\\"))/" guile.scm.bak > guile.scm - qpopd - make install - qpopd - fi - add_to_env $_GWRAP_UDIR/lib/pkgconfig PKG_CONFIG_PATH - guile -c '(use-modules (srfi srfi-39))' && - quiet g-wrap-config --version || die "g-wrap not installed correctly" -} - -function inst_autotools() { - setup Autotools - _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR` - add_to_env $_AUTOTOOLS_UDIR/bin PATH - 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 - qpushd $TMP_UDIR/autoconf-* - echo "building autoconf..." - ./configure --prefix=$_AUTOTOOLS_UDIR - make - make install - qpopd - qpushd $TMP_UDIR/automake-* - echo "building automake..." - ./configure --prefix=$_AUTOTOOLS_UDIR - make - make install - qpopd - fi - if quiet ${LIBTOOLIZE} --help - then - echo "libtool/libtoolize already installed. skipping." - else - wget_unpacked $LIBTOOL_URL $DOWNLOAD_DIR $TMP_DIR - qpushd $TMP_UDIR/libtool-* - echo "building libtool..." - ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR - make - make install - qpopd - fi - add_to_env -I$_AUTOTOOLS_UDIR/include AUTOTOOLS_CPPFLAGS - add_to_env -L$_AUTOTOOLS_UDIR/lib AUTOTOOLS_LDFLAGS - add_to_env "-I $_AUTOTOOLS_UDIR/share/aclocal" ACLOCAL_FLAGS - quiet autoconf --help && - quiet automake --help && - quiet ${LIBTOOLIZE} --help || die "autotools not installed correctly" -} - -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 - qpushd $TMP_UDIR/libgsf-* - ./configure ${HOST_XCOMPILE} --prefix=$_LIBGSF_UDIR \ - CPPFLAGS="${GNOME_CPPFLAGS}" \ - LDFLAGS="${GNOME_LDFLAGS}" - make - make install - qpopd - fi - pkg-config --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly" -} - -function inst_goffice() { - setup GOffice - _GOFFICE_UDIR=`unix_path $GOFFICE_DIR` - add_to_env $_GOFFICE_UDIR/lib/pkgconfig PKG_CONFIG_PATH - if quiet pkg-config --exists libgoffice-0.3 - then - echo "goffice already installed. skipping." - else - wget_unpacked $GOFFICE_URL $DOWNLOAD_DIR $TMP_DIR - mydir=`pwd` - qpushd $TMP_UDIR/goffice-* - [ -n "$GOFFICE_PATCH" -a -f "$GOFFICE_PATCH" ] && \ - patch -p1 < $GOFFICE_PATCH - ${LIBTOOLIZE} --force - aclocal ${ACLOCAL_FLAGS} - automake - autoconf - ./configure ${HOST_XCOMPILE} --prefix=$_GOFFICE_UDIR \ - CPPFLAGS="${GNOME_CPPFLAGS}" \ - LDFLAGS="${GNOME_LDFLAGS}" - [ -f dumpdef.pl ] || cp -p ../libgsf-*/dumpdef.pl . - make - make install - qpopd - fi - pkg-config --exists libgoffice-0.3 || die "goffice not installed correctly" -} - -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 - qpushd $TMP_UDIR/glade3-* - ./configure ${HOST_XCOMPILE} --prefix=$_GLADE_WFSDIR - make - make install - qpopd - fi - quiet glade-3 --version || die "glade not installed correctly" -} - -function inst_svn() { - setup Subversion - _SVN_UDIR=`unix_path $SVN_DIR` - export PATH="$_SVN_UDIR/bin:$PATH" - if quiet svn --version - then - echo "subversion already installed. skipping." - else - smart_wget $SVN_URL $DOWNLOAD_DIR - echo "!!! When asked for an installation path, specify $SVN_DIR !!!" - $LAST_FILE - fi -} - -function svn_up() { - mkdir -p $REPOS_DIR - qpushd $REPOS_DIR - if [ -x .svn ]; then - setup svn up - svn up - else - setup svn co - svn co $REPOS_URL . - fi - qpopd -} - -function inst_gnucash() { - setup GnuCash - _GNUCASH_WFSDIR=`win_fs_path $GNUCASH_DIR` - _GNUCASH_UDIR=`unix_path $GNUCASH_DIR` - qpushd $REPOS_DIR - if grep "GUILE_LOAD_PATH.*:" configure.in; then - cp configure.in configure.in.bak - cat configure.in.bak | sed '/GUILE_LOAD_PATH/s,:,;,g' > configure.in - fi - ./autogen.sh - ./configure ${HOST_XCOMPILE} \ - --prefix=$_GNUCASH_WFSDIR \ - --enable-debug \ - --enable-schemas-install=no \ - CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} -D_WIN32" \ - LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS}" \ - PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - - # Windows DLLs don't need relinking - cp ltmain.sh ltmain.sh.bak ; grep -v "need_relink=yes" ltmain.sh.bak > ltmain.sh - cp libtool libtool.bak ; grep -v "need_relink=yes" libtool.bak > libtool - # Exclude (for now) the test subdirectories from the build - # because executable linking is so painfully slow on mingw - perl -pi.bak -e's#^(SUBDIRS.* )test( .*)?$#\1\2#' `find src -name Makefile` - - make LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} -no-undefined" - - # Try to fix the paths in the "gnucash" script - qpushd src/bin - rm gnucash - make PATH_SEPARATOR=";" \ - bindir="${_GNUCASH_UDIR}/bin:${_GNUCASH_UDIR}/lib/bin:${_GOFFICE_UDIR}/bin:${_LIBGSF_UDIR}/bin:${_GWRAP_UDIR}/bin:${_GNOME_UDIR}/bin:${_LIBXML2_UDIR}/bin:${_GUILE_UDIR}/bin:${_REGEX_UDIR}/bin" \ - gnucash - qpopd - - make install - qpopd - - qpushd ${_GNUCASH_WFSDIR}/lib/gnucash - # Remove the dependency_libs line from the installed .la files - # because otherwise loading the modules literally takes hours. - for A in *.la; do grep -v dependency_libs $A > tmp ; mv tmp $A; done - qpopd - - qpushd ${_GNUCASH_WFSDIR}/etc/gconf/schemas - for file in *.schemas; do - gconftool-2 \ - --config-source=xml:merged:${_GNUCASH_WFSDIR}/etc/gconf/gconf.xml.defaults \ - --install-schema-file $file - done - gconftool-2 --shutdown - qpopd - - # Create a startup script that works without the msys shell - qpushd ${_GNUCASH_WFSDIR}/bin - echo "set PATH=${GNUCASH_DIR}\\bin;${GNUCASH_DIR}\\lib\\bin;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${GWRAP_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin" > gnucash.bat - echo "set GUILE_WARN_DEPRECATED=no" >> gnucash.bat - echo "set GNC_MODULE_PATH=${GNUCASH_DIR}\\lib\\gnucash" >> gnucash.bat - echo "set GUILE_LOAD_PATH=${GWRAP_DIR}\\share\\guile\\site;${GNUCASH_DIR}\\share\\gnucash\\guile-modules;${GNUCASH_DIR}\\share\\gnucash\\scm;%GUILE_LOAD_PATH%" >> gnucash.bat - echo "start gnucash-bin" >> gnucash.bat - qpopd -} - -function finish() { - _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 - _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 -} - -prepare -for step in "${steps[@]}" ; do - eval $step -done -finish -qpopd - - -### Local Variables: *** -### sh-basic-offset: 4 *** -### tab-width: 8 *** -### End: *** +#!/bin/sh + +set -e + +function add_step() { steps=("${steps[@]}" "$@"); } +function qpushd() { pushd "$@" >/dev/null; } +function qpopd() { popd >/dev/null; } + +# c:/dir/sub +function win_fs_path() { + echo "$*" | sed 's,\\,/,g' +} + +# /c/dir/sub +function unix_path() { + echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g' +} + +qpushd "$(dirname $(unix_path "$0"))" +. custom.sh + +SEPS_ACLOCAL_FLAGS=" " +SEPS_AUTOTOOLS_CPPFLAGS=" " +SEPS_AUTOTOOLS_LDFLAGS=" " +SEPS_GNOME_CPPFLAGS=" " +SEPS_GNOME_LDFLAGS=" " +SEPS_GUILE_LOAD_PATH=";" +SEPS_GUILE_CPPFLAGS=" " +SEPS_GUILE_LDFLAGS=" " +SEPS_INTLTOOL_PERL=" " +SEPS_PATH=":" +SEPS_PKG_CONFIG_PATH=":" +SEPS_READLINE_CPPFLAGS=" " +SEPS_READLINE_LDFLAGS=" " +SEPS_REGEX_CPPFLAGS=" " +SEPS_REGEX_LDFLAGS=" " +ENV_VARS="\ +ACLOCAL_FLAGS \ +AUTOTOOLS_CPPFLAGS \ +AUTOTOOLS_LDFLAGS \ +GNOME_CPPFLAGS \ +GNOME_LDFLAGS \ +GUILE_LOAD_PATH \ +GUILE_CPPFLAGS \ +GUILE_LDFLAGS \ +INTLTOOL_PERL \ +PATH \ +PKG_CONFIG_PATH \ +READLINE_CPPFLAGS \ +READLINE_LDFLAGS \ +REGEX_CPPFLAGS \ +REGEX_LDFLAGS \ +" + +function setup() { + echo + echo "############################################################" + echo "### $*" + echo "############################################################" +} + +function die() { + echo + echo "!!! $* !!!" + echo "!!! ABORTING !!!" + exit -1 +} + +function quiet() { "$@" &>/dev/null; } +function add_to_env() { + _SEP=`eval echo '"$'"SEPS_$2"'"'` + _ENV=`eval echo '"$'"$2"'"'` + _SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'` + _TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"` + if [ "$_TEST" ]; then + if [ "$_ENV" ]; then + eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"' + else + eval "$2_ADDS"'="'"$1"'"' + fi + eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"' + fi +} + +function prepare() { + mkdir -p $TMP_DIR + mkdir -p $DOWNLOAD_DIR + for _ENV in $ENV_VARS; do + eval "${_ENV}_BASE"'=$'"${_ENV}" + eval "${_ENV}_ADDS=" + eval export "${_ENV}" + done + DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR` + TMP_UDIR=`unix_path $TMP_DIR` +} + +# usage: smart_wget URL DESTDIR +function smart_wget() { + _FILE=`basename $1` + _DLD=`unix_path $2` + + # If the file already exists in the download directory ($2) + # then don't do anything. But if it does NOT exist then + # download the file to the tmpdir and then when that completes + # move it to the dest dir. + if [ ! -f $_DLD/$_FILE ] ; then + wget -c $1 -P $TMP_DIR + mv $TMP_UDIR/$_FILE $_DLD + fi + LAST_FILE=$_DLD/$_FILE +} + +# usage: wget_unpacked URL DOWNLOAD_DIR UNPACK_DIR +function wget_unpacked() { + smart_wget $1 $2 + _UPD=`unix_path $3` + echo -n "Extracting ${LAST_FILE##*/} ... " + case $LAST_FILE in + *.zip) unzip -q -o $LAST_FILE -d $_UPD;; + *.tar.gz) tar -xzpf $LAST_FILE -C $_UPD;; + *.tar.bz2) tar -xjpf $LAST_FILE -C $_UPD;; + *) die "Cannot unpack file $LAST_FILE!";; + esac + echo "done" +} + +function inst_wget() { + setup Wget + _WGET_UDIR=`unix_path $WGET_DIR` + if quiet $_WGET_UDIR/wget --version || quiet wget --version + then + echo "already installed. skipping." + else + mkdir -p $WGET_DIR + tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $WGET_DIR + cp $_WGET_UDIR/*/*/wget.exe $WGET_DIR + fi + add_to_env $_WGET_UDIR PATH + quiet wget --version || die "wget unavailable" +} + +function inst_dtk() { + setup MSYS DTK + if quiet perl --help + then + echo "msys dtk already installed. skipping." + else + smart_wget $DTK_URL $DOWNLOAD_DIR + echo "!!! When asked for an installation path, specify $MSYS_DIR !!!" + $LAST_FILE + for file in \ + /bin/{aclocal*,auto*,ifnames,libtool*,guile*} \ + /share/{aclocal,aclocal-1.7,autoconf,autogen,automake-1.7,guile,libtool} + do + [ "${file##*.bak}" ] || continue + _dst_file=$file.bak + while [ -e $_dst_file ]; do _dst_file=$_dst_file.bak; done + mv $file $_dst_file + done + fi + quiet perl --help || die "msys dtk not installed correctly" +} + +function inst_mingw() { + setup MinGW + if quiet ${CC} --version + then + echo "mingw already installed. skipping." + else + _MINGW_WFSDIR=`win_fs_path $MINGW_DIR` + smart_wget $MINGW_URL $DOWNLOAD_DIR + echo "!!! Install g++ !!!" + echo "!!! When asked for an installation path, specify $MINGW_DIR !!!" + $LAST_FILE + (echo "y"; echo "y"; echo "$_MINGW_WFSDIR") | sh pi.sh + fi + quiet ${CC} --version && quiet ${LD} --help || die "mingw not installed correctly" +} + +function inst_unzip() { + setup Unzip + _UNZIP_UDIR=`unix_path $UNZIP_DIR` + if quiet $_UNZIP_UDIR/bin/unzip --help || quiet unzip --help + then + echo "unzip already installed. skipping." + else + smart_wget $UNZIP_URL $DOWNLOAD_DIR + echo "!!! When asked for an installation path, specify $UNZIP_DIR !!!" + $LAST_FILE + fi + add_to_env $_UNZIP_UDIR/bin PATH + quiet unzip --help || die "unzip unavailable" +} + +function inst_regex() { + setup RegEx + _REGEX_UDIR=`unix_path $REGEX_DIR` + 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 -lregex -o $TMP_UDIR/ofile + then + echo "regex already installed. skipping." + else + mkdir -p $REGEX_DIR + wget_unpacked $REGEX_BIN_URL $DOWNLOAD_DIR $REGEX_DIR + wget_unpacked $REGEX_LIB_URL $DOWNLOAD_DIR $REGEX_DIR + fi + quiet ${LD} $REGEX_LDFLAGS -lregex -o $TMP_UDIR/ofile || die "regex not installed correctly" +} + +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_DIR + wget_unpacked $READLINE_BIN_URL $DOWNLOAD_DIR $READLINE_DIR + wget_unpacked $READLINE_LIB_URL $DOWNLOAD_DIR $READLINE_DIR + fi + quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile || die "readline not installed correctly" +} + +function inst_indent() { + setup Indent + _INDENT_UDIR=`unix_path $INDENT_DIR` + add_to_env $_INDENT_UDIR/bin PATH + if quiet which indent + then + echo "indent already installed. skipping." + else + mkdir -p $INDENT_DIR + wget_unpacked $INDENT_BIN_URL $DOWNLOAD_DIR $INDENT_DIR + fi + quiet which indent || die "indent unavailable" +} + +function inst_active_perl() { + setup ActivePerl \(intltool\) + _ACTIVE_PERL_WFSDIR=`win_fs_path $ACTIVE_PERL_DIR` + add_to_env $_ACTIVE_PERL_WFSDIR/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 + # this is the first of several bad hacks + # it would be much more natural to have a sort of -p flag like for `patch' + # please deuglify me + qpushd $ACTIVE_PERL_DIR + cp -r ActivePerl/Perl/* . + rm -rf ActivePerl + qpopd + fi + quiet $INTLTOOL_PERL --help || die "ActivePerl not installed correctly" +} + +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 + smart_wget $SLIB_URL $DOWNLOAD_DIR + tar -xzpf $DOWNLOAD_UDIR/guile-*.tar.gz -C $TMP_UDIR + 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-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} -lregex" + 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} -lregex -no-undefined" + make install + qpopd + qpushd $GUILE_DIR/bin + mv libguilereadline-v-12-12.dll libguilereadline-v-12.dll + mv libguile-srfi-srfi-4-v-1-1.dll libguile-srfi-srfi-4-v-1.dll + mv libguile-srfi-srfi-13-14-v-1-1.dll libguile-srfi-srfi-13-14-v-1.dll + qpopd + _GUILE_MAJOR=`echo $_GUILE_UDIR/share/guile/1.* | sed 's,.*/,,'` + _SLIB_DIR=$GUILE_DIR\\share\\guile\\$_GUILE_MAJOR + mkdir -p $_SLIB_DIR + unzip $DOWNLOAD_DIR/slib*.zip -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 + fi + if test x$cross_compile != xyes ; then + add_to_env "-I $_GUILE_UDIR/share/aclocal" ACLOCAL_FLAGS + fi + guile -c '(use-modules (srfi srfi-39))' && + guile -c "(use-modules (ice-9 slib)) (require 'printf)" || die "guile not installed correctly" +} + +function inst_openssl() { + setup OpenSSL + if [ -f $WINDIR\\system32\\libssl32.dll ] + then + echo "openssl already installed. skipping." + else + smart_wget $OPENSSL_URL $DOWNLOAD_DIR + echo "!!! When asked for an installation path, specify $OPENSSL_DIR !!!" + $LAST_FILE + fi + [ -f $WINDIR\\system32\\libssl32.dll ] || die "openssl not installed correctly" +} + +function inst_pexports() { + setup pexports + _PEXPORTS_UDIR=`unix_path $PEXPORTS_DIR` + add_to_env $_PEXPORTS_UDIR/bin PATH + if quiet which pexports + then + echo "pexports already installed. skipping." + else + wget_unpacked $PEXPORTS_URL $DOWNLOAD_DIR $PEXPORTS_DIR + qpushd $PEXPORTS_DIR + mv pexports-* mydir + mv mydir/* . + rmdir mydir + if test x$cross_compile = xyes ; then + cd src + make + cp pexports.exe ../bin/pexports + fi + qpopd + fi + quiet which pexports || die "pexports unavailable" +} + +function inst_libxml2() { + setup LibXML2 + _LIBXML2_UDIR=`unix_path $LIBXML2_DIR` + if quiet ${LD} -L$_LIBXML2_UDIR/lib -lxml2 -o $TMP_UDIR/ofile + then + echo "libxml2 already installed. skipping." + else + wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $LIBXML2_DIR + qpushd $LIBXML2_DIR + mv libxml2-* mydir + cp -r mydir/* . + rm -rf mydir + pexports bin/libxml2.dll > libxml2.def + ${DLLTOOL} --input-def libxml2.def --output-lib lib/libxml2.a + rm libxml2.def + _LIBXML2_VERSION=`echo $LAST_FILE | sed 's#.*libxml2-\(.*\).win32.zip#\1#'` + mkdir -p lib/pkgconfig + cat > lib/pkgconfig/libxml-2.0.pc < lib/pkgconfig/freetype2.pc < core-runtime.c + qpopd + cp configure configure.bak + cat configure.bak | sed 's,"glib","glib-2.0",g' > configure + ./configure ${HOST_XCOMPILE} \ + CPPFLAGS="${GUILE_CPPFLAGS}" \ + LDFLAGS="${GUILE_LDFLAGS}" \ + --prefix=$_GWRAP_WFSDIR \ + --with-modules-dir=`echo $GWRAP_DIR | sed 's#\\\\#\\\\\\\\#g'`\\\\share\\\\guile\\\\site + qpushd guile/g-wrap/gw + cp Makefile Makefile.bak + cat Makefile.bak | sed '/^libgw_guile_standard_la_LIBADD/s,$, ../../../libffi/libffi.la ../../../g-wrap/libgwrap-core-runtime.la,;/libgw_guile_gw_glib_la_LIBADD/s,$, ../../../g-wrap/libgwrap-core-runtime.la,' > Makefile + make standard.c gw-glib.c + cp standard.scm standard.scm.bak + cat standard.scm.bak | sed 's,"\(libgw-guile-standard\)","../lib/\1-0",' > standard.scm + cp gw-glib.scm gw-glib.scm.bak + cat gw-glib.scm.bak | sed 's,"\(libgw-guile-gw-glib\)","../lib/\1-0",' > gw-glib.scm + qpopd + qpushd guile/test + cp Makefile Makefile.bak + cat Makefile.bak | sed '/^std_libs/s,\\$, ../../libffi/libffi.la \\,' > Makefile + qpopd + make LDFLAGS="-no-undefined" + qpushd guile/g-wrap + # Fix the filenames of the to be loaded DLLs + cp guile.scm guile.scm.bak + sed "s/slot-ref wrapset 'shlib-path) \"\\\\\"))/slot-ref wrapset 'shlib-path) \"-0\\\\\"))/" guile.scm.bak > guile.scm + qpopd + make install + qpopd + fi + add_to_env $_GWRAP_UDIR/lib/pkgconfig PKG_CONFIG_PATH + guile -c '(use-modules (srfi srfi-39))' && + quiet g-wrap-config --version || die "g-wrap not installed correctly" +} + +function inst_autotools() { + setup Autotools + _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR` + add_to_env $_AUTOTOOLS_UDIR/bin PATH + 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 + qpushd $TMP_UDIR/autoconf-* + echo "building autoconf..." + ./configure --prefix=$_AUTOTOOLS_UDIR + make + make install + qpopd + qpushd $TMP_UDIR/automake-* + echo "building automake..." + ./configure --prefix=$_AUTOTOOLS_UDIR + make + make install + qpopd + fi + if quiet ${LIBTOOLIZE} --help + then + echo "libtool/libtoolize already installed. skipping." + else + wget_unpacked $LIBTOOL_URL $DOWNLOAD_DIR $TMP_DIR + qpushd $TMP_UDIR/libtool-* + echo "building libtool..." + ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR + make + make install + qpopd + fi + add_to_env -I$_AUTOTOOLS_UDIR/include AUTOTOOLS_CPPFLAGS + add_to_env -L$_AUTOTOOLS_UDIR/lib AUTOTOOLS_LDFLAGS + add_to_env "-I $_AUTOTOOLS_UDIR/share/aclocal" ACLOCAL_FLAGS + quiet autoconf --help && + quiet automake --help && + quiet ${LIBTOOLIZE} --help || die "autotools not installed correctly" +} + +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 + qpushd $TMP_UDIR/libgsf-* + ./configure ${HOST_XCOMPILE} --prefix=$_LIBGSF_UDIR \ + CPPFLAGS="${GNOME_CPPFLAGS}" \ + LDFLAGS="${GNOME_LDFLAGS}" + make + make install + qpopd + fi + pkg-config --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly" +} + +function inst_goffice() { + setup GOffice + _GOFFICE_UDIR=`unix_path $GOFFICE_DIR` + add_to_env $_GOFFICE_UDIR/lib/pkgconfig PKG_CONFIG_PATH + if quiet pkg-config --exists libgoffice-0.3 + then + echo "goffice already installed. skipping." + else + wget_unpacked $GOFFICE_URL $DOWNLOAD_DIR $TMP_DIR + mydir=`pwd` + qpushd $TMP_UDIR/goffice-* + [ -n "$GOFFICE_PATCH" -a -f "$GOFFICE_PATCH" ] && \ + patch -p1 < $GOFFICE_PATCH + ${LIBTOOLIZE} --force + aclocal ${ACLOCAL_FLAGS} + automake + autoconf + ./configure ${HOST_XCOMPILE} --prefix=$_GOFFICE_UDIR \ + CPPFLAGS="${GNOME_CPPFLAGS}" \ + LDFLAGS="${GNOME_LDFLAGS}" + [ -f dumpdef.pl ] || cp -p ../libgsf-*/dumpdef.pl . + make + make install + qpopd + fi + pkg-config --exists libgoffice-0.3 || die "goffice not installed correctly" +} + +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 + qpushd $TMP_UDIR/glade3-* + ./configure ${HOST_XCOMPILE} --prefix=$_GLADE_WFSDIR + make + make install + qpopd + fi + quiet glade-3 --version || die "glade not installed correctly" +} + +function inst_svn() { + setup Subversion + _SVN_UDIR=`unix_path $SVN_DIR` + export PATH="$_SVN_UDIR/bin:$PATH" + if quiet svn --version + then + echo "subversion already installed. skipping." + else + smart_wget $SVN_URL $DOWNLOAD_DIR + echo "!!! When asked for an installation path, specify $SVN_DIR !!!" + $LAST_FILE + fi +} + +function svn_up() { + mkdir -p $REPOS_DIR + qpushd $REPOS_DIR + if [ -x .svn ]; then + setup svn up + svn up + else + setup svn co + svn co $REPOS_URL . + fi + qpopd +} + +function inst_gnucash() { + setup GnuCash + _GNUCASH_WFSDIR=`win_fs_path $GNUCASH_DIR` + _GNUCASH_UDIR=`unix_path $GNUCASH_DIR` + qpushd $REPOS_DIR + if grep "GUILE_LOAD_PATH.*:" configure.in; then + cp configure.in configure.in.bak + cat configure.in.bak | sed '/GUILE_LOAD_PATH/s,:,;,g' > configure.in + fi + ./autogen.sh + ./configure ${HOST_XCOMPILE} \ + --prefix=$_GNUCASH_WFSDIR \ + --enable-debug \ + --enable-schemas-install=no \ + CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} -D_WIN32" \ + LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS}" \ + PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + + # Windows DLLs don't need relinking + cp ltmain.sh ltmain.sh.bak ; grep -v "need_relink=yes" ltmain.sh.bak > ltmain.sh + cp libtool libtool.bak ; grep -v "need_relink=yes" libtool.bak > libtool + # Exclude (for now) the test subdirectories from the build + # because executable linking is so painfully slow on mingw + perl -pi.bak -e's#^(SUBDIRS.* )test( .*)?$#\1\2#' `find src -name Makefile` + + make LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} -no-undefined" + + # Try to fix the paths in the "gnucash" script + qpushd src/bin + rm gnucash + make PATH_SEPARATOR=";" \ + bindir="${_GNUCASH_UDIR}/bin:${_GNUCASH_UDIR}/lib/bin:${_GOFFICE_UDIR}/bin:${_LIBGSF_UDIR}/bin:${_GWRAP_UDIR}/bin:${_GNOME_UDIR}/bin:${_LIBXML2_UDIR}/bin:${_GUILE_UDIR}/bin:${_REGEX_UDIR}/bin" \ + gnucash + qpopd + + make install + qpopd + + qpushd ${_GNUCASH_WFSDIR}/lib/gnucash + # Remove the dependency_libs line from the installed .la files + # because otherwise loading the modules literally takes hours. + for A in *.la; do grep -v dependency_libs $A > tmp ; mv tmp $A; done + qpopd + + qpushd ${_GNUCASH_WFSDIR}/etc/gconf/schemas + for file in *.schemas; do + gconftool-2 \ + --config-source=xml:merged:${_GNUCASH_WFSDIR}/etc/gconf/gconf.xml.defaults \ + --install-schema-file $file + done + gconftool-2 --shutdown + qpopd + + # Create a startup script that works without the msys shell + qpushd ${_GNUCASH_WFSDIR}/bin + echo "set PATH=${GNUCASH_DIR}\\bin;${GNUCASH_DIR}\\lib\\bin;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${GWRAP_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin" > gnucash.bat + echo "set GUILE_WARN_DEPRECATED=no" >> gnucash.bat + echo "set GNC_MODULE_PATH=${GNUCASH_DIR}\\lib\\gnucash" >> gnucash.bat + echo "set GUILE_LOAD_PATH=${GWRAP_DIR}\\share\\guile\\site;${GNUCASH_DIR}\\share\\gnucash\\guile-modules;${GNUCASH_DIR}\\share\\gnucash\\scm;%GUILE_LOAD_PATH%" >> gnucash.bat + echo "start gnucash-bin" >> gnucash.bat + qpopd +} + +function finish() { + _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 + _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 +} + +prepare +for step in "${steps[@]}" ; do + eval $step +done +finish +qpopd + + +### Local Variables: *** +### sh-basic-offset: 4 *** +### tab-width: 8 *** +### End: ***