From 0f2ab13935e34d29cf1f485f522ae0a408dadfeb Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Sun, 11 Mar 2012 17:23:15 +0100 Subject: [PATCH] add lxml as a possible recipe + ensure flags are reset after using other build-* --- tools/build-freetype.sh | 6 +-- tools/build-kivy.sh | 4 ++ tools/build-lxml.sh | 102 ++++++++++++++++++++++++++++++++++++++++ tools/environment.sh | 3 ++ 4 files changed, 112 insertions(+), 3 deletions(-) create mode 100755 tools/build-lxml.sh diff --git a/tools/build-freetype.sh b/tools/build-freetype.sh index 28f2adb..f8886de 100755 --- a/tools/build-freetype.sh +++ b/tools/build-freetype.sh @@ -14,14 +14,14 @@ fi # lib not found, compile it pushd $TMPROOT/freetype-$FT_VERSION -./configure --prefix=/usr/local/iphone \ +try ./configure --prefix=/usr/local/iphone \ --host=arm-apple-darwin \ --enable-static=yes \ --enable-shared=no \ CC="$ARM_CC" AR="$ARM_AR" \ LDFLAGS="$ARM_LDFLAGS" CFLAGS="$ARM_CFLAGS" -make clean -make +try make clean +try make # copy to buildroot cp objs/.libs/libfreetype.a $BUILDROOT/lib/libfreetype.a diff --git a/tools/build-kivy.sh b/tools/build-kivy.sh index 1c7121b..9f6220e 100755 --- a/tools/build-kivy.sh +++ b/tools/build-kivy.sh @@ -19,9 +19,13 @@ if [ "X$1" = "X-f" ] ; then fi pushd $TMPROOT/kivy +OLD_CFLAGS="$CFLAGS" +OLD_LDSHARED="$LDSHARED" export LDSHARED="$KIVYIOSROOT/tools/liblink" export CFLAGS="$ARM_CFLAGS" try make ios +export LDSHARED="$OLD_LDSHARED" +export CFLAGS="$OLD_CFLAGS" popd # FIXME this part is build/cpu dependent :/ diff --git a/tools/build-lxml.sh b/tools/build-lxml.sh new file mode 100755 index 0000000..2fe1306 --- /dev/null +++ b/tools/build-lxml.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +. $(dirname $0)/environment.sh + +if [ ! -f $CACHEROOT/libxml2-$XML2_VERSION.tar.gz ] ; then + try curl -L ftp://xmlsoft.org/libxml2/libxml2-$XML2_VERSION.tar.gz > $CACHEROOT/libxml2-$XML2_VERSION.tar.gz +fi +if [ ! -d $TMPROOT/libxml2-$XML2_VERSION ]; then + try tar xzf $CACHEROOT/libxml2-$XML2_VERSION.tar.gz + try rm -rf $TMPROOT/libxml2-$XML2_VERSION + try mv libxml2-$XML2_VERSION $TMPROOT + +fi + +if [ ! -f $CACHEROOT/libxslt-$XSLT_VERSION.tar.gz ] ; then + try curl -L ftp://xmlsoft.org/libxml2/libxslt-$XSLT_VERSION.tar.gz > $CACHEROOT/libxslt-$XSLT_VERSION.tar.gz +fi +if [ ! -d $TMPROOT/libxslt-$XSLT_VERSION ]; then + try tar xzf $CACHEROOT/libxslt-$XSLT_VERSION.tar.gz + try rm -rf $TMPROOT/libxslt-$XML2_VERSION + try mv libxslt-$XSLT_VERSION $TMPROOT +fi + +if [ ! -f $CACHEROOT/lxml-$LXML_VERSION.tar.gz ]; then + try curl -L http://pypi.python.org/packages/source/l/lxml/lxml-$LXML_VERSION.tar.gz > $CACHEROOT/lxml-$LXML_VERSION.tar.gz +fi +if [ ! -d $TMPROOT/lxml-$LXML_VERSION ]; then + try tar xzf $CACHEROOT/lxml-$LXML_VERSION.tar.gz + try rm -rf $TMPROOT/lxml-$LXML_VERSION + try mv lxml-$LXML_VERSION $TMPROOT +fi + +# build libxml2 +pushd $TMPROOT/libxml2-$XML2_VERSION +if [ ! -f .libs/libxml2.a ]; then + try ./configure --prefix=/usr/local/iphone \ + --host=arm-apple-darwin \ + --enable-static=yes \ + --enable-shared=no \ + --without-modules \ + --without-legacy \ + --without-history \ + --without-debug \ + --without-docbook \ + --without-python \ + --without-iconv \ + CC="$ARM_CC" AR="$ARM_AR" \ + LDFLAGS="$ARM_LDFLAGS" CFLAGS="$ARM_CFLAGS" + try sed -i '' 's/ runtest\$(EXEEXT) \\/ \\/' Makefile + try sed -i '' 's/ testrecurse\$(EXEEXT)$//' Makefile + try make clean + try make + try cp .libs/libxml2.a $BUILDROOT/lib/libxml2.a + try cp -a include $BUILDROOT/include/libxml2 +fi +popd + +# build libxslt +pushd $TMPROOT/libxslt-$XSLT_VERSION +if [ ! -f libxslt/.libs/libxslt.a ]; then + try ./configure --build=i686-pc-linux-gnu --host=arm-linux-eabi \ + --enable-static=yes \ + --enable-shared=no \ + --without-plugins \ + --without-debug \ + --without-python \ + --without-crypto \ + --with-libxml-src=$TMPROOT/libxml2-$XML2_VERSION \ + CC="$ARM_CC" AR="$ARM_AR" \ + LDFLAGS="$ARM_LDFLAGS" CFLAGS="$ARM_CFLAGS" + + try make clean + try make + + try cp libxslt/.libs/libxslt.a $BUILDROOT/lib/libxslt.a + try cp libexslt/.libs/libexslt.a $BUILDROOT/lib/libexslt.a +fi +popd + +# build lxml +OLD_CC="$CC" +OLD_LDFLAGS="$LDFLAGS" +OLD_LDSHARED="$LDSHARED" +export CC="$ARM_CC -I$BUILDROOT/include -I$TMPROOT/libxslt-$XSLT_VERSION" +export LDFLAGS="$ARM_LDFLAGS -L$TMPROOT/libxslt-$XSLT_VERSION/libxslt/.libs" +export LDFLAGS="$LDFLAGS -L$TMPROOT/libxslt-$XSLT_VERSION/libexslt/.libs" +export LDFLAGS="$LDFLAGS -L$TMPROOT/libxml2-$XML2_VERSION/.libs" +export LDSHARED="$KIVYIOSROOT/tools/liblink" + +pushd $TMPROOT/lxml-$LXML_VERSION +HOSTPYTHON=$TMPROOT/Python-$PYTHON_VERSION/hostpython +try $HOSTPYTHON setup.py build_ext +try $HOSTPYTHON setup.py install -O2 +popd + +export CC="$OLD_CC" +export LDFLAGS="$OLD_LDFLAGS" +export LDSHARED="$OLD_LDSHARED" + +bd=$TMPROOT/lxml-$LXML_VERSION/build/lib.macosx-*/lxml +try $KIVYIOSROOT/tools/biglink $BUILDROOT/lib/liblxml.a $bd +deduplicate $BUILDROOT/lib/liblxml.a diff --git a/tools/environment.sh b/tools/environment.sh index 0d21796..eaf3abc 100755 --- a/tools/environment.sh +++ b/tools/environment.sh @@ -15,6 +15,9 @@ export SDKROOT=$DEVROOT/SDKs/iPhoneOS$SDKVER.sdk export PYTHON_VERSION=2.7.1 export SDLTTF_VERSION=2.0.10 export FT_VERSION=2.4.8 +export XML2_VERSION=2.7.8 +export XSLT_VERSION=1.1.26 +export LXML_VERSION=2.3.1 # where the build will be located export KIVYIOSROOT="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"