X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=misc%2Ftools%2Fall%2Fxonotic.subr;h=35ce643154553ff53f139592e02fdb35c977475d;hb=429aa87dc92a77a471f8b46776bbf20627009014;hp=570305f8e23c3d0c00cd98aefa2e2b7fe9b8ec08;hpb=14a780806603fee672fd6b4845ec0e934b0c0f1d;p=xonotic%2Fxonotic.git diff --git a/misc/tools/all/xonotic.subr b/misc/tools/all/xonotic.subr index 570305f8..35ce6431 100644 --- a/misc/tools/all/xonotic.subr +++ b/misc/tools/all/xonotic.subr @@ -8,9 +8,10 @@ case "$cmd" in msg "Usage: ./all compile-map mapname1 mapname2 mapname3" msg "For example: ./all compile-map dance xoylent" fi - if ! [ -f "netradiant/install/q3map2" ] ; then - msg "q3map2 needed! Building netradiant..." - make -C netradiant BUILD=native install/q3map2 + if ! [ -f "netradiant/build/q3map2" ] ; then + msg "q3map2 needed! Building q3map2..." + cmake -H'netradiant' -B'netradiant/build' -G'Unix Makefiles' -D'CMAKE_BUILD_TYPE=Release' -DBUILD_RADIANT=OFF -DDOWNLOAD_GAMEPACKS=OFF + cmake --build 'netradiant/build' -- q3map2 fi for mapfile in "$@"; do mapfile="data/xonotic-maps.pk3dir/maps/$mapfile.map" @@ -26,8 +27,8 @@ case "$cmd" in cleandp=false cleanqcc=false cleanqc=false - compiled0=false - debug=debug + compiled0= + debug=release # when changing this default, change the description in the zsh autocompletion script if [ -z "$CC" ]; then export CC="gcc" fi @@ -38,6 +39,10 @@ case "$cmd" in compiled0=true shift ;; + -1) + compiled0=false + shift + ;; -c) cleand0=true cleandp=true @@ -49,8 +54,11 @@ case "$cmd" in cleanqc=true shift ;; - -r|-p) + -d|-p|-r) case "$1" in + -d) + debug=debug + ;; -p) debug=profile ;; @@ -82,6 +90,8 @@ case "$cmd" in if [ x"`uname`" = x"Darwin" ]; then TARGETS="sv-$debug sdl-$debug" export CC="$CC -fno-reorder-blocks" + elif [ -n "$WE_HATE_OUR_USERS" ]; then + TARGETS="sv-$debug sdl-$debug" else TARGETS="sv-$debug cl-$debug sdl-$debug" fi @@ -100,7 +110,7 @@ case "$cmd" in sdl) TARGETS="$TARGETS sdl-$debug" ;; - glx|wgl) + glx) TARGETS="$TARGETS cl-$debug" ;; dedicated) @@ -135,7 +145,14 @@ case "$cmd" in if [ -n "$WE_HATE_OUR_USERS" ]; then # win32: use SDL2 - MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win32/sdl/bin/sdl2-config" + 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=" @@ -155,7 +172,7 @@ case "$cmd" in MAKEFLAGS="$MAKEFLAGS CFLAGS_SSE= CFLAGS_SSE2=" ;; esac - + if ! verbose $CC misc/tools/conftest.c -o conftest; then msg "" msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" @@ -183,28 +200,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" @@ -214,18 +235,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 @@ -283,32 +306,38 @@ 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${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" - client=-sdl fi + + client=-sdl + USE_RLWRAP=no case "$1" in dedicated) client=-$1 + USE_RLWRAP= shift ;; - sdl|glx) - USE_RLWRAP=no - client=-$1 + sdl) shift ;; - wgl) - USE_RLWRAP=no - client= + glx) + client=-$1 shift ;; esac + if ! [ -x "darkplaces/darkplaces$client" ]; then if [ -x "darkplaces/darkplaces$client.exe" ]; then client=$client.exe @@ -359,15 +388,17 @@ case "$cmd" in fi ;; help) - $ECHO " $SELF compile [-c] [-qc] [-r|-p] [-0] [sdl|glx|wgl|dedicated]" + $ECHO " $SELF compile [-c] [-qc] [-d|-p|-r] [-0] [-1] [sdl|glx|dedicated]" $ECHO " $SELF update-maps" - $ECHO " $SELF run [sdl|glx|wgl|dedicated] options..." + $ECHO " $SELF run [sdl|glx|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 |\ + trap "rm -rf .serverbench_temp" 0 1 2 3 11 13 15 + mkdir -p .serverbench_temp + verbose "$SELF" run dedicated "$@" -noconfig -userdir .serverbench_temp +exec serverbench.cfg |\ tee /dev/stderr |\ grep '^:' |\ grep -v '^:gamestart:' |\