mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-13 07:10:57 +00:00
224d7afe3d
Thanks to TrueLight for finding the solution to this one Note: if the shared-dir setting is already broken due to this then you have to manually run configure again
135 lines
4.0 KiB
Bash
Executable File
135 lines
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
CONFIGURE_EXECUTABLE="$_"
|
|
# On *nix systems those two are equal when ./configure is done
|
|
if [ "$0" != "$CONFIGURE_EXECUTABLE" ]; then
|
|
# On some systems, when ./configure is triggered from 'make'
|
|
# the $_ is filled with 'make'. So if that is true, skip 'make'
|
|
# and use $0 (and hope that is correct ;))
|
|
if [ -n "`echo $CONFIGURE_EXECUTABLE | grep make`" ]; then
|
|
CONFIGURE_EXECUTABLE="$0"
|
|
else
|
|
CONFIGURE_EXECUTABLE="$CONFIGURE_EXECUTABLE $0"
|
|
fi
|
|
fi
|
|
# Find out where configure is (in what dir)
|
|
ROOT_DIR="`dirname $0`"
|
|
ROOT_DIR="`cd $ROOT_DIR && pwd`"
|
|
|
|
PWD="`pwd`"
|
|
PREFIX="`pwd`/bin"
|
|
|
|
. $ROOT_DIR/config.lib
|
|
|
|
# Set default dirs
|
|
OBJS_DIR="$PWD/objs"
|
|
BASE_SRC_OBJS_DIR="$OBJS_DIR"
|
|
LANG_OBJS_DIR="$OBJS_DIR/lang"
|
|
BIN_DIR="$PREFIX"
|
|
SRC_DIR="$ROOT_DIR/src"
|
|
LANG_DIR="$SRC_DIR/lang"
|
|
MEDIA_DIR="$ROOT_DIR/media"
|
|
SOURCE_LIST="$ROOT_DIR/source.list"
|
|
|
|
if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
|
|
if ! [ -f "config.cache" ]; then
|
|
echo "can't reconfigure, because never configured before"
|
|
exit 1
|
|
fi
|
|
# Make sure we don't lock config.cache
|
|
cat config.cache | sed 's/\\ /\\\\ /g' > cache.tmp
|
|
sh cache.tmp
|
|
rm -f cache.tmp
|
|
exit $?
|
|
fi
|
|
|
|
set_default
|
|
detect_params "$@"
|
|
check_params
|
|
save_params
|
|
make_cflags_and_ldflags
|
|
|
|
EXE=""
|
|
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then
|
|
EXE=".exe"
|
|
fi
|
|
|
|
TTD="openttd$EXE"
|
|
STRGEN="strgen$EXE"
|
|
ENDIAN_CHECK="endian_check$EXE"
|
|
|
|
if [ -z "$sort" ]; then
|
|
PIPE_SORT="sed s/a/a/"
|
|
else
|
|
PIPE_SORT="$sort"
|
|
fi
|
|
|
|
if ! [ -f "$LANG_DIR/english.txt" ]; then
|
|
echo "Languages not found in $LANG_DIR. Can't continue without it."
|
|
echo "Please make sure the dir exists and contains at least english.txt"
|
|
fi
|
|
|
|
# Read the source.list and process it
|
|
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk '
|
|
{ }
|
|
/^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; }
|
|
/^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
|
|
/^( *)#if/ {
|
|
gsub(" ", "", $0);
|
|
gsub("^#if ", "", $0);
|
|
|
|
if (deep != skip) { deep += 1; next; }
|
|
|
|
deep += 1;
|
|
|
|
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
|
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
|
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
|
if ($0 == "OS2" && "'$os'" != "OS2") { next; }
|
|
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
|
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
|
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
|
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
|
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
|
|
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
|
|
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; }
|
|
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
|
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
|
|
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
|
if ($0 == "NO_THREADS" && "'$with_threads'" == "0") { next; }
|
|
|
|
skip += 1;
|
|
|
|
next;
|
|
}
|
|
/^( *)#/ { next }
|
|
/^$/ { next }
|
|
/\.h$/ { next }
|
|
/\.hpp$/ { next }
|
|
{
|
|
if (deep == skip) {
|
|
gsub(" ", "", $0);
|
|
print $0;
|
|
}
|
|
}
|
|
' | $PIPE_SORT`"
|
|
|
|
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`"
|
|
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
|
|
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/ { gsub(".mm$", ".o", $0); print $0; }'`"
|
|
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`"
|
|
SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`"
|
|
|
|
# In makefiles, we always use -u for sort
|
|
if [ -z "$sort" ]; then
|
|
sort="sed s/a/a/"
|
|
else
|
|
sort="$sort -u"
|
|
fi
|
|
|
|
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
|
|
|
|
generate_main
|
|
generate_lang
|
|
generate_src
|