r20406 - gnucash/trunk/packaging/win32 - Win32: Tweak cross compiling script for webkit so that is seems to almost compile.

Christian Stimming cstim at code.gnucash.org
Sat Mar 12 19:02:27 EST 2011


Author: cstim
Date: 2011-03-12 19:02:27 -0500 (Sat, 12 Mar 2011)
New Revision: 20406
Trac: http://svn.gnucash.org/trac/changeset/20406

Added:
   gnucash/trunk/packaging/win32/webkit-1.2.7-time.patch
   gnucash/trunk/packaging/win32/webkit-1.2.7-vasprintf.patch
Modified:
   gnucash/trunk/packaging/win32/crossbuild_webkit.sh
   gnucash/trunk/packaging/win32/defaults.sh
Log:
Win32: Tweak cross compiling script for webkit so that is seems to almost compile.

Modified: gnucash/trunk/packaging/win32/crossbuild_webkit.sh
===================================================================
--- gnucash/trunk/packaging/win32/crossbuild_webkit.sh	2011-03-12 21:48:16 UTC (rev 20405)
+++ gnucash/trunk/packaging/win32/crossbuild_webkit.sh	2011-03-13 00:02:27 UTC (rev 20406)
@@ -82,11 +82,10 @@
     _MINGW_UDIR=`unix_path $MINGW_DIR`
     mkdir -p `unix_path $MINGW_DIR\\\\mingw32`
     if [ -d $_MINGW_UDIR ] && 
-        quiet $_MINGW_UDIR/bin/mingw32-gcc -v &&
-        quiet mingw32-gcc -v 
+        quiet $CC -v 
     then
         echo "Cross mingw installed."
-       if [ ` mingw32-gcc -dumpversion | cut -d. -f1` -le 3 ] ;then
+       if [ ` $CC -dumpversion | cut -d. -f1` -le 3 ] ;then
            die "GCC 4.4 or higher needed"
        fi
     else
@@ -105,7 +104,7 @@
 
 function inst_crossbinutils() {
     _MINGW_UDIR=`unix_path $MINGW_DIR`
-    if quiet $_MINGW_UDIR/bin/mingw32-ld -v
+    if quiet $LD -v
     then 
         echo "Cross binutils already installed."
     else
@@ -131,7 +130,7 @@
 
 function inst_crossgcc(){
     _MINGW_UDIR=`unix_path $MINGW_DIR`
-    if quiet $_MINGW_UDIR/bin/mingw32-gcc
+    if quiet $CC
     then 
         echo "Cross gcc alreadyinstalled."
     else
@@ -160,7 +159,7 @@
         qpopd
         qpushd $TMP_UDIR/build-gcc
             $TMP_UDIR/gcc-*/configure  \
-                --prefix=$_MINGW_UDIR --target=mingw32 \
+                --prefix=$_MINGW_UDIR --target=$TARGET \
                 --with-headers=$_MINGW_UDIR/mingw32/include \
                 --enable-languages=c,c++ \
                 --with-gcc --with-gnu-ld --with-gnu-as \
@@ -171,7 +170,7 @@
             make
             make install
         qpopd
-        if quiet $_MINGW_UDIR/bin/mingw32-gcc -v
+        if quiet $CC -v
         then 
             rm -rf $TMP_UDIR/build-gcc $TMP_UDIR/gcc-* $TMP_UDIR/mydir
             echo "Cross gcc installed successfully."
@@ -188,7 +187,7 @@
     add_to_env -L$_GNOME_UDIR/lib GNOME_LDFLAGS
     add_to_env $_GNOME_UDIR/lib/pkgconfig PKG_CONFIG_PATH
     if [ "$CROSS_COMPILE" != "yes" ]; then
-        add_to_env $_GNOME_UDIR//pkg-config-msys.shPKG_CONFIG
+        add_to_env $_GNOME_UDIR//pkg-config-msys.sh PKG_CONFIG
     else
         add_to_env pkg-config PKG_CONFIG
     fi
@@ -214,12 +213,24 @@
          assert_one_dir $TMP_UDIR/libxslt-*
          qpushd $TMP_UDIR/libxslt-*
              ./configure ${HOST_XCOMPILE} \
+                 --with-libxml-prefix=$_GNOME_UDIR \
+                 --with-libxml-include-prefix=$_GNOME_UDIR/include/libxml2 \
+                 --with-libxml-libs-prefix=$_GNOME_UDIR/lib \
+                 PKG_CONFIG_PATH="$_GNOME_UDIR/lib/pkgconfig" \
                  --prefix=${_GNOME_UDIR} \
+                 --enable-static=no \
+                 --with-plugins=no \
+                 --with-python=no \
                  CPPFLAGS="$GNOME_CPPFLAGS $GNUTLS_CPPFLAGS" \
                  LDFLAGS="$GNOME_LDFLAGS $GNUTLS_LDFLAGS"
+            make .
+            cd libxslt
+            make EXTRA_LIBS="-L$_GNOME_UDIR/bin -lxml2-2"
+            cd ..
             make
             make install
          qpopd
+         rm -r $TMP_UDIR/libxslt-*
     fi
 }
 
@@ -318,6 +329,7 @@
             make
             make install 
          qpopd
+         rm -r $TMP_UDIR/libsoup-*
     fi
 }
 
@@ -325,6 +337,7 @@
     setup WebKitGTK+
     _MINGW_UDIR=`unix_path $MINGW_DIR`
     _GNOME_UDIR=`unix_path $GNOME_DIR`
+    _WEBKIT_DIR=`unix_path $WEBKIT_DIR`
     add_to_env -I$_GNOME_UDIR/include GNOME_CPPFLAGS
     add_to_env -L$_GNOME_UDIR/lib GNOME_LDFLAGS
     add_to_env $_GNOME_UDIR/lib/pkgconfig PKG_CONFIG_PATH
@@ -355,18 +368,39 @@
         wget_unpacked $WEBKIT_SRC_URL $DOWNLOAD_DIR $TMP_DIR
         assert_one_dir $TMP_UDIR/webkit-*
         qpushd $TMP_UDIR/webkit-*
-            patch -p1 < $WEBKIT_PATCH
-            patch -p1 < $WEBKIT_PATCH2
-            perl -pi.bak -e"s!/usr/bin/gcc!$_MINGW_UDIR/bin/mingw32-gcc!" \
+            if [ -n "$WEBKIT_PATCH" -a -f "$WEBKIT_PATCH" ] ; then
+                patch -p1 < $WEBKIT_PATCH
+            fi
+            if [ -n "$WEBKIT_PATCH2" -a -f "$WEBKIT_PATCH2" ] ; then
+                patch -p1 < $WEBKIT_PATCH2
+            fi
+            perl -pi.bak -e"s!/usr/bin/gcc!$CC!" \
                 WebCore/dom/make_names.pl \
                 WebCore/css/make-css-file-arrays.pl \
                 WebCore/bindings/scripts/IDLParser.pm
             ./configure ${HOST_XCOMPILE} \
-               --prefix=${_GNOME_UDIR} \
-               --disable-silent-rules \
-               --disable-video \
-               --with-target=win32 \
                CPPFLAGS="$GNOME_CPPFLAGS" \
+                --prefix=${_WEBKIT_DIR} \
+                --enable-silent-rules \
+                --disable-datalist \
+                --disable-dom-storage \
+                --disable-eventsource \
+                --disable-filters \
+                --disable-gtk-doc-html \
+                --disable-offline-web-applications \
+                --disable-ruby \
+                --disable-shared-workers \
+                --disable-silent-rules \
+                --disable-svg-animation \
+                --disable-svg-as-image \
+                --disable-svg-fonts \
+                --disable-svg-foreign-object \
+                --disable-svg-use \
+                --disable-video \
+                --disable-workers \
+                --disable-xpath \
+                --with-target=win32 \
+                --with-unicode-backend=icu \
                CFLAGS="-g -O2 -std=gnu99" \
                CXXFLAGS="-g -O2 -std=gnu++98" \
                LDFLAGS="$GNOME_LDFLAGS"
@@ -445,12 +479,20 @@
 function inst_icu4c_mingw32() {
     setup icu4c-mingw32
     _ICU4C_UDIR=`unix_path $ICU4C_DIR`
+    rm -rf $TMP_UDIR/icu-cross
     mkdir -p $TMP_UDIR/icu-cross
+
+    # Note: If you have TARGET=i586-mingw32mingw, for this library you
+    # need to set a different --host argument here due to some known
+    # bug in the ICU source package
+    #HOST_XCOMPILE="--host=i586-mingw32"
+
     qpushd $TMP_UDIR/icu-cross
         $TMP_UDIR/icu/source/configure ${HOST_XCOMPILE} \
             --prefix=$_ICU4C_UDIR \
             --with-cross-build=$TMP_UDIR/icu-native \
-            --with-data-packaging=library
+            --with-data-packaging=library \
+            CC=$CC CPP="$CC -E" RANLIB=$RANLIB CXX=$TARGET-g++
         make  \
             CFLAGS="-g -O2 -std=gnu99" \
             CXXFLAGS="-g -O2 -std=gnu++98"

Modified: gnucash/trunk/packaging/win32/defaults.sh
===================================================================
--- gnucash/trunk/packaging/win32/defaults.sh	2011-03-12 21:48:16 UTC (rev 20405)
+++ gnucash/trunk/packaging/win32/defaults.sh	2011-03-13 00:02:27 UTC (rev 20406)
@@ -201,7 +201,7 @@
 set_default LIBXSLT_ICONV_URL "${XMLSOFT_URL}/iconv-1.9.2.win32.zip"
 set_default LIBXSLT_ZLIB_URL "${XMLSOFT_URL}/zlib-1.2.3.win32.zip"
 set_default LIBXSLT_DIR $GLOBAL_DIR\\libxslt
-#set_default LIBXSLT_SRC_URL "http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz" # unused
+set_default LIBXSLT_SRC_URL "http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz" # needed for webkit build
 
 set_default LIBXML2_URL "$GNOME_WIN32_DEPS_URL/libxml2_2.7.4-1_win32.zip"
 set_default LIBXML2_DEV_URL "$GNOME_WIN32_DEPS_URL/libxml2-dev_2.7.4-1_win32.zip"
@@ -298,11 +298,12 @@
 set_default HH_URL "http://download.microsoft.com/download/0/a/9/0a939ef6-e31c-430f-a3df-dfae7960d564/htmlhelp.exe"
 set_default HH_DIR $GLOBAL_DIR\\hh
 
-set_default WEBKIT_URL "$SF_MIRROR/gnucash/webkit-1.1.90-win32.zip"
-set_default WEBKIT_DIR $GLOBAL_DIR\\webkit-1.1.90
-set_default WEBKIT_SRC_URL "http://www.webkitgtk.org/webkit-1.1.90.tar.gz"
-set_default WEBKIT_PATCH `pwd`/webkit-1.2.0-time.diff
-set_default WEBKIT_PATCH2 `pwd`/webkit-1.2.0-vsaprintf.diff
+set_default WEBKIT_VERSION "1.1.90"
+set_default WEBKIT_URL "$SF_MIRROR/gnucash/webkit-${WEBKIT_VERSION}-win32.zip"
+set_default WEBKIT_DIR $GLOBAL_DIR\\webkit-${WEBKIT_VERSION}
+set_default WEBKIT_SRC_URL "http://www.webkitgtk.org/webkit-1.2.7.tar.gz"
+set_default WEBKIT_PATCH `pwd`/webkit-1.2.7-time.patch
+set_default WEBKIT_PATCH2 `pwd`/webkit-1.2.7-vasprintf.patch
 set_default ENCHANT_URL "$GNOME_WIN32_URL/dependencies/enchant_1.5.0-2_win32.zip"
 set_default ENCHANT_DEV_URL "$GNOME_WIN32_URL/dependencies/enchant-dev_1.5.0-2_win32.zip"
 #set_default LIBSOUP_URL "$GNOME_WIN32_URL/libsoup/2.4/libsoup-2.4.0.zip"

Added: gnucash/trunk/packaging/win32/webkit-1.2.7-time.patch
===================================================================
--- gnucash/trunk/packaging/win32/webkit-1.2.7-time.patch	                        (rev 0)
+++ gnucash/trunk/packaging/win32/webkit-1.2.7-time.patch	2011-03-13 00:02:27 UTC (rev 20406)
@@ -0,0 +1,22 @@
+diff -ur -x '*.lo' -x '*.o' webkit-1.1.90-orig/WebCore/platform/network/ResourceResponseBase.h webkit-1.1.90/WebCore/platform/network/ResourceResponseBase.h
+--- webkit-1.1.90-orig/WebCore/platform/network/ResourceResponseBase.h	2010-02-22 17:36:04.000000000 +0100
++++ webkit-1.1.90/WebCore/platform/network/ResourceResponseBase.h	2011-03-12 22:11:06.720211214 +0100
+@@ -31,6 +31,7 @@
+ #include "KURL.h"
+ 
+ #include <wtf/PassOwnPtr.h>
++#include <ctime>
+ 
+ namespace WebCore {
+ 
+diff -ur webkit-1.2.7-orig/WebCore/page/Page.h webkit-1.2.7/WebCore/page/Page.h
+--- webkit-1.2.7-orig/WebCore/page/Page.h	2010-09-10 15:20:33.000000000 +0200
++++ webkit-1.2.7/WebCore/page/Page.h	2011-03-12 23:25:35.670211006 +0100
+@@ -26,6 +26,7 @@
+ #include <wtf/Forward.h>
+ #include <wtf/HashSet.h>
+ #include <wtf/Noncopyable.h>
++#include <ctime>
+ 
+ #if PLATFORM(MAC)
+ #include "SchedulePair.h"

Added: gnucash/trunk/packaging/win32/webkit-1.2.7-vasprintf.patch
===================================================================
--- gnucash/trunk/packaging/win32/webkit-1.2.7-vasprintf.patch	                        (rev 0)
+++ gnucash/trunk/packaging/win32/webkit-1.2.7-vasprintf.patch	2011-03-13 00:02:27 UTC (rev 20406)
@@ -0,0 +1,22 @@
+diff -ur webkit-1.2.7-orig/WebCore/dom/XMLTokenizerLibxml2.cpp webkit-1.2.7/WebCore/dom/XMLTokenizerLibxml2.cpp
+--- webkit-1.2.7-orig/WebCore/dom/XMLTokenizerLibxml2.cpp	2010-09-10 15:20:33.000000000 +0200
++++ webkit-1.2.7/WebCore/dom/XMLTokenizerLibxml2.cpp	2011-03-12 23:13:39.521370554 +0100
+@@ -23,6 +23,9 @@
+  * Boston, MA 02110-1301, USA.
+  */
+ 
++#define _GNU_SOURCE
++#include <cstdio>
++
+ #include "config.h"
+ #include "XMLTokenizer.h"
+ 
+@@ -908,7 +911,7 @@
+     if (m_parserStopped)
+         return;
+ 
+-#if COMPILER(MSVC) || COMPILER(RVCT)
++#if 1
+     char m[1024];
+     vsnprintf(m, sizeof(m) - 1, message, args);
+ #else



More information about the gnucash-changes mailing list