]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - all
new attempt to ignore SIGTRAP :(
[xonotic/xonotic.git] / all
diff --git a/all b/all
index ec4ad52e74f475be21ed748f50b1e9796b68335d..c912afa02533670096b8e41374c105e2bb3a738f 100755 (executable)
--- a/all
+++ b/all
@@ -269,6 +269,19 @@ fix_upstream_rebase()
        if [ -z "$r_me" ] || [ -z "$r_other" ]; then
                return
        fi
+
+       # one of the two sides of the merge should be remote upstream, or all is fine
+       r_r=`git symbolic-ref HEAD`
+       r_r=${r_r#refs/heads/}
+       r_rem=`git config "branch.$r_rem.remote" || $ECHO origin`
+       r_bra=`git config "branch.$r_bra.merge" || $ECHO "$r_r"`
+       r_bra=${r_bra#refs/heads/}
+       if [ x"$r_me" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+               if [ x"$r_other" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+                       return
+               fi
+       fi
+
        r_base=`git merge-base "$r_me" "$r_other"`
 
        # no merge-base? upstream did filter-branch
@@ -368,15 +381,28 @@ bestmirror()
 
        bestin=
        bestt=
-       for in in "$@"; do
+       for mir in "$@"; do
+               case "$mir" in
+                       *:*)
+                               in=${mir%%:*}
+                               op=${mir#*:}
+                               ;;
+                       *)
+                               in=$mir
+                               op=
+                               ;;
+               esac
                m=$pre$in$suf
                if t=`mirrorspeed "$m"`; then
-                       msg "$m -> $t ticks"
                        if [ -n "$t" ]; then
-                               if [ -z "$bestt" ] || [ "$t" -lt "$bestt" ]; then
+                               tt=$(($t$op)) # fudge factor
+                               msg "$m -> $t$op = $tt ticks"
+                               if [ -z "$bestt" ] || [ "$tt" -lt "$bestt" ]; then
                                        bestin=$in
-                                       bestt=$t
+                                       bestt=$tt
                                fi
+                       else
+                               msg "$m -> error"
                        fi
                else
                        msg "$m -> FAIL"
@@ -489,6 +515,7 @@ case "$cmd" in
                                case "$2" in
                                        nl) ;;
                                        de) ;;
+                                       us) ;;
                                        best) ;;
                                        default) ;;
                                        *)
@@ -496,6 +523,7 @@ case "$cmd" in
                                                msg "Possible locations for the -l option:"
                                                msg "  nl (Netherlands, run by merlijn)"
                                                msg "  de (Germany, run by divVerent)"
+                                               msg "  us (United States of America, run by detrate)"
                                                msg "  best (find automatically)"
                                                msg "  default (currently nl)"
                                                exit 1
@@ -509,12 +537,27 @@ case "$cmd" in
                        fi
                        shift
                done
+               case "$location" in
+                       current)
+                               if [ x"`git config xonotic.all.mirrorselection 2>/dev/null || true`" != x"done" ]; then
+                                       git config xonotic.all.mirrorselection done
+                                       location=best
+                               fi
+                               ;;
+               esac
                case "$location" in
                        best)
+                               # if we fetched via ssh://, switch to git:// for fetching and keep using ssh:// for pushing
+                               case "$base" in
+                                       ssh://*)
+                                               pushbase=$base
+                                               base=git://git.xonotic.org/xonotic/
+                                               ;;
+                               esac
                                newbase=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,:// .git.xonotic.org/,"`
                                case "$newbase" in
                                        *\ *)
-                                               if location=`bestmirror $newbase"xonotic.git" de nl`; then
+                                               if location=`bestmirror $newbase"xonotic.git" de us nl:'*6/5'`; then # 20% malus to the NL server to not overload it too much
                                                        :
                                                else
                                                        location=current
@@ -800,7 +843,14 @@ case "$cmd" in
                                        ;;
                                -r)
                                        debug=release
-                                       export CC="$CC -g -mtune=native -march=native"
+                                       export CC="$CC -g"
+                                       case "`$CC -dumpversion`" in
+                                               [5-9]*|[1-9][0-9]*|4.[3-9]*|4.[1-9][0-9]*)
+                                                       # gcc 4.3 or higher
+                                                       # -march=native is broken < 4.3
+                                                       export CC="$CC -mtune=native -march=native"
+                                                       ;;
+                                       esac
                                        if [ -n "$WE_HATE_OUR_USERS" ]; then
                                                export CC="$CC -fno-common"
                                        fi
@@ -824,7 +874,7 @@ case "$cmd" in
                                        TARGETS="sv-$debug sdl-$debug"
                                        ;;
                        esac
-                       export CC="$CC -I$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks"
+                       export CC="$CC -fno-reorder-blocks -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
@@ -885,20 +935,23 @@ case "$cmd" in
                        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/
                        else
                                case "`uname`" in
                                        Linux)
                                                case `uname -m` in
                                                        x86_64)
-                                                               verbose cp "$d0/misc/builddeps/dp.linux64/lib/libd0_blind_id".* .libs/
-                                                               verbose cp "$d0/misc/builddeps/dp.linux64/lib/libgmp".* .libs/
-                                                               MAKEFLAGS="$MAKEFLAGS DP_CRYPTO_STATIC_LIBDIR=../misc/builddeps/dp.linux64/lib/"
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux64/lib/libd0_blind_id".* .libs/
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux64/lib/libd0_rijndael".* .libs/
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux64/lib/libgmp".* .libs/
+                                                               MAKEFLAGS="$MAKEFLAGS DP_CRYPTO_STATIC_LIBDIR=../misc/builddeps/dp.linux64/lib/ DP_CRYPTO_RIJNDAEL_STATIC_LIBDIR=../misc/builddeps/dp.linux64/lib/"
                                                                ;;
                                                        *86)
-                                                               verbose cp "$d0/misc/builddeps/dp.linux32/lib/libd0_blind_id".* .libs/
-                                                               verbose cp "$d0/misc/builddeps/dp.linux32/lib/libgmp".* .libs/
-                                                               MAKEFLAGS="$MAKEFLAGS DP_CRYPTO_STATIC_LIBDIR=../misc/builddeps/dp.linux32/lib/"
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux32/lib/libd0_blind_id".* .libs/
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux32/lib/libd0_rijndael".* .libs/
+                                                               #verbose cp "$d0/misc/builddeps/dp.linux32/lib/libgmp".* .libs/
+                                                               MAKEFLAGS="$MAKEFLAGS DP_CRYPTO_STATIC_LIBDIR=../misc/builddeps/dp.linux32/lib/ DP_CRYPTO_RIJNDAEL_STATIC_LIBDIR=../misc/builddeps/dp.linux32/lib/"
                                                                ;;
                                                        *)
                                                                compiled0=true
@@ -907,6 +960,7 @@ case "$cmd" in
                                                ;;
                                        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=true
@@ -999,9 +1053,9 @@ case "$cmd" in
 
                binary=$1
 
-               if [ -n "$USE_GDB" ]; then
+               if [ x"$USE_GDB" = x"yes" ]; then
                        set -- gdb --args "$@"
-               elif which gdb >/dev/null 2>&1; then
+               elif [ x"$USE_GDB" != x"no" ] && which gdb >/dev/null 2>&1; then
                        set -- gdb --batch -x savecore.gdb --args "$@"
                elif which catchsegv >/dev/null 2>&1; then
                        set -- catchsegv "$@"
@@ -1019,6 +1073,7 @@ case "$cmd" in
                                $ECHO "The core dump can be examined later by"
                                $ECHO "  gdb $binary xonotic.core"
                        fi
+                       exit 1
                fi
                ;;
        each|foreach)
@@ -1358,10 +1413,10 @@ case "$cmd" in
                        if $rmuntracked; then
                                case "$d" in
                                        .)
-                                               verbose git clean -df
+                                               verbose git clean -df || true
                                                ;;
                                        *)
-                                               verbose git clean -xdf
+                                               verbose git clean -xdf || true
                                                ;;
                                esac
                        fi
@@ -1371,8 +1426,8 @@ case "$cmd" in
                                                verbose git branch -D "${B#refs/heads/}"
                                        fi
                                done
-                               git rev-parse refs/heads/master >/dev/null 2>&1 || verbose git branch -t master origin/master || true
-                               git rev-parse "refs/heads/`repobranch "$d"`" >/dev/null 2>&1 || verbose git branch -t "`repobranch "$d"`" origin/"`repobranch "$d"`" || true
+                               git rev-parse refs/heads/master >/dev/null 2>&1 || verbose git branch --track master origin/master || true
+                               git rev-parse "refs/heads/`repobranch "$d"`" >/dev/null 2>&1 || verbose git branch --track "`repobranch "$d"`" origin/"`repobranch "$d"`" || true
                        fi
                        checkself "$cmd" "$@"
                done