| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | #! /bin/bashOS=`uname -s | tr '[:upper:]' '[:lower:]'`ARCH=`uname -p`TARGET=debugTOOLCHAIN=gccHOST=""EXTERNAL_ZLIB="no"EXTERNAL_ZLIB_CPPFLAGS=""EXTERNAL_ZLIB_LDFLAGS=""EXTERNAL_LIBXML="no"EXTERNAL_LIBXML_CPPFLAGS=""EXTERNAL_LIBXML_LDFLAGS=""while test $# -ge 1docase "$1" in	-h* | --help)		echo 'usage:'		echo ' configure [--with-python="PATH TO PYTHON EXECUTABLE"]'         echo '           [--platform="OS-TARGET-TOOLCHAIN", e.g. --platform="linux-debug-gcc-i386"]'         echo '           [--os="OS", e.g. --os="linux"]'         echo '           [--target="TARGET", e.g. --target="release"]'         echo '           [--toolchain="TOOLCHAIN", e.g. --toolchain="clang"]'         echo '           [--arch="ARCH", e.g. --arch="i386"]'		exit 0 ;;	--with-python=*) PYTHON_PATH=`echo $1 | sed 's/.*=//'`; shift ;;	--platform=*) PLATFORM=`echo $1 | sed 's/.*=//'`; shift ;;	--target=*) TARGET=`echo $1 | sed 's/.*=//'`; shift ;;	--toolchain=*) TOOLCHAIN=`echo $1 | sed 's/.*=//'`; shift ;;	--os=*) OS=`echo $1 | sed 's/.*=//'`; shift ;;	--arch=*) ARCH=`echo $1 | sed 's/.*=//'`; shift ;;	--with-zlib=*) EXTERNAL_ZLIB=`echo $1 | sed 's/.*=//'`; shift ;;	--with-zlib-cppflags=*) EXTERNAL_ZLIB_CPPFLAGS=`echo $1 | sed 's/.*=//'`; shift ;;	--with-zlib-ldflags=*) EXTERNAL_ZLIB_LDFLAGS=`echo $1 | sed 's/.*=//'`; shift ;;	--with-libxml=*) EXTERNAL_LIBXML=`echo $1 | sed 's/.*=//'`; shift ;;	--with-libxml-cppflags=*) EXTERNAL_LIBXML_CPPFLAGS=`echo $1 | sed 's/.*=//'`; shift ;;	--with-libxml-ldflags=*) EXTERNAL_LIBXML_LDFLAGS=`echo $1 | sed 's/.*=//'`; shift ;;	*) echo "unknown option: $1"; echo "$0 --help for help"; exit 1 ;;esacdoneBUILDDIR="build"PLIBCONFIG=""PLIBFILES="include/plib/plib.h=>%PACKAGE%/config/%PLATFORM%/plib/include/plib/"ZLIBCONFIG=""ZLIBFILES="zconf.h=>config/%PLATFORM%/%PACKAGE%/"LIBXMLCONFIG="--without-c14n \--without-catalog \--without-docbook  \--without-fexceptions \--without-ftp \--without-history  \--without-html \--without-http \--without-iconv \--without-iso8859x \--without-legacy \--without-output \--without-pattern \--without-push \--without-python \--with-reader \--without-regexps \--without-sax1 \--without-schemas \--without-schematron \--without-threads \--without-tree \--without-valid \--with-writer \--without-xinclude \--without-xpath \--without-xptr \--without-modules \--without-zlib"LIBXMLFILES="config.h=>config/%PLATFORM%/%PACKAGE%/ include/libxml/xmlversion.h=>config/%PLATFORM%/%PACKAGE%/libxml"execConfigure() {	RET=0	SRCDIR=$1	PACKAGE=$2	OPTIONS=$3	FILES=$4	OPT_HOST=$5	echo "Configuring $SRCDIR/$PACKAGE"	mkdir -p "$BUILDDIR/copy"	rm -rf "$BUILDDIR/copy/$PACKAGE"	rm -rf "$BUILDDIR/$PLATFORM/$PACKAGE"	cp -r "$SRCDIR/$PACKAGE" "$BUILDDIR/copy/$PACKAGE"	if [ -d "$BUILDDIR/copy/$PACKAGE" ]; then		pushd "$BUILDDIR/copy/$PACKAGE" > /dev/null		if [ -x "./configure" ]; then			./configure $OPT_HOST $OPTIONS			if [ $? -ne 0 ]; then				popd -n > /dev/null				echo "*** error running \"./configure $OPT_HOST $OPTIONS\" in \"$BUILDDIR/$PACKAGE\""				echo "*** please fix this first!"				exit 1			fi		else			echo "configure not found in directory \"$BUILDDIR/$PACKAGE\""		fi		popd > /dev/null		PAIR=$FILES		for PAIR in $FILES; do			FILE=(${PAIR/=>/ })			SRCFILE="$BUILDDIR/copy/$PACKAGE/${FILE[0]}"			if [ ! -f "$SRCFILE" ]; then				echo "*** file \"$SRCFILE\" in has not been generated by configure."				exit 1			fi			TARGETDIR="$BUILDDIR/${FILE[1]}"			TARGETDIR=${TARGETDIR/\%PLATFORM\%/$PLATFORM}			TARGETDIR=${TARGETDIR/\%PACKAGE\%/$PACKAGE}			mkdir -p "$TARGETDIR"			cp "$SRCFILE" "$TARGETDIR"			TARGETFILE="$TARGETDIR/`basename ${FILE[0]}`"			if [ ! -f "$TARGETFILE" ]; then				echo "*** file "$SRCFILE" could not be copied to "$TARGETFILE" (either directory could not be created or copy failed)"				exit 1			fi		done	else		echo "could not create temporary copy of \"$SRCDIR/$PACKAGE\" in \"$BUILDDIR/copy/$PACKAGE\""	fi	rm -rf "$BUILDDIR/copy/$PACKAGE"}if [ x$PLATFORM = x ]; then 	PLATFORM="$OS-$TARGET-$TOOLCHAIN-$ARCH"fi#if [ x$CC = x ]; then#	CC=${PLATFORM##*-}#fi#export CCif [ x$PYTHON_PATH = x ]; then 	PYTHON_PATH=python3fiif [[ $PLATFORM =~ ^[^-]+-[^-]+-[^-]+-[^-]+$ ]]; then	PYTHON_VERSION="`$PYTHON_PATH -V 2>&1`"	if [[ $PYTHON_VERSION =~ ^"Python 2.6."[1-9][0-9]*$|^"Python 2."[7-9][0-9]*(\.[0-9]*(\+)?)?$|^"Python "[3][0-9]*(\.[0-9]*(\.[0-9]*)(\+)?)?$ ]]; then		FLAGS=`$PYTHON_PATH generate.py --include Makefile.platform.xml --config-dir $BUILDDIR --with-zlib=$EXTERNAL_ZLIB --with-zlib-cppflags="$EXTERNAL_ZLIB_CPPFLAGS" --with-zlib-ldflags="$EXTERNAL_ZLIB_LDFLAGS" --with-libxml=$EXTERNAL_LIBXML --with-libxml-cppflags="$EXTERNAL_LIBXML_CPPFLAGS" --with-libxml-ldflags="$EXTERNAL_LIBXML_LDFLAGS" --print-env $PLATFORM`		eval $FLAGS		CONFIG_OPT=""		if [ x"" != x$HOST ]; then			CONFIG_OPT="--host=$HOST"		fi		execConfigure "." "plib" "$PLIBCONFIG" "$PLIBFILES" "$CONFIG_OPT"		if [ x"no" == x$EXTERNAL_ZLIB ]; then 			execConfigure "third_party" "zlib-1.2.5" "$ZLIBCONFIG" "$ZLIBFILES" ""		fi		if [ x"no" == x$EXTERNAL_LIBXML ]; then 			execConfigure "third_party" "libxml2-2.7.7" "$LIBXMLCONFIG" "$LIBXMLFILES" "$CONFIG_OPT"		fi		$PYTHON_PATH generate.py --include Makefile.xml --config-dir $BUILDDIR --with-zlib=$EXTERNAL_ZLIB --with-zlib-cppflags="$EXTERNAL_ZLIB_CPPFLAGS" --with-zlib-ldflags="$EXTERNAL_ZLIB_LDFLAGS" --with-libxml=$EXTERNAL_LIBXML --with-libxml-cppflags="$EXTERNAL_LIBXML_CPPFLAGS" --with-libxml-ldflags="$EXTERNAL_LIBXML_LDFLAGS" $PLATFORM		if [ $? -ne 0 ]; then			echo "*** error generating Makefile!"			exit 1		fi	else		echo "Need python version >2.6.1. You have \"$PYTHON_VERSION\"."	fielse	echo "Can not guess PLATFORM quadruple. It is set to \"$PLATFORM\" but it should be something like \"linux-debug-gcc-i386\"."fiecho "Configured platform $PLATFORM."echo "Executables will be generated in \"build/$PLATFORM\"."
 |