truelight@3198: #!/bin/sh truelight@3198: rubidium@5643: # Find out where configure is (in what dir) rubidium@5643: ROOT_DIR="`dirname $0`" rubidium@5643: ROOT_DIR="`cd $ROOT_DIR && pwd`" truelight@3198: rubidium@5643: PWD="`pwd`" rubidium@5643: PREFIX="`pwd`/bin" truelight@3198: rubidium@5643: . $ROOT_DIR/config.lib truelight@3198: rubidium@5643: # Set default dirs rubidium@5643: OBJS_DIR="$PWD/objs" rubidium@5643: BASE_SRC_OBJS_DIR="$OBJS_DIR" rubidium@5643: LANG_OBJS_DIR="$OBJS_DIR/lang" rubidium@5643: BIN_DIR="$PREFIX" rubidium@5643: SRC_DIR="$ROOT_DIR/src" rubidium@5643: LANG_DIR="$SRC_DIR/lang" rubidium@5643: MEDIA_DIR="$ROOT_DIR/media" rubidium@5643: SOURCE_LIST="$ROOT_DIR/source.list" truelight@3198: rubidium@5643: if [ "$1" = "--reconfig" ] truelight@3198: then rubidium@5643: if ! [ -f "config.cache" ] rubidium@5643: then rubidium@5643: echo "can't reconfigure, because never configured before" rubidium@5643: exit 1 rubidium@5643: fi rubidium@5643: # Make sure we don't lock config.cache rubidium@5643: configure=`cat config.cache` rubidium@5643: $configure rubidium@5643: exit $? truelight@3198: fi truelight@3198: rubidium@5643: set_default rubidium@5645: detect_params "$@" rubidium@5643: save_params rubidium@5643: check_params rubidium@5643: make_cflags_and_ldflags rubidium@5643: rubidium@5643: EXE="" rubidium@5643: if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] truelight@3205: then rubidium@5643: EXE=".exe" truelight@3205: fi truelight@3205: rubidium@5643: TTD="openttd$EXE" rubidium@5643: STRGEN="strgen$EXE" rubidium@5643: ENDIAN_CHECK="endian_check$EXE" truelight@3205: rubidium@5643: if [ -z "$sort" ] truelight@3200: then rubidium@5643: PIPE_SORT="sed s/a/a/" rubidium@5643: else rubidium@5643: PIPE_SORT="$sort" truelight@3200: fi truelight@3200: rubidium@5643: if ! [ -f "$LANG_DIR/english.txt" ] rubidium@5643: then rubidium@5643: echo "Languages not found in $LANG_DIR. Can't continue without it." rubidium@5643: echo "Please make sure the dir exists and contains at least english.txt" rubidium@5643: fi rubidium@5643: rubidium@5643: # Read the source.list and process it rubidium@5643: SRCS="`cat $ROOT_DIR/source.list | tr '\r' '\n' | awk ' rubidium@5643: { } rubidium@5643: /^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; } rubidium@5643: /^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; } rubidium@5643: /^( *)#if/ { rubidium@5643: gsub(" ", "", $0); rubidium@5643: gsub("^#if ", "", $0); rubidium@5643: rubidium@5643: if (deep != skip) { deep += 1; next; } rubidium@5643: rubidium@5643: deep += 1; rubidium@5643: rubidium@5643: if ($0 == "SDL" && "'$sdl_config'" == "") { next; } rubidium@5643: if ($0 == "OSX" && "'$os'" != "OSX") { next; } rubidium@5643: if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; } rubidium@5643: if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; } rubidium@5643: if ($0 == "BEOS" && "'$os'" != "BEOS") { next; } rubidium@5643: if ($0 == "WIN32" && "'$os'" != "MINGW" && rubidium@5643: "'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; } rubidium@5643: if ($0 == "MSVC" && "'$os'" != "MSVC") { next; } rubidium@5645: if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; } rubidium@5643: rubidium@5643: skip += 1; rubidium@5643: rubidium@5643: next; rubidium@5643: } rubidium@5643: /^( *)#/ { next } rubidium@5643: /^$/ { next } rubidium@5643: /\.h$/ { next } rubidium@5643: /\.hpp$/ { next } rubidium@5643: { rubidium@5643: if (deep == skip) { rubidium@5643: gsub(" ", "", $0); rubidium@5643: print $0; rubidium@5643: } rubidium@5643: } rubidium@5643: ' | $PIPE_SORT`" rubidium@5643: rubidium@5643: OBJS_C="` echo \"$SRCS\" | awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`" rubidium@5643: OBJS_CPP="`echo \"$SRCS\" | awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`" rubidium@5643: OBJS_M="` echo \"$SRCS\" | awk ' { ORS = " " } /\.m$/ { gsub(".m$", ".o", $0); print $0; }'`" rubidium@5643: OBJS_RC="` echo \"$SRCS\" | awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`" rubidium@5643: SRCS="` echo \"$SRCS\" | awk ' { ORS = " " } { print $0; }'`" rubidium@5643: rubidium@5643: # In makefiles, we always use -u for sort rubidium@5643: if [ -z "$sort" ] rubidium@5643: then rubidium@5643: sort="sed s/a/a/" rubidium@5643: else rubidium@5643: sort="$sort -u" rubidium@5643: fi rubidium@5643: rubidium@5643: CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in" rubidium@5643: rubidium@5643: generate_main rubidium@5643: generate_lang rubidium@5643: generate_src