#!/bin/sh # Terminate when a command is unsuccesful set -e cd "$(dirname "$0")" ## # Function that provides make-like behaviour for executed commands. It prints # the commandline used to execute them before execution. ## execute() { local r echo "$@" "$@" } # Some default configuration settings HOST_TRIPLET=i586-mingw32msvc INSTALLER_VERSION="2.2.0.999" DEBUGFLAG="--disable-debug" CC_FOR_BUILD="gcc" CXX_FOR_BUILD="g++" CFLAGS="-gstabs -g3" CXXFLAGS="-gstabs -g3" CFLAGS_FOR_BUILD=" " CXXFLAGS_FOR_BUILD=" " CPPFLAGS_FOR_BUILD=" " if [ -f __BUILD_CONFIG.USER ]; then . ./__BUILD_CONFIG.USER fi for arg in "$@"; do case "$arg" in *=*) val=`expr "X$arg" : '[^=]*=\(.*\)'` ;; *) val=yes ;; esac case "$arg" in --enable-debug* | --disable-debug) unset DEBUGFLAG ;; --enable-installer | --enable-installer=yes) INSTALLERFLAG="--enable-data --enable-installer --with-installer-extdir=\"$PWD/build/libs\" ${INSTALLER_VERSION:+--with-installer-version=$INSTALLER_VERSION}" ;; -with-* | --with-* | -enable-* | --enable-*) ;; *=*) var=`expr "x$arg" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$var" : ".*[^_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]" >/dev/null && { echo "$0: error: invalid variable name: $var" >&2 exit 1 } eval $var=\$val export $var ;; clean | very-clean | preclean | very-preclean) execute rm -rf build execute make -C libs clean expr "$arg" : 'very-' >/dev/null && execute rm -rf downloads expr "$arg" : '.*pre' || exit 0 ;; *) echo "$0: error: unknown command line option: $arg" >&2 exit 1 ;; esac done __BOTHFLAGS="-pipe -m32 -march=i686 -O2 -g" CFLAGS="$__BOTHFLAGS $CFLAGS" CXXFLAGS="$__BOTHFLAGS $CXXFLAGS" CPPFLAGS="-I$PWD/build/libs/include $CPPFLAGS" LDFLAGS="-L$PWD/build/libs/lib $LDFLAGS" unset __BOTHFLAGS if [ -z "$PKG_CONFIG_PATH" ] ; then PKG_CONFIG_PATH="$PWD/build/libs/lib/pkgconfig" fi export PKG_CONFIG_PATH if [ -f "/proc/cpuinfo" ] ; then MAKE_FLAGS=-j$((`grep '^processor' /proc/cpuinfo | wc -l` + 1)) fi # Make sure we've got a build directory if [ ! -d build/libs ] ; then mkdir -p build/libs fi # Echo commands as we execute them set -x # Make sure that the dependencies have been built make $MAKE_FLAGS -C libs "HOST_TRIPLET=$HOST_TRIPLET" cd build [ -x ../../configure ] || ../../autogen.sh ../../configure "$@" \ "--host=$HOST_TRIPLET" --enable-static --disable-shared ${DEBUGFLAG:+$DEBUGFLAG} \ ${INSTALLERFLAG:+$INSTALLERFLAG} \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS" \ CPPFLAGS="$CPPFLAGS" \ LDFLAGS="$LDFLAGS" \ CC_FOR_BUILD="$CC_FOR_BUILD" \ CXX_FOR_BUILD="$CXX_FOR_BUILD" \ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD" \ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD" \ CPPFLAGS_FOR_BUILD="$CPPFLAGS_FOR_BUILD" \ PKGCONFIG_DEFAULT_PREFIX=${PKGCONFIG_DEFAULT_PREFIX:-$PWD/build/libs} \ ${PKG_CONFIG_PATH:+PKG_CONFIG_PATH=$PKG_CONFIG_PATH} make $MAKE_FLAGS