warzone2100/win32/__BUILD_SCRIPT

120 lines
2.9 KiB
Bash
Executable File

#!/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