author | tron |
Sun, 14 Jan 2007 20:00:25 +0000 | |
changeset 5921 | 51fa3124c16a |
parent 5840 | a1dba7cd499c |
child 6004 | 03795fd01cb8 |
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 |
|
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 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
22 |
if [ "$1" = "--reconfig" ]; then |
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
23 |
if ! [ -f "config.cache" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
24 |
echo "can't reconfigure, because never configured before" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
25 |
exit 1 |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
26 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
27 |
# 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
|
28 |
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
|
29 |
sh cache.tmp |
cb94a44f0e29
(svn r7961) [Configure] -Fix: "" in config params didn't survive --reconfig. They should now.
truelight
parents:
5809
diff
changeset
|
30 |
rm -f cache.tmp |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
31 |
exit $? |
3198
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
32 |
fi |
57a611a83867
(svn r3865) -Add: a fully optional configure script, that is a wrapper around
truelight
parents:
diff
changeset
|
33 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
34 |
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
|
35 |
detect_params "$@" |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
36 |
save_params |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
37 |
check_params |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
38 |
make_cflags_and_ldflags |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
39 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
40 |
EXE="" |
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
41 |
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
42 |
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
|
43 |
fi |
cfe0785b5171
(svn r3873) -Fix: don't remove Makefile.config if it isn't there in the first place
truelight
parents:
3202
diff
changeset
|
44 |
|
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
45 |
TTD="openttd$EXE" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
46 |
STRGEN="strgen$EXE" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
47 |
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
|
48 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
49 |
if [ -z "$sort" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
50 |
PIPE_SORT="sed s/a/a/" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
51 |
else |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
52 |
PIPE_SORT="$sort" |
3200
7440ead8c22a
(svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents:
3199
diff
changeset
|
53 |
fi |
7440ead8c22a
(svn r3867) -Add: added --debug, --profile and --revision to configure
truelight
parents:
3199
diff
changeset
|
54 |
|
5809
cd61f8b74f7d
(svn r7942) Trim another 192 lines from the configure monster
tron
parents:
5806
diff
changeset
|
55 |
if ! [ -f "$LANG_DIR/english.txt" ]; then |
5726
8f399788f6c9
(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." |
8f399788f6c9
(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" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
58 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
59 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
60 |
# Read the source.list and process it |
5806 | 61 |
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | awk ' |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
62 |
{ } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
63 |
/^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; } |
8f399788f6c9
(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; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
65 |
/^( *)#if/ { |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
66 |
gsub(" ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
67 |
gsub("^#if ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
68 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
69 |
if (deep != skip) { deep += 1; next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
70 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
71 |
deep += 1; |
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 ($0 == "SDL" && "'$sdl_config'" == "") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
74 |
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
|
75 |
if ($0 == "OS2" && "'$os'" != "OS2") { next; } |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
76 |
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
77 |
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
78 |
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
79 |
if ($0 == "WIN32" && "'$os'" != "MINGW" && |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
80 |
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
81 |
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
|
82 |
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; } |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
83 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
84 |
skip += 1; |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
85 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
86 |
next; |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
87 |
} |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
88 |
/^( *)#/ { next } |
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 |
/\.h$/ { next } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
91 |
/\.hpp$/ { next } |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
92 |
{ |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
93 |
if (deep == skip) { |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
94 |
gsub(" ", "", $0); |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
95 |
print $0; |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
96 |
} |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
97 |
} |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
98 |
' | $PIPE_SORT`" |
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 |
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
|
101 |
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
|
102 |
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
|
103 |
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
|
104 |
SRCS="` echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`" |
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 |
# 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
|
107 |
if [ -z "$sort" ]; then |
5726
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
108 |
sort="sed s/a/a/" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
109 |
else |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
110 |
sort="$sort -u" |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
111 |
fi |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
112 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
113 |
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
|
114 |
|
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
115 |
generate_main |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
116 |
generate_lang |
8f399788f6c9
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
5305
diff
changeset
|
117 |
generate_src |