X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=misc%2Ftools%2Fall%2Fxonotic.subr;h=0f65ac263311e02cc4beabf5f98774b8ba0ccd8a;hb=e97d0c1514999124c80305330797b624eaabe9cf;hp=570305f8e23c3d0c00cd98aefa2e2b7fe9b8ec08;hpb=14a780806603fee672fd6b4845ec0e934b0c0f1d;p=xonotic%2Fxonotic.git diff --git a/misc/tools/all/xonotic.subr b/misc/tools/all/xonotic.subr index 570305f8..0f65ac26 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 ;; @@ -79,11 +87,9 @@ case "$cmd" in esac done + TARGETS="sv-$debug sdl-$debug" if [ x"`uname`" = x"Darwin" ]; then - TARGETS="sv-$debug sdl-$debug" export CC="$CC -fno-reorder-blocks" - else - TARGETS="sv-$debug cl-$debug sdl-$debug" fi if [ $# -gt 0 ] && [ x"$1" = x"" ]; then @@ -100,9 +106,6 @@ case "$cmd" in sdl) TARGETS="$TARGETS sdl-$debug" ;; - glx|wgl) - TARGETS="$TARGETS cl-$debug" - ;; dedicated) TARGETS="$TARGETS sv-$debug" ;; @@ -131,11 +134,20 @@ case "$cmd" in if [ -n "$WE_HATE_OUR_USERS" ]; then MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw" fi + elif echo $MAKEFLAGS | head -c1 | grep -qv -; then # MAKEFLAGS starts with a single letter option + MAKEFLAGS=-$(echo $MAKEFLAGS) # echo here and above will trim whitespaces fi 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 +167,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 +195,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 +230,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 +301,34 @@ 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 - shift - ;; - wgl) - USE_RLWRAP=no - client= + sdl) shift ;; esac + if ! [ -x "darkplaces/darkplaces$client" ]; then if [ -x "darkplaces/darkplaces$client.exe" ]; then client=$client.exe @@ -319,15 +339,6 @@ case "$cmd" in fi set -- "darkplaces/darkplaces$client" -xonotic "$@" - # if pulseaudio is running: USE IT - if [ -z "$SDL_AUDIODRIVER" ] && ! [ -n "$WE_HATE_OUR_USERS" ] && ! [ x"`uname`" = x"Darwin" ]; then - if ps -C pulseaudio >/dev/null; then - if ldd /usr/lib/libSDL.so 2>/dev/null | grep pulse >/dev/null; then - export SDL_AUDIODRIVER=pulse - fi - fi - fi - binary=$1 if [ x"$USE_GDB" = x"yes" ]; then @@ -359,15 +370,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|dedicated]" $ECHO " $SELF update-maps" - $ECHO " $SELF run [sdl|glx|wgl|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 |\ + 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:' |\