author | bjarni |
Sun, 11 Mar 2007 16:31:18 +0000 | |
branch | cpp_gui |
changeset 6298 | c30fe89622df |
parent 6268 | 4b5241e5dd10 |
child 6303 | 84c215fc8eb8 |
permissions | -rwxr-xr-x |
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 |
|
6298
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
3 |
CONFIGURE_EXECUTABLE="$_" |
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
4 |
# On *nix systems those two are equal when ./configure is done |
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
5 |
if [ "$0" != "$CONFIGURE_EXECUTABLE" ]; then |
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
6 |
CONFIGURE_EXECUTABLE="$CONFIGURE_EXECUTABLE $0" |
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
7 |
fi |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
8 |
# Find out where configure is (in what dir) |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
9 |
ROOT_DIR="`dirname $0`" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
10 |
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
|
11 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
12 |
PWD="`pwd`" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
13 |
PREFIX="`pwd`/bin" |
3198
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
14 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
15 |
. $ROOT_DIR/config.lib |
3198
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
16 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
17 |
# Set default dirs |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
18 |
OBJS_DIR="$PWD/objs" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
19 |
BASE_SRC_OBJS_DIR="$OBJS_DIR" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
20 |
LANG_OBJS_DIR="$OBJS_DIR/lang" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
21 |
BIN_DIR="$PREFIX" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
22 |
SRC_DIR="$ROOT_DIR/src" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
23 |
LANG_DIR="$SRC_DIR/lang" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
24 |
MEDIA_DIR="$ROOT_DIR/media" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
25 |
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
|
26 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
27 |
if [ "$1" = "--reconfig" ]; then |
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
28 |
if ! [ -f "config.cache" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
29 |
echo "can't reconfigure, because never configured before" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
30 |
exit 1 |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
31 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
32 |
# 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
|
33 |
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
|
34 |
sh cache.tmp |
cb94a44f0e29
(svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents:
5809
diff
changeset
|
35 |
rm -f cache.tmp |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
36 |
exit $? |
3198
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
37 |
fi |
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
38 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
39 |
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
|
40 |
detect_params "$@" |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
41 |
save_params |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
42 |
check_params |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
43 |
make_cflags_and_ldflags |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
44 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
45 |
EXE="" |
6004
03795fd01cb8
(svn r8304) [WinCE] -Add: added configure detection for WinCE.
truelight
parents:
5840
diff
changeset
|
46 |
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
47 |
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
|
48 |
fi |
cfe0785b5171
(svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents:
3202
diff
changeset
|
49 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
50 |
TTD="openttd$EXE" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
51 |
STRGEN="strgen$EXE" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
52 |
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
|
53 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
54 |
if [ -z "$sort" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
55 |
PIPE_SORT="sed s/a/a/" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
56 |
else |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
57 |
PIPE_SORT="$sort" |
3200
7440ead8c22a
(svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents:
3199
diff
changeset
|
58 |
fi |
7440ead8c22a
(svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents:
3199
diff
changeset
|
59 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
60 |
if ! [ -f "$LANG_DIR/english.txt" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
61 |
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
|
62 |
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
|
63 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
64 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
65 |
# Read the source.list and process it |
6268
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
66 |
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk ' |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
67 |
{ } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
68 |
/^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
69 |
/^( *)#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
|
70 |
/^( *)#if/ { |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
71 |
gsub(" ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
72 |
gsub("^#if ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
73 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
74 |
if (deep != skip) { deep += 1; next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
75 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
76 |
deep += 1; |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
77 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
78 |
if ($0 == "SDL" && "'$sdl_config'" == "") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
79 |
if ($0 == "OSX" && "'$os'" != "OSX") { next; } |
5840
a1dba7cd499c
(svn r8040) [Configure] -Fix: for some reason, OS2 compiled unix.cpp, not os2.cpp
truelight
parents:
5811
diff
changeset
|
80 |
if ($0 == "OS2" && "'$os'" != "OS2") { next; } |
6208
ff9b5772fb65
(svn r8628) [PSP] -Add: added configure support for the PlayStation Portable target
truelight
parents:
6192
diff
changeset
|
81 |
if ($0 == "PSP" && "'$os'" != "PSP") { next; } |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
82 |
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
83 |
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
84 |
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
85 |
if ($0 == "WIN32" && "'$os'" != "MINGW" && |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
86 |
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; } |
6004
03795fd01cb8
(svn r8304) [WinCE] -Add: added configure detection for WinCE.
truelight
parents:
5840
diff
changeset
|
87 |
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; } |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
88 |
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
|
89 |
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; } |
6254
abc6ad7c035c
(svn r8769) [cpp_gui] -Sync with trunk (r8730..r8768)
KUDr
parents:
6208
diff
changeset
|
90 |
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; } |
5726
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 |
skip += 1; |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
93 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
94 |
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 |
/^( *)#/ { next } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
97 |
/^$/ { next } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
98 |
/\.h$/ { next } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
99 |
/\.hpp$/ { next } |
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 |
if (deep == skip) { |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
102 |
gsub(" ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
103 |
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 |
} |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
106 |
' | $PIPE_SORT`" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
107 |
|
6268
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
108 |
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`" |
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
109 |
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`" |
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
110 |
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/ { gsub(".mm$", ".o", $0); print $0; }'`" |
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
111 |
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`" |
4b5241e5dd10
(svn r8938) [cpp_gui] -Sync with trunk (r8772..r8900)
bjarni
parents:
6254
diff
changeset
|
112 |
SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`" |
5726
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 |
# 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
|
115 |
if [ -z "$sort" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
116 |
sort="sed s/a/a/" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
117 |
else |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
118 |
sort="$sort -u" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
119 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
120 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
121 |
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
|
122 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
123 |
generate_main |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
124 |
generate_lang |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
125 |
generate_src |