author | truelight |
Sun, 21 Jan 2007 14:14:27 +0000 | |
changeset 5753 | 553170b2ff57 |
parent 5589 | dce11622ab6a |
child 5941 | adaea39e84ab |
permissions | -rwxr-xr-x |
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 | 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; } |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
76 |
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
77 |
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
78 |
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
79 |
if ($0 == "WIN32" && "'$os'" != "MINGW" && |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
80 |
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; } |
5753
553170b2ff57
(svn r8304) [WinCE] -Add: added configure detection for WinCE.
truelight
parents:
5589
diff
changeset
|
81 |
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; } |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
82 |
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
|
83 |
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; } |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
84 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
85 |
skip += 1; |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
86 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
87 |
next; |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
88 |
} |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
89 |
/^( *)#/ { next } |
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 |
/\.h$/ { next } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
92 |
/\.hpp$/ { next } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
93 |
{ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
94 |
if (deep == skip) { |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
95 |
gsub(" ", "", $0); |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
96 |
print $0; |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
97 |
} |
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 |
' | $PIPE_SORT`" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
100 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
101 |
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
|
102 |
OBJS_CPP="`echo \"$SRCS\" | awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
103 |
OBJS_M="` echo \"$SRCS\" | awk ' { ORS = " " } /\.m$/ { gsub(".m$", ".o", $0); print $0; }'`" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
104 |
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
|
105 |
SRCS="` echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
106 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
107 |
# 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
|
108 |
if [ -z "$sort" ]; then |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
109 |
sort="sed s/a/a/" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
110 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
111 |
sort="$sort -u" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
112 |
fi |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
113 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
114 |
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
|
115 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
116 |
generate_main |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
117 |
generate_lang |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
118 |
generate_src |