#! /bin/bash

source "buildutils.sh"

# PACKAGE ####################################################################

PACKAGE=LXML
DEPENDENCIES="Python Zlib"

# SETUP ######################################################################

set -e
cd `dirname "$0"`
PREFIX=`pwd`

if [ -e ".${PACKAGE}-BUILT" ]; then
    exit 0
fi

# DEPENDENCIES ###############################################################

build_deps $DEPENDENCIES

# FETCH SOURCE ###############################################################

mkdir -p build
cd build

PACKAGE_URL_REF="${PACKAGE}_URL"
PACKAGE_URL="${!PACKAGE_URL_REF}"
PACKAGE_DIR_REF="${PACKAGE}_DIR"
PACKAGE_DIR="${!PACKAGE_DIR_REF}"
PACKAGE_EXTRACT_REF="${PACKAGE}_EXTRACT"
PACKAGE_EXTRACT="${!PACKAGE_EXTRACT_REF}"
PACKAGE_FILENAME=`basename ${PACKAGE_URL}`

if [ ! -e "${PACKAGE_FILENAME}" ]; then
    echo "Fetching ${PACKAGE_URL} ..."
    curl -L -O "${PACKAGE_URL}"
fi

echo "Extracting ${PACKAGE_FILENAME} ..."
${PACKAGE_EXTRACT} "${PACKAGE_FILENAME}"

echo "Building ${PACKAGE} ..."
cd ${PACKAGE_DIR}

# BUILD STEPS ###############################################################

# libxml2 2.9.0 is broken on mac
BUILD_FLAGS=" --static-deps --libxml2-version=2.8.0"

if [ x"${ARCH}" = x"Darwin" ]; then
    export MACOSX_DEPLOYMENT_TARGET=$CMAKE_OSX_DEPLOYMENT_TARGET
    export MACOSX_SYSROOT=$CMAKE_OSX_SYSROOT
    MACOSX_ARCHFLAGS=""
    for archflag in $CMAKE_OSX_ARCHITECTURES; do
        MACOSX_ARCHFLAGS+="-arch $archflag "
    done;
    export MACOSX_ARCHFLAGS
    export CFLAGS="-isysroot $MACOSX_SYSROOT $MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $CFLAGS"
    export CXXFLAGS="-isysroot $MACOSX_SYSROOT $MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $CXXFLAGS"
    export LDFLAGS="$MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $LDFLAGS"

    # Leave flags up to us
#     patch -p1 <<'EOF'
# $ diff -Nauw lxml-2.2.2/buildlibxml.py.original lxml-2.2.2/buildlibxml.py
# --- lxml-2.2.2/buildlibxml.py	2009-08-17 16:45:40.000000000 +0100
# +++ lxml-2.2.2/buildlibxml.py.original	2009-08-17 16:43:45.000000000 +0100
# @@ -287,7 +287,7 @@
#          import platform
#          # check target architectures on MacOS-X (ppc, i386, x86_64)
#          major_version, minor_version = tuple(map(int, platform.mac_ver()[0].split('.')[:2]))
# -        if major_version > 7:
# +        if False:
#              # Check to see if ppc is supported (XCode4 drops ppc support)
#              include_ppc = True
#              if os.path.exists('/usr/bin/xcodebuild'):
# EOF
fi

export CXXFLAGS="$CXXFLAGS -O"
export CFLAGS="$CFLAGS -O"

PATH=${PREFIX}/bin:$PATH
LDFLAGS=-L${PREFIX}/lib
unset PYTHONPATH
python setup.py build $BUILD_FLAGS
python setup.py install_lib $BUILD_FLAGS

##############################################################################

cd "${PREFIX}"
touch ".${PACKAGE}-BUILT"

##############################################################################
