X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=misc%2Ftools%2Fall%2Fxonotic.subr;h=9118c5054d6219e414be2692363a4028ae66ac3f;hp=f24a051229f249b9e4c2c9ecfa38fb0de2d2bd04;hb=4331b691c0e4073402529c9de16fe57d38e3edfb;hpb=35d70b5ce898799d88ae9a44311d212899dd1390 diff --git a/misc/tools/all/xonotic.subr b/misc/tools/all/xonotic.subr index f24a0512..9118c505 100644 --- a/misc/tools/all/xonotic.subr +++ b/misc/tools/all/xonotic.subr @@ -26,9 +26,8 @@ case "$cmd" in cleandp=false cleanqcc=false cleanqc=false - compiled0=false + compiled0= debug=debug - snowleopardhack=false if [ -z "$CC" ]; then export CC="gcc" fi @@ -39,6 +38,10 @@ case "$cmd" in compiled0=true shift ;; + -1) + compiled0=false + shift + ;; -c) cleand0=true cleandp=true @@ -46,6 +49,10 @@ case "$cmd" in cleanqc=true shift ;; + -qc) + cleanqc=true + shift + ;; -r|-p) case "$1" in -p) @@ -75,23 +82,12 @@ case "$cmd" in ;; esac done - if [ -n "$WE_HATE_OUR_USERS" ]; then - TARGETS="sv-$debug cl-$debug" - elif [ x"`uname`" = x"Darwin" ]; then - case "`uname -r`" in - ?.*) - TARGETS="sv-$debug cl-$debug sdl-$debug" - ;; - *) - # AGL cannot be compiled on systems with a kernel > 10.x (Snow Leopard) - snowleopardhack=true - TARGETS="sv-$debug sdl-$debug" - ;; - esac - export CC="$CC -fno-reorder-blocks -I$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks" - else - TARGETS="sv-$debug cl-$debug sdl-$debug" + + TARGETS="sv-$debug sdl-$debug" + if [ x"`uname`" = x"Darwin" ]; then + export CC="$CC -fno-reorder-blocks" fi + if [ $# -gt 0 ] && [ x"$1" = x"" ]; then # if we give the command make the arg "", it will surely fail (invalid filename), # so better handle it as an empty client option @@ -105,18 +101,6 @@ case "$cmd" in case "$X" in sdl) TARGETS="$TARGETS sdl-$debug" - if [ -n "$WE_HATE_OUR_USERS" ]; then - export PATH="$PATH:$d0/misc/builddeps/win32/sdl/bin" - fi - ;; - agl) - TARGETS="$TARGETS cl-$debug" - if $snowleopardhack; then - export CC="$CC -arch i386" - fi - ;; - glx|wgl) - TARGETS="$TARGETS cl-$debug" ;; dedicated) TARGETS="$TARGETS sv-$debug" @@ -133,6 +117,11 @@ case "$cmd" in BAD_TARGETS= fi fi + + if [ -z "$MAKE" ]; then + MAKE=make + fi + if [ -z "$MAKEFLAGS" ]; then ncpus=`getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null || echo 1` if [ $ncpus -gt 1 ]; then @@ -143,11 +132,27 @@ case "$cmd" in fi fi - # win32: don't rely on jpeg includes if [ -n "$WE_HATE_OUR_USERS" ]; then + # win32: use SDL2 + case `uname -m` in + x86_64) + MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win64/sdl/bin/sdl2-config" + ;; + *) + MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win32/sdl/bin/sdl2-config" + ;; + esac + + # win32: don't rely on jpeg includes MAKEFLAGS="$MAKEFLAGS LIB_JPEG= CFLAGS_LIBJPEG=" fi + if [ x"`uname`" = x"Darwin" ]; then + # osx: use SDL2 + f=$d0/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks + MAKEFLAGS="$MAKEFLAGS SDLCONFIG_MACOSXCFLAGS=-I$f/SDL2.framework/Headers SDLCONFIG_MACOSXLIBS=-F$f SDLCONFIG_MACOSXLIBS+=-framework SDLCONFIG_MACOSXLIBS+=SDL2 SDLCONFIG_MACOSXLIBS+=-framework SDLCONFIG_MACOSXLIBS+=Cocoa SDLCONFIG_MACOSXLIBS+=-I$f/SDL2.framework/Headers SDLCONFIG_MACOSXSTATICLIBS=-F$f SDLCONFIG_MACOSXSTATICLIBS+=-framework SDLCONFIG_MACOSXSTATICLIBS+=SDL2 SDLCONFIG_MACOSXSTATICLIBS+=-framework SDLCONFIG_MACOSXSTATICLIBS+=Cocoa SDLCONFIG_MACOSXSTATICLIBS+=-I$f/SDL2.framework/Headers" + fi + # workaround ARM issue in DP's makefile.inc case `uname -m` in x86_64|*86) @@ -184,28 +189,32 @@ case "$cmd" in rm -f conftest verbose cd "$d0/d0_blind_id" - if ! $compiled0; then + if [ -z "$compiled0" ]; then + # In doubt, compile. + compiled0=true + # compilation of crypto library failed # use binaries then, if we can... mkdir -p .libs if [ -n "$WE_HATE_OUR_USERS" ]; then - verbose cp "$d0/misc/buildfiles/win32/libd0_blind_id"-* .libs/ - verbose cp "$d0/misc/buildfiles/win32/libd0_rijndael"-* .libs/ - verbose cp "$d0/misc/buildfiles/win32/libgmp"-* .libs/ + case `uname -m` in + x86_64) + verbose cp "$d0/misc/buildfiles/win64/libd0_blind_id"-* .libs/ + verbose cp "$d0/misc/buildfiles/win64/libd0_rijndael"-* .libs/ + verbose cp "$d0/misc/buildfiles/win64/libgmp"-* .libs/ + compiled0=false + ;; + *) + verbose cp "$d0/misc/buildfiles/win32/libd0_blind_id"-* .libs/ + verbose cp "$d0/misc/buildfiles/win32/libd0_rijndael"-* .libs/ + verbose cp "$d0/misc/buildfiles/win32/libgmp"-* .libs/ + compiled0=false + ;; + esac else case "`uname`" in Linux) case `uname -m` in - x86_64) - # No cp commands, we want to use static linking instead. - export CC="$CC -I../../../../misc/builddeps/linux64/d0_blind_id/include" - export CC="$CC -L../../../../misc/builddeps/linux64/d0_blind_id/lib" - export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux64/d0_blind_id/lib" - export CC="$CC -I../../../../misc/builddeps/linux64/gmp/include" - export CC="$CC -L../../../../misc/builddeps/linux64/gmp/lib" - export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux64/gmp/lib" - MAKEFLAGS="$MAKEFLAGS DP_LINK_CRYPTO=shared DP_LINK_CRYPTO_RIJNDAEL=shared LIB_CRYPTO=../../../../misc/builddeps/linux64/d0_blind_id/lib/libd0_blind_id.a LIB_CRYPTO+=../../../../misc/builddeps/linux64/gmp/lib/libgmp.a LIB_CRYPTO_RIJNDAEL=../../../../misc/builddeps/linux64/d0_blind_id/lib/libd0_rijndael.a" - ;; *86) # No cp commands, we want to use static linking instead. export CC="$CC -I../../../../misc/builddeps/linux32/d0_blind_id/include" @@ -215,18 +224,20 @@ case "$cmd" in export CC="$CC -L../../../../misc/builddeps/linux32/gmp/lib" export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux32/gmp/lib" MAKEFLAGS="$MAKEFLAGS DP_LINK_CRYPTO=shared DP_LINK_CRYPTO_RIJNDAEL=shared LIB_CRYPTO=../../../../misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.a LIB_CRYPTO+=../../../../misc/builddeps/linux32/gmp/lib/libgmp.a LIB_CRYPTO_RIJNDAEL=../../../../misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.a" + compiled0=false ;; *) - compiled0=true + msg "Always need to compile libd0_blind_id on Linux `uname -m`." ;; esac ;; Darwin) verbose cp "$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS/libd0_blind_id".* .libs/ verbose cp "$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS/libd0_rijndael".* .libs/ + compiled0=false ;; *) - compiled0=true + msg "Always need to compile libd0_blind_id on `uname`." ;; esac fi @@ -234,31 +245,36 @@ case "$cmd" in if $compiled0; then if $cleand0; then if [ -f Makefile ]; then - verbose make $MAKEFLAGS distclean + verbose $MAKE $MAKEFLAGS distclean fi fi if ! [ -f Makefile ]; then verbose sh autogen.sh verbose ./configure fi - verbose make $MAKEFLAGS + verbose $MAKE $MAKEFLAGS fi verbose cd "$d0/gmqcc" if $cleanqcc; then - verbose make $MAKEFLAGS clean + verbose $MAKE $MAKEFLAGS clean fi if [ -n "$WE_HATE_OUR_USERS" ]; then - verbose make $MAKEFLAGS gmqcc.exe + verbose $MAKE $MAKEFLAGS gmqcc.exe else - verbose make $MAKEFLAGS gmqcc + verbose $MAKE $MAKEFLAGS gmqcc fi + if [ -n "$MSYSTEM" ]; then + DATAMAKE=mingw32-make + else + DATAMAKE=$MAKE + fi verbose cd "$d0/data/xonotic-data.pk3dir" if $cleanqc; then - verbose make QCC="../../../../gmqcc/gmqcc" "$@" $MAKEFLAGS clean + verbose ${DATAMAKE} QCC="../../../../gmqcc/gmqcc" "$@" $MAKEFLAGS clean fi - verbose make QCC="../../../../gmqcc/gmqcc" "$@" $MAKEFLAGS + verbose ${DATAMAKE} QCC="../../../../gmqcc/gmqcc" "$@" $MAKEFLAGS # 4 levels up: data, xonotic-data, qcsrc, server verbose cd "$d0/darkplaces" @@ -266,10 +282,10 @@ case "$cmd" in $ECHO "Warning: invalid empty client, default clients will be used." fi if $cleandp; then - verbose make $MAKEFLAGS clean + verbose $MAKE $MAKEFLAGS clean fi for T in $TARGETS; do - verbose make $MAKEFLAGS STRIP=: "$@" "$T" + verbose $MAKE $MAKEFLAGS STRIP=: "$@" "$T" done for T in $BAD_TARGETS; do $ECHO "Warning: discarded invalid client $T." @@ -280,13 +296,20 @@ case "$cmd" in run) if [ -n "$WE_HATE_OUR_USERS" ]; then client= - export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH" + case `uname -m` in + x86_64) + export PATH="$d0/misc/buildfiles/win64:$d0/d0_blind_id/.libs:$PATH" + ;; + *) + export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH" + ;; + esac elif [ x"`uname`" = x"Darwin" ]; then export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS:$d0/d0_blind_id/.libs" export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks" client=-sdl else - export LD_LIBRARY_PATH="$d0/d0_blind_id/.libs" + export LD_LIBRARY_PATH="$d0/d0_blind_id/.libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" client=-sdl fi case "$1" in @@ -294,16 +317,11 @@ case "$cmd" in client=-$1 shift ;; - sdl|glx|agl) + sdl) USE_RLWRAP=no client=-$1 shift ;; - wgl) - USE_RLWRAP=no - client= - shift - ;; esac if ! [ -x "darkplaces/darkplaces$client" ]; then if [ -x "darkplaces/darkplaces$client.exe" ]; then @@ -355,12 +373,21 @@ case "$cmd" in fi ;; help) - $ECHO " $SELF compile [-c] [-r|-p] [-0] [sdl|glx|wgl|agl|dedicated]" + $ECHO " $SELF compile [-c] [-qc] [-r|-p] [-0] [sdl|dedicated]" $ECHO " $SELF update-maps" - $ECHO " $SELF run [sdl|glx|wgl|agl|dedicated] options..." + $ECHO " $SELF run [sdl|dedicated] options..." $ECHO " $SELF compile-map mapname1 mapname2... (e.g. \"./all compile-map dance drain fuse\")" handled=false ;; + serverbench) + # TODO(rpolzer): Why does :anticheat: output differ? Total game time differs? Why? + verbose "$SELF" run "$@" -noconfig -nohome +exec serverbench.cfg |\ + tee /dev/stderr |\ + grep '^:' |\ + grep -v '^:gamestart:' |\ + grep -v '^:anticheat:' |\ + md5sum + ;; *) handled=false ;;