author | Darkvater |
Fri, 23 Feb 2007 12:56:10 +0000 | |
changeset 6124 | 9f822ae6c086 |
parent 6081 | 57d2fa5e3073 |
child 6246 | 75451000349d |
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 |
6081
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
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; } |
6035
9009f472b356
(svn r8758) -Fix r8757: wrong variable to check libtimidity on if it is found or not
truelight
parents:
6034
diff
changeset
|
85 |
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; } |
5475
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 |
skip += 1; |
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 |
} |
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 |
/^$/ { next } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
93 |
/\.h$/ { next } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
94 |
/\.hpp$/ { next } |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
95 |
{ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
96 |
if (deep == skip) { |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
97 |
gsub(" ", "", $0); |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
98 |
print $0; |
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 |
} |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
101 |
' | $PIPE_SORT`" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
102 |
|
6081
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
diff
changeset
|
103 |
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`" |
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
diff
changeset
|
104 |
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`" |
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
diff
changeset
|
105 |
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/ { gsub(".mm$", ".o", $0); print $0; }'`" |
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
diff
changeset
|
106 |
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`" |
57d2fa5e3073
(svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight
parents:
6035
diff
changeset
|
107 |
SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`" |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
108 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
109 |
# 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
|
110 |
if [ -z "$sort" ]; then |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
111 |
sort="sed s/a/a/" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
112 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
113 |
sort="$sort -u" |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
114 |
fi |
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 |
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
|
117 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
118 |
generate_main |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
119 |
generate_lang |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
120 |
generate_src |