configure
author maedhros
Tue, 09 Jan 2007 21:43:32 +0000
changeset 5828 d54db61cc830
parent 5811 cb94a44f0e29
child 5840 a1dba7cd499c
permissions -rwxr-xr-x
(svn r8014) -Codechange (r7573): When a tile is cleared, empty the general purpose bits in
extra as well, unless they are (or could be) used for bridges. This means these
bits don't have to be cleared seperately when non-bridgeable tiles are removed.
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     1
#!/bin/sh
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     2
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     3
# Find out where configure is (in what dir)
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     4
ROOT_DIR="`dirname $0`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     5
ROOT_DIR="`cd $ROOT_DIR && pwd`"
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     6
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     7
PWD="`pwd`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     8
PREFIX="`pwd`/bin"
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     9
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    10
. $ROOT_DIR/config.lib
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    11
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    12
# Set default dirs
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    13
OBJS_DIR="$PWD/objs"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    14
BASE_SRC_OBJS_DIR="$OBJS_DIR"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    15
LANG_OBJS_DIR="$OBJS_DIR/lang"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    16
BIN_DIR="$PREFIX"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    17
SRC_DIR="$ROOT_DIR/src"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    18
LANG_DIR="$SRC_DIR/lang"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    19
MEDIA_DIR="$ROOT_DIR/media"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    20
SOURCE_LIST="$ROOT_DIR/source.list"
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    21
5809
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
    22
if [ "$1" = "--reconfig" ]; then
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
    23
	if ! [ -f "config.cache" ]; then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    24
		echo "can't reconfigure, because never configured before"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    25
		exit 1
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    26
	fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    27
	# Make sure we don't lock config.cache
5811
cb94a44f0e29 (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5809
diff changeset
    28
	cat config.cache > cache.tmp
cb94a44f0e29 (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5809
diff changeset
    29
	sh cache.tmp
cb94a44f0e29 (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5809
diff changeset
    30
	rm -f cache.tmp
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    31
	exit $?
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    32
fi
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    33
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    34
set_default
5737
2518c9df3780 (svn r7770) [Configure] -Fix: the "" and \ via ./configure wasn't passed on correctly (and therefor it was lost)
truelight
parents: 5731
diff changeset
    35
detect_params "$@"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    36
save_params
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    37
check_params
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    38
make_cflags_and_ldflags
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    39
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    40
EXE=""
5809
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
    41
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ]; then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    42
	EXE=".exe"
3205
cfe0785b5171 (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    43
fi
cfe0785b5171 (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    44
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    45
TTD="openttd$EXE"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    46
STRGEN="strgen$EXE"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    47
ENDIAN_CHECK="endian_check$EXE"
3205
cfe0785b5171 (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    48
5809
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
    49
if [ -z "$sort" ]; then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    50
	PIPE_SORT="sed s/a/a/"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    51
else
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    52
	PIPE_SORT="$sort"
3200
7440ead8c22a (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    53
fi
7440ead8c22a (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    54
5809
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
    55
if ! [ -f "$LANG_DIR/english.txt" ]; then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    56
	echo "Languages not found in $LANG_DIR. Can't continue without it."
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    57
	echo "Please make sure the dir exists and contains at least english.txt"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    58
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    59
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    60
# Read the source.list and process it
5806
67ed054c6881 (svn r7939) Fix useless use of cat
tron
parents: 5737
diff changeset
    61
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    62
	{  }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    63
	/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    64
	/^(	*)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    65
	/^(	*)#if/   {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    66
		gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    67
		gsub("^#if ", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    68
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    69
		if (deep != skip) { deep += 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    70
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    71
		deep += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    72
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    73
		if ($0 == "SDL"         && "'$sdl_config'" == "")          { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    74
		if ($0 == "OSX"         && "'$os'" != "OSX")               { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    75
		if ($0 == "DEDICATED"   && "'$enable_dedicated'" != "1")   { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    76
		if ($0 == "COCOA"       && "'$with_cocoa'" == "0")         { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    77
		if ($0 == "BEOS"        && "'$os'" != "BEOS")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    78
		if ($0 == "WIN32"       && "'$os'" != "MINGW" &&
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    79
		                "'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    80
		if ($0 == "MSVC"        && "'$os'" != "MSVC")              { next; }
5731
adeae09edbea (svn r7764) [Configure] -Fix: a forced direct-music is as valid as an autodetected
truelight
parents: 5726
diff changeset
    81
		if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0")  { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    82
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    83
		skip += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    84
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    85
		next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    86
	}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    87
	/^(	*)#/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    88
	/^$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    89
	/\.h$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    90
	/\.hpp$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    91
	{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    92
		if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    93
			gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    94
			print $0;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    95
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    96
	}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    97
' | $PIPE_SORT`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    98
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    99
OBJS_C="`  echo \"$SRCS\" | awk ' { ORS = " " } /\.c$/   { gsub(".c$",   ".o", $0); print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   100
OBJS_CPP="`echo \"$SRCS\" | awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   101
OBJS_M="`  echo \"$SRCS\" | awk ' { ORS = " " } /\.m$/   { gsub(".m$",   ".o", $0); print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   102
OBJS_RC="` echo \"$SRCS\" | awk ' { ORS = " " } /\.rc$/  { gsub(".rc$",  ".o", $0); print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   103
SRCS="`    echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   104
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   105
# In makefiles, we always use -u for sort
5809
cd61f8b74f7d (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5806
diff changeset
   106
if [ -z "$sort" ]; then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   107
	sort="sed s/a/a/"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   108
else
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   109
	sort="$sort -u"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   110
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   111
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   112
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   113
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   114
generate_main
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   115
generate_lang
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   116
generate_src