]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - all
Fix compile command to handle correctly the optional argument <client>
[xonotic/xonotic.git] / all
diff --git a/all b/all
index fe9bb4168184dd660edb417edd9a628354dcac10..4fa99d1a077780f15354c85b592947fa599e3a28 100755 (executable)
--- a/all
+++ b/all
@@ -25,7 +25,6 @@ case "$0" in
                case "`uname`" in
                        MINGW*|Win*)
                                # Windows hates users. So this script has to copy itself elsewhere first...
-                               tname=
                                cp "$SELF" ../all.xonotic.sh
                                export WE_HATE_OUR_USERS=1
                                exec ../all.xonotic.sh "$@"
@@ -138,14 +137,14 @@ esac
 
 repourl()
 {
-       t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 2 | tr -d ' '`
-       if [ -n "$t" ]; then
-               case "$t" in
+       repo_t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 2 | tr -d ' '`
+       if [ -n "$repo_t" ]; then
+               case "$repo_t" in
                        *://*)
-                               echo "$t"
+                               echo "$repo_t"
                                ;;
                        *)
-                               echo "$base$t"
+                               echo "$base$repo_t"
                                ;;
                esac
        else
@@ -159,9 +158,9 @@ repourl()
 
 repobranch()
 {
-       t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 3 | tr -d ' '`
-       if [ -n "$t" ]; then
-               echo "$t"
+       repo_t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 3 | tr -d ' '`
+       if [ -n "$repo_t" ]; then
+               echo "$repo_t"
        else
                echo "master"
        fi
@@ -170,7 +169,6 @@ repobranch()
 repoflags()
 {
        echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 4 | tr -d ' '
-       echo "$t"
 }
 
 repos=`for d in $repos; do
@@ -400,7 +398,7 @@ case "$cmd" in
                        fi
                        rem=`git config "branch.$r.remote" || echo origin`
                        bra=`git config "branch.$r.merge" || echo "$r"`
-                       upstream="$rem/$bra"
+                       upstream="$rem/${bra#refs/heads/}"
                        if ! git rev-parse "$upstream" >/dev/null 2>&1; then
                                upstream="origin/`repobranch "$d"`"
                        fi
@@ -426,9 +424,17 @@ case "$cmd" in
                        if [ -z "$CC" ]; then
                                export CC=gcc
                        fi
-               elif [ x"`uname`" = x"Darwin" ] && ( [ -d /Library/Frameworks/SDL.framework ] || [ -d $(HOME)/Library/Frameworks/SDL.framework ] ); then
-                       # AGL is broken in Snow Leopard, so let's default to SDL if it is available.
-                       TARGETS="sv-debug sdl-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)
+                                       TARGETS="sv-debug sdl-debug"
+                                       ;;
+                       esac
+                       export CC="gcc -I$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks"
                else
                        TARGETS="sv-debug cl-debug sdl-debug"
                fi
@@ -451,20 +457,38 @@ case "$cmd" in
                                cleanqc=true # version info
                                ;;
                esac
-               case "$1" in
-                       sdl)
-                               TARGETS="sdl-debug"
-                               shift
-                               ;;
-                       glx|agl|wgl)
-                               TARGETS="cl-debug"
-                               shift
-                               ;;
-                       dedicated)
-                               TARGETS="sv-debug"
+               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
+                       BAD_TARGETS=" "
+                       shift
+               elif [ -n "$1" ]; then
+                       BAD_TARGETS=
+                       TARGETS_SAVE=$TARGETS
+                       TARGETS=
+                       for X in $1; do
+                               case "$X" in
+                                       sdl)
+                                               TARGETS="$TARGETS sdl-debug"
+                                               ;;
+                                       glx|agl|wgl)
+                                               TARGETS="$TARGETS cl-debug"
+                                               ;;
+                                       dedicated)
+                                               TARGETS="$TARGETS sv-debug"
+                                               ;;
+                                       *)
+                                               BAD_TARGETS="$BAD_TARGETS $X"
+                                               ;;
+                               esac
+                       done
+                       if [ "$TARGETS" ]; then # at least a valid client
                                shift
-                               ;;
-               esac
+                       else # no valid client, let's assume this option is not meant to be a client then
+                               TARGETS=$TARGETS_SAVE
+                               BAD_TARGETS=
+                       fi
+               fi
                if [ -z "$MAKEFLAGS" ]; then
                        if [ -f /proc/cpuinfo ]; then
                                ncpus=$((`grep -c '^processor   :' /proc/cpuinfo`+0))
@@ -495,12 +519,18 @@ case "$cmd" in
                verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS
 
                enter "$d0/darkplaces" verbose
+               if [ x"$BAD_TARGETS" = x" " ]; then
+                       echo "Warning: invalid empty client, default clients will be used."
+               fi
                if $cleandp; then
                        verbose make $MAKEFLAGS clean
                fi
                for T in $TARGETS; do
                        verbose make $MAKEFLAGS "$@" "$T"
                done
+               for T in $BAD_TARGETS; do
+                       echo "Warning: discarded invalid client $T."
+               done
 
                verbose "$SELF" update-maps
                ;;
@@ -510,6 +540,7 @@ case "$cmd" in
                        export PATH="$d0/misc/buildfiles/w32:$PATH"
                elif [ x"`uname`" = x"Darwin" ]; then
                        export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/MacOS"
+                       export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks"
                        client=-sdl
                else
                        client=-sdl
@@ -532,7 +563,7 @@ case "$cmd" in
                                exit 1
                        fi
                fi
-               set -- "darkplaces/darkplaces$client" -nexuiz -customgamename Xonotic -customgamedirname1 data -customgamedirname2 "" -customgamescreenshotname xonotic -customgameuserdirname xonotic "$@"
+               set -- "darkplaces/darkplaces$client" -nexuiz -customgamename Xonotic -customgamedirname1 data -customgamedirname2 "" -customgamescreenshotname xonotic -customgameuserdirname xonotic -mygames "$@"
 
                # if pulseaudio is running: USE IT
                if [ -z "$SDL_AUDIODRIVER" ] && ! [ -n "$WE_HATE_OUR_USERS" ] && ! [ x"`uname`" = x"Darwin" ]; then
@@ -729,6 +760,7 @@ case "$cmd" in
                                                                reportecho4 "--> test failed, postponed"
                                                        fi
                                                else
+                                                       echo "MERGING"
                                                        case ",`repoflags "$d"`," in
                                                                *,svn,*)
                                                                        # we do quite a mess here... luckily we know $org
@@ -813,33 +845,33 @@ case "$cmd" in
        release-engine-win32)
                rsync --exclude=.git -vaSHPAX Xonotic/misc/buildfiles/w32/* Xonotic/
                "$SELF" release-compile win32 \
-                       '"DP_MAKE_TARGET=mingw CC="i586-mingw32-gcc -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dxheaders" WINDRES="i586-mingw32-windres" SDL_CONFIG="$HOME/sdl-win32/SDL-1.2.13/bin/sdl-config"' \
+                       '"DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -Wl,--dynamicbase -Wl,--nxcompat -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dp.win32/include -L$HOME/db.win32/lib" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win32/bin/sdl-config"' \
                        win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
                        debug 'darkplaces.exe:xonotic.exe darkplaces-sdl.exe:xonotic-sdl.exe darkplaces-dedicated.exe:xonotic-dedicated.exe'
                ;;
        release-engine-win64)
                rsync --exclude=.git -vaSHPAX Xonotic/misc/buildfiles/w32/* Xonotic/
                "$SELF" release-compile win32 \
-                       '"DP_MAKE_TARGET=mingw CC="amd64-mingw32-gcc -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dxheaders" WINDRES="amd64-mingw32-windres" SDL_CONFIG="$HOME/sdl-win32/SDL-1.2.13/bin/sdl-config"' \
+                       '"DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -Wl,--dynamicbase -Wl,--nxcompat -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dp.win64/include -L$HOME/db.win64/lib" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win64/bin/sdl-config"' \
                        win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
                        debug 'darkplaces.exe:xonotic-64.exe darkplaces-sdl.exe:xonotic-sdl-64.exe darkplaces-dedicated.exe:xonotic-dedicated-64.exe'
                ;;
        release-engine-osx)
                rsync --exclude=.git -vaSHPAX Xonotic/misc/buildfiles/osx/* Xonotic/
                "$SELF" release-compile osx \
-                       'CC="gcc -g -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"' \
+                       'CC="gcc -g -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -I$HOME/dp.osx/include -L$HOME/dp.osx/lib"' \
                        all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \
                        sdl-debug 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin'
                ;;
        release-engine-linux32)
                "$SELF" release-compile linux32 \
-                       'CC="gcc -m32 -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/darkplaces-deps/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/darkplaces-deps/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/darkplaces-deps/include"' \
+                       'CC="gcc -m32 -g -Wl,--hash-style=sysv -I$HOME/dp.linux32/include -L$HOME/dp.linux32/lib" DP_MODPLUG_STATIC_LIBDIR=$HOME/dp.linux32/lib DP_LINK_TO_LIBJPEG=1' \
                        all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \
                        debug 'darkplaces-glx:Xonotic/xonotic-linux-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux32-dedicated'
                ;;
        release-engine-linux64)
                "$SELF" release-compile linux64 \
-                       'CC="gcc -m64 -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/darkplaces-deps/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/darkplaces-deps/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/darkplaces-deps/include"' \
+                       'CC="gcc -m64 -g -Wl,--hash-style=sysv -I$HOME/dp.linux64/include -L$HOME/dp.linux64/lib" DP_MODPLUG_STATIC_LIBDIR=$HOME/dp.linux64/lib DP_LINK_TO_LIBJPEG=1' \
                        all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \
                        debug 'darkplaces-glx:Xonotic/xonotic-linux-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux64-dedicated'
                ;;