From b479a3f0fb9264d326aee2fbc7e1f6f4e8b0c978 Mon Sep 17 00:00:00 2001 From: Christian Stimming Date: Sat, 23 Apr 2011 20:33:06 +0000 Subject: [PATCH] Win32 build: Additional tweaks for easier cross-compiling. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20595 57a11ea4-9604-0410-9ed3-97b8803252fd --- packaging/win32/defaults.sh | 26 +++++++++++++++----------- packaging/win32/install-impl.sh | 31 +++++++++++++++++-------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/packaging/win32/defaults.sh b/packaging/win32/defaults.sh index c78a564229..de3fe8d3e8 100644 --- a/packaging/win32/defaults.sh +++ b/packaging/win32/defaults.sh @@ -84,6 +84,18 @@ set_default W32API_URL "$SF_MIRROR/mingw/w32api-3.15-1-mingw32-dev.tar.lzma" set_default MINGW_MAKE_URL "$SF_MIRROR/mingw/mingw32-make-3.81-20080326-3.tar.gz" set_default MINGW_DIR $GLOBAL_DIR\\mingw +# The URLs for precompiled gcc/mingw binaries +set_default BINUTILS_URL "$SF_MIRROR/mingw/binutils-2.21-2-mingw32-bin.tar.lzma" +set_default GCC_CORE_URL "$SF_MIRROR/mingw/gcc-core-4.5.2-1-mingw32-bin.tar.lzma" +set_default GCC_CORE_DLL_URL "$SF_MIRROR/mingw/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma" +set_default GCC_GPP_URL "$SF_MIRROR/mingw/gcc-c++-4.5.2-1-mingw32-bin.tar.lzma" +set_default GCC_GPP_DLL_URL "$SF_MIRROR/mingw/libstdc++-4.5.2-1-mingw32-dll-6.tar.lzma" +set_default GCC_GPP_PATCH "`pwd`/gcc-c++-4.4.0.patch" +set_default GCC_MPC_URL "$SF_MIRROR/mingw/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma" +set_default GCC_MPFR_URL "$SF_MIRROR/mingw/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma" +set_default GCC_GMP_URL "$SF_MIRROR/mingw/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma" +set_default GCC_PTHREADS_URL "$SF_MIRROR/mingw/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma" + if [ "$CROSS_COMPILE" != yes ]; then # Use native toolchain set_default LD ld @@ -91,17 +103,9 @@ if [ "$CROSS_COMPILE" != yes ]; then set_default DLLTOOL dlltool set_default RANLIB ranlib - # For native build on Windows we can use precompiled binaries - set_default BINUTILS_URL "$SF_MIRROR/mingw/binutils-2.21-2-mingw32-bin.tar.lzma" - set_default GCC_CORE_URL "$SF_MIRROR/mingw/gcc-core-4.5.2-1-mingw32-bin.tar.lzma" - set_default GCC_CORE_DLL_URL "$SF_MIRROR/mingw/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma" - set_default GCC_GPP_URL "$SF_MIRROR/mingw/gcc-c++-4.5.2-1-mingw32-bin.tar.lzma" - set_default GCC_GPP_DLL_URL "$SF_MIRROR/mingw/libstdc++-4.5.2-1-mingw32-dll-6.tar.lzma" - set_default GCC_GPP_PATCH "`pwd`/gcc-c++-4.4.0.patch" - set_default GCC_MPC_URL "$SF_MIRROR/mingw/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma" - set_default GCC_MPFR_URL "$SF_MIRROR/mingw/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma" - set_default GCC_GMP_URL "$SF_MIRROR/mingw/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma" - set_default GCC_PTHREADS_URL "$SF_MIRROR/mingw/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma" + # For native build on Windows we can use the precompiled binaries + # defined above + else # What flavor of GCC cross-compiler are we building? set_default TARGET "mingw32" diff --git a/packaging/win32/install-impl.sh b/packaging/win32/install-impl.sh index a6889b64e0..9c89b7943f 100755 --- a/packaging/win32/install-impl.sh +++ b/packaging/win32/install-impl.sh @@ -154,19 +154,22 @@ function inst_mingw() { echo "mingw already installed in $_MINGW_UDIR. skipping." else mkdir -p $_MINGW_UDIR + + # Download the precompiled packages in any case to get their DLLs + wget_unpacked $BINUTILS_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_CORE_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_CORE_DLL_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_GPP_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_GPP_DLL_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_GMP_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_MPC_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_MPFR_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $GCC_PTHREADS_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $MINGW_RT_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $MINGW_RT_DLL_URL $DOWNLOAD_DIR $MINGW_DIR + wget_unpacked $W32API_URL $DOWNLOAD_DIR $MINGW_DIR + 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_CORE_DLL_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_GPP_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_GPP_DLL_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_GMP_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_MPC_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_MPFR_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $GCC_PTHREADS_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $MINGW_RT_URL $DOWNLOAD_DIR $MINGW_DIR - wget_unpacked $MINGW_RT_DLL_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 @@ -1527,7 +1530,7 @@ function make_install() { make install qpushd $_INSTALL_UDIR/bin - [ "$CROSS_COMPILE" = "yes" ] && die "Cross-compile mingw is missing some parts for installation. Install step unavailable in cross-compile." + if [ ! -f $_MINGW_UDIR/bin/libstdc++-6.dll ] ; then die "File $_MINGW_UDIR/bin/libstdc++-6.dll is missing. Install step unavailable in cross-compile." ; fi # Copy libstdc++-6.dll and its dependency to gnucash bin directory # to prevent DLL loading errors @@ -1649,7 +1652,7 @@ function inst_docs() { fi mkdir -p $_DOCS_UDIR/repos - qpushd $DOCS_DIR/repos + qpushd $_DOCS_UDIR/repos if [ "$UPDATE_DOCS" = "yes" ]; then if [ -x .svn ]; then setup "SVN update of docs"