configure
author truelight
Thu, 08 Feb 2007 11:04:39 +0000
changeset 5957 89ca54f5da71
parent 5941 adaea39e84ab
child 6034 7a125490f55c
permissions -rwxr-xr-x
(svn r8628) [PSP] -Add: added configure support for the PlayStation Portable target
In the coming days/weeks there will be an attempt to port OpenTTD for
this target. This is a very small step towards that.
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     1
#!/bin/sh
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     2
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     3
# Find out where configure is (in what dir)
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     4
ROOT_DIR="`dirname $0`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     5
ROOT_DIR="`cd $ROOT_DIR && pwd`"
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     6
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     7
PWD="`pwd`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
     8
PREFIX="`pwd`/bin"
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
     9
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    10
. $ROOT_DIR/config.lib
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    11
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    12
# Set default dirs
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    13
OBJS_DIR="$PWD/objs"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    14
BASE_SRC_OBJS_DIR="$OBJS_DIR"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    15
LANG_OBJS_DIR="$OBJS_DIR/lang"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    16
BIN_DIR="$PREFIX"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    17
SRC_DIR="$ROOT_DIR/src"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    18
LANG_DIR="$SRC_DIR/lang"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    19
MEDIA_DIR="$ROOT_DIR/media"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    20
SOURCE_LIST="$ROOT_DIR/source.list"
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    21
5558
4bceae3ff866 (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5555
diff changeset
    22
if [ "$1" = "--reconfig" ]; then
4bceae3ff866 (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5555
diff changeset
    23
	if ! [ -f "config.cache" ]; then
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    24
		echo "can't reconfigure, because never configured before"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    25
		exit 1
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    26
	fi
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    27
	# Make sure we don't lock config.cache
5560
94d98c7015ce (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5558
diff changeset
    28
	cat config.cache > cache.tmp
94d98c7015ce (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5558
diff changeset
    29
	sh cache.tmp
94d98c7015ce (svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents: 5558
diff changeset
    30
	rm -f cache.tmp
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    31
	exit $?
3198
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    32
fi
54e4474378f7 (svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff changeset
    33
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    34
set_default
5486
ae4bc84abf24 (svn r7770) [Configure] -Fix: the "" and \ via ./configure wasn't passed on correctly (and therefor it was lost)
truelight
parents: 5480
diff changeset
    35
detect_params "$@"
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    36
save_params
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    37
check_params
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    38
make_cflags_and_ldflags
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    39
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    40
EXE=""
5753
553170b2ff57 (svn r8304) [WinCE] -Add: added configure detection for WinCE.
truelight
parents: 5589
diff changeset
    41
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    42
	EXE=".exe"
3205
36beea8bde6a (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    43
fi
36beea8bde6a (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    44
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    45
TTD="openttd$EXE"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    46
STRGEN="strgen$EXE"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    47
ENDIAN_CHECK="endian_check$EXE"
3205
36beea8bde6a (svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents: 3202
diff changeset
    48
5558
4bceae3ff866 (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5555
diff changeset
    49
if [ -z "$sort" ]; then
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    50
	PIPE_SORT="sed s/a/a/"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    51
else
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    52
	PIPE_SORT="$sort"
3200
faafc2eb520f (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    53
fi
faafc2eb520f (svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents: 3199
diff changeset
    54
5558
4bceae3ff866 (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5555
diff changeset
    55
if ! [ -f "$LANG_DIR/english.txt" ]; then
5475
2e6990a8c7c4 (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."
2e6990a8c7c4 (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"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    58
fi
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    59
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    60
# Read the source.list and process it
5555
f1c050be9cf8 (svn r7939) Fix useless use of cat
tron
parents: 5486
diff changeset
    61
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | awk '
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    62
	{  }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    63
	/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
2e6990a8c7c4 (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; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    65
	/^(	*)#if/   {
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    66
		gsub("	", "", $0);
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    67
		gsub("^#if ", "", $0);
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    68
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    69
		if (deep != skip) { deep += 1; next; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    70
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    71
		deep += 1;
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    72
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    73
		if ($0 == "SDL"         && "'$sdl_config'" == "")          { next; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    74
		if ($0 == "OSX"         && "'$os'" != "OSX")               { next; }
5589
dce11622ab6a (svn r8040) [Configure] -Fix: for some reason, OS2 compiled unix.cpp, not os2.cpp
truelight
parents: 5560
diff changeset
    75
		if ($0 == "OS2"         && "'$os'" != "OS2")               { next; }
5957
89ca54f5da71 (svn r8628) [PSP] -Add: added configure support for the PlayStation Portable target
truelight
parents: 5941
diff changeset
    76
		if ($0 == "PSP"         && "'$os'" != "PSP")               { next; }
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    77
		if ($0 == "DEDICATED"   && "'$enable_dedicated'" != "1")   { next; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    78
		if ($0 == "COCOA"       && "'$with_cocoa'" == "0")         { next; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    79
		if ($0 == "BEOS"        && "'$os'" != "BEOS")              { next; }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    80
		if ($0 == "WIN32"       && "'$os'" != "MINGW" &&
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    81
		                "'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
5753
553170b2ff57 (svn r8304) [WinCE] -Add: added configure detection for WinCE.
truelight
parents: 5589
diff changeset
    82
		if ($0 == "WINCE"       && "'$os'" != "WINCE")             { next; }
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    83
		if ($0 == "MSVC"        && "'$os'" != "MSVC")              { next; }
5480
0933c2bd8279 (svn r7764) [Configure] -Fix: a forced direct-music is as valid as an autodetected
truelight
parents: 5475
diff changeset
    84
		if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0")  { next; }
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    85
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    86
		skip += 1;
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    87
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    88
		next;
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    89
	}
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    90
	/^(	*)#/ { next }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    91
	/^$/ { next }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    92
	/\.h$/ { next }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    93
	/\.hpp$/ { next }
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    94
	{
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    95
		if (deep == skip) {
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    96
			gsub("	", "", $0);
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    97
			print $0;
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    98
		}
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
    99
	}
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   100
' | $PIPE_SORT`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   101
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   102
OBJS_C="`  echo \"$SRCS\" | awk ' { ORS = " " } /\.c$/   { gsub(".c$",   ".o", $0); print $0; }'`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   103
OBJS_CPP="`echo \"$SRCS\" | awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
5941
adaea39e84ab (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents: 5753
diff changeset
   104
OBJS_MM="` echo \"$SRCS\" | awk ' { ORS = " " } /\.mm$/  { gsub(".mm$",  ".o", $0); print $0; }'`"
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   105
OBJS_RC="` echo \"$SRCS\" | awk ' { ORS = " " } /\.rc$/  { gsub(".rc$",  ".o", $0); print $0; }'`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   106
SRCS="`    echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   107
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   108
# In makefiles, we always use -u for sort
5558
4bceae3ff866 (svn r7942) Trim another 192 lines from the configure monster
tron
parents: 5555
diff changeset
   109
if [ -z "$sort" ]; then
5475
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   110
	sort="sed s/a/a/"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   111
else
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   112
	sort="$sort -u"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   113
fi
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   114
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   115
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   116
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   117
generate_main
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   118
generate_lang
2e6990a8c7c4 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents: 5305
diff changeset
   119
generate_src