Files @ r3933:400e9c30928e
Branch filter:

Location: cpp/openttd-patchpack/source/configure

celestar
(svn r5070) Merged the bridge branch
-Feature: Bridges can now be placed above:
Any railway track combination (excluding depots and waypoints)
Any road combination (excluding depots)
Clear tiles (duh), including fields
Tunnel entrances
Bridge heads

Thanks to Tron for idea and implementation, KUDr for the yapf synchronization and many others for hours of testing

There are still a number of visual problems remaining, especially when electric railways are on or under the bridge.
DO NOT REPORT THOSE BUGS FOR THE TIME BEING please.
#!/bin/sh

# This 'configure' script is a very easy wrapper around 'make updateconf'
#  It allows cross-compilers to do their job much more easy.

function showhelp() {
	echo "Configure for OpenTTD"
	echo ""
	echo "Usage:"
	echo " $0 --your_options"
	echo ""
	echo "Params:"
	echo " --debug            Create debug-release                [no]"
	echo " --profile          Create profile-release              [no]"
	echo " --dedicated        Make a dedicated build              [no]"
	echo " --revision         Set the revision of the compilation [detected]"
	echo " --target-cc        Sets the target-compiler            [\$CC]"
	echo " --target-cxx       Sets the C++ target-compiler        []"
	echo " --host-cc          Sets the host-compiler              [\$CC]"
	echo " --os               Sets the OS. Listens to:            [detected]"
	echo "                       UNIX, OSX, FREEBSD, MORPHOS"
	echo "                       BEOS, SUNOS, CYGWIN, MINGW"
	echo " --windres          Sets the windres (Windows)          [windres]"
	echo " --force-le         Force LE platform                   [no]"
	echo " --force-be         Force BE platform                   [no]"
	echo ""
	echo "Params that can be used with --with or --without"
	echo "   (e.g.: --without-static disables static (default))"
	echo " static             Do you want a static build?         [no]"
	echo " directmusic        Do you want direct-music?           [no]"
	echo " zlib               Do you want zlib-support?           [yes]"
	echo " sdl                Do you want SDL-support?            [yes]"
	echo " png                Do you want PNG-support?            [yes]"
	echo " iconv              Do you want iconv-support?          [no]"
	echo " cocoa              Do you want cocoa-support? (MacOSX) [no]"
	echo ""
	echo "Params used to configure external libs:"
	echo " --static-zlib-path Set the path to your static zlib    []"
	echo " --sdl-config       Where is your sdl-config            [sdl-config]"
	echo " --libpng-config    Where is your libpng-config         [libpng-config]"
	echo " --with-iconv       Set the path to your iconv headers  []"
	echo " "
}

function handle() {
	PARAM="$PARAM \"$1=`awk 'BEGIN { FS="="; $0="'"$2"'"; print $2;}'`\""
}

# The things you can use inside this case:
#  handle NAME VALUE - Sets the value to give the 'make upgradeconf'
#                         Value is in form: tag=REAL_VALUE
#  ITEM="NAME"       - Will set the value as above, only with the next param
#  SITEM="NAME"      - Will set the var $NAME to the next param
for n in "$@"
do
	case "$n" in
		--help | -h)
			showhelp
			exit 0
			;;

		--debug)
			DEBUG_SET=1
			ITEM="DEBUG"
			;;
		--debug=*)
			handle "DEBUG" "$n"
			;;
		--profile)
			PARAM="$PARAM PROFILE=1"
			;;
		--dedicated)
			PARAM="$PARAM DEDICATED=1"
			;;
		--revision=*)
			RELEASE=`awk 'BEGIN { FS="="; $0="'"$n"'"; print $2;}'`
			;;
		--revision)
			SITEM="RELEASE"
			;;
		--target-cc=*)
			handle "CC_TARGET" "$n"
			;;
		--target-cc)
			ITEM="CC_TARGET"
			;;
		--target-cxx=*)
			TARGET_CXX=`awk 'BEGIN { FS="="; $0="'"$n"'"; print $2;}'`
			;;
		--target-cxx)
			SITEM="TARGET_CXX"
			;;
		--host-cc=*)
			handle CC_HOST "$n"
			;;
		--host-cc)
			ITEM="CC_HOST"
			;;
		--host-cflags=*)
			handle CFLAGS_HOST "$n"
			;;
		--host-cflags)
			ITEM="CFLAGS_HOST"
			;;
		--os=*)
			TARGET_OS=`awk 'BEGIN { FS="="; $0="'"$n"'"; print $2;}'`
			;;
		--os)
			SITEM="TARGET_OS"
			;;
		--windres=*)
			handle WINDRES "$n"
			;;
		--windres)
			ITEM="WINDRES"
			;;
		--force-le)
			PARAM="$PARAM ENDIAN_FORCE=LE"
			;;
		--force-be)
			PARAM="$PARAM ENDIAN_FORCE=BE"
			;;

		--with-static)
			PARAM="$PARAM STATIC=1"
			;;
		--without-static)
			PARAM="$PARAM STATIC="
			;;
		--with-directmusic)
			PARAM="$PARAM WITH_DIRECTMUSIC=1"
			;;
		--without-directmusic)
			PARAM="$PARAM WITH_DIRECTMUSIC="
			;;
		--with-zlib)
			PARAM="$PARAM WITH_ZLIB=1"
			;;
		--without-zlib)
			PARAM="$PARAM WITH_ZLIB="
			;;
		--with-sdl)
			PARAM="$PARAM WITH_SDL=1"
			;;
		--without-sdl)
			PARAM="$PARAM WITH_SDL="
			;;
		--with-png)
			PARAM="$PARAM WITH_PNG=1"
			;;
		--without-png)
			PARAM="$PARAM WITH_PNG="
			;;
		--with-iconv)
			PARAM="$PARAM WITH_ICONV=1"
			;;
		--with-iconv=*)
			PARAM="$PARAM WITH_ICONV=1"
			handle WITH_ICONV_PATH "$n"
			;;
		--without-iconv)
			PARAM="$PARAM WITH_ICONV="
			;;
		--with-cocoa)
			PARAM="$PARAM WITH_COCOA=1"
			;;
		--without-cocoa)
			PARAM="$PARAM WITH_COCOA="
			;;
		--static-zlib-path=*)
			handle STATIC_ZLIB_PATH "$n"
			;;
		--static-zlib-path)
			ITEM="STATIC_ZLIB_PATH"
			;;
		--sdl-config=*)
			handle SDL_CONFIG "$n"
			;;
		--sdl-config)
			ITEM="SDL_CONFIG"
			;;
		--libpng-config=*)
			handle LIBPNG_CONFIG "$n"
			;;
		--lib-png-config)
			ITEM="LIBPNG_CONFIG"
			;;

		--*=*)
			echo -n "Unknown switch "
			echo `awk 'BEGIN { FS="="; $0="'"$n"'"; print $1;}'`
			exit 1
			;;
		-*)
			echo "Unknown switch $n"
			exit 1
			;;

		*)
			if ! test -z "$ITEM"
			then
				PARAM="$PARAM $ITEM=\"$n\""
				ITEM="";
			elif ! test -z "$SITEM"
			then
				export $SITEM="$n"
				SITEM=""
			else
				echo "Unknown switch $n"
				exit 1
			fi
			;;
	esac
done

if ! test -z "$TARGET_OS"
then
	TARGET_OS=`echo $TARGET_OS | tr '[:lower:]' '[:upper:]'`
	case "$TARGET_OS" in
		WIN32)
			PARAM="$PARAM WIN32=1"
			;;
		UNIX)
			PARAM="$PARAM UNIX=1"
			;;
		OSX)
			PARAM="$PARAM OSX=1 UNIX=1"
			;;
		FREEBSD)
			PARAM="$PARAM FREEBSD=1"
			;;
		MORPHOS)
			PARAM="$PARAM MORPHOS=1 UNIX=1"
			;;
		BEOS)
			PARAM="$PARAM BEOS=1 UNIX=1"
			;;
		SUNOS)
			PARAM="$PARAM SUNOS=1 UNIX=1"
			;;
		CYGWIN)
			PARAM="$PARAM CYGWIN=1 WIN32=1"
			;;
		MINGW)
			PARAM="$PARAM MINGW=1 WIN32=1"
			;;
		*)
			echo "Unknown OS: $TARGET_OS"
			exit 1
			;;
	esac
	PARAM="$PARAM BYPASS_OS_DETECT=1"
fi

if ! test -z "$DEBUG_SET"
then
	if test -z "`echo $PARAM | grep "DEBUG="`"
	then
		# Someone did --debug, without assigning a value, assume 1
		PARAM="$PARAM DEBUG=1"
	fi
fi

# First remove the Makefile.config, else you can have double entries
if test -e "Makefile.config"
then
	rm -f Makefile.config
fi

echo "make upgradeconf $PARAM" > Makefile.run
. Makefile.run
rm -f Makefile.run

# Makefile.config currently doesn't support custom CXX, so, we add the line
#  ourself!

if ! test -z "$TARGET_CXX"
then
	echo "CXX=$TARGET_CXX" >> Makefile.config
fi

# Same for RELEASE (read: REVISION)

if ! test -z "$RELEASE"
then
	echo "RELEASE=$RELEASE" >> Makefile.config
fi