configure
author tron
Sun, 07 Jan 2007 08:17:56 +0000
changeset 5806 67ed054c6881
parent 5737 2518c9df3780
child 5809 cd61f8b74f7d
permissions -rwxr-xr-x
(svn r7939) Fix useless use of cat
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
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    22
if [ "$1" = "--reconfig" ]
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    23
then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    24
	if ! [ -f "config.cache" ]
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    25
	then
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    26
		echo "can't reconfigure, because never configured before"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    27
		exit 1
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    28
	fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    29
	# Make sure we don't lock config.cache
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    30
	configure=`cat config.cache`
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    31
	$configure
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    32
	exit $?
3198
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    33
fi
57a611a83867 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    34
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    35
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
    36
detect_params "$@"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    37
save_params
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    38
check_params
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    39
make_cflags_and_ldflags
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    40
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    41
EXE=""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    42
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ]
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
then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    44
	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
    45
fi
cfe0785b5171 (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    46
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    47
TTD="openttd$EXE"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    48
STRGEN="strgen$EXE"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    49
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
    50
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    51
if [ -z "$sort" ]
3200
7440ead8c22a (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    52
then
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    53
	PIPE_SORT="sed s/a/a/"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    54
else
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    55
	PIPE_SORT="$sort"
3200
7440ead8c22a (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    56
fi
7440ead8c22a (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    57
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    58
if ! [ -f "$LANG_DIR/english.txt" ]
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    59
then
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    60
	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
    61
	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
    62
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    63
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    64
# Read the source.list and process it
5806
67ed054c6881 (svn r7939) Fix useless use of cat
tron
parents: 5737
diff changeset
    65
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    66
	{  }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    67
	/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    68
	/^(	*)#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
    69
	/^(	*)#if/   {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    70
		gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    71
		gsub("^#if ", "", $0);
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 (deep != skip) { deep += 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    74
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    75
		deep += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    76
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    77
		if ($0 == "SDL"         && "'$sdl_config'" == "")          { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    78
		if ($0 == "OSX"         && "'$os'" != "OSX")               { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    79
		if ($0 == "DEDICATED"   && "'$enable_dedicated'" != "1")   { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    80
		if ($0 == "COCOA"       && "'$with_cocoa'" == "0")         { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    81
		if ($0 == "BEOS"        && "'$os'" != "BEOS")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    82
		if ($0 == "WIN32"       && "'$os'" != "MINGW" &&
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    83
		                "'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    84
		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
    85
		if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0")  { next; }
5726
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
		skip += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    88
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    89
		next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    90
	}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    91
	/^(	*)#/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    92
	/^$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    93
	/\.h$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    94
	/\.hpp$/ { next }
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
		if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    97
			gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    98
			print $0;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    99
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   100
	}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   101
' | $PIPE_SORT`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   102
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   103
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
   104
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
   105
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
   106
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
   107
SRCS="`    echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   108
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   109
# In makefiles, we always use -u for sort
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   110
if [ -z "$sort" ]
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   111
then
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   112
	sort="sed s/a/a/"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   113
else
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   114
	sort="$sort -u"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   115
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   116
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   117
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
   118
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   119
generate_main
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   120
generate_lang
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   121
generate_src