X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=58e1ea40bf8011ec3a6b4d971287cbc4df4f3403;hp=016300b61207f0ca87949e4f8234433475b6e84d;hb=7063351ef7a63e94bea243d009e84c3ba3fc07ea;hpb=324e8f3f9b61e182f4209949a9409a3eeb0873a4 diff --git a/all b/all index 016300b6..58e1ea40 100755 --- a/all +++ b/all @@ -113,11 +113,11 @@ repos_urls=" data/xonotic-data.pk3dir | | master | data/xonotic-maps.pk3dir | | master | data/xonotic-music.pk3dir | | master | -data/xonotic-nexcompat.pk3dir | | master | -mediasource | | master | +data/xonotic-nexcompat.pk3dir | | master | no +mediasource | | master | no darkplaces | | div0-stable | svn fteqcc | git://github.com/Blub/qclib.git | master | -div0-gittools | | master | +div0-gittools | | master | no netradiant | | master | " # todo: in darkplaces, change repobranch to div0-stable @@ -171,12 +171,47 @@ repoflags() echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 4 | tr -d ' ' } -repos=`for d in $repos; do - p="${d%dir}" - if [ x"$p" = x"$d" ] || [ -d "$d" ] || ! { [ -f "$d.no" ] || [ -f "$p" ]; }; then +listrepos() +{ + for d in $repos; do + p="${d%dir}" + f="`repoflags "$d"`" + # if we have the dir, always keep it + if [ -d "$d" ]; then + msg "Repository $d enabled because it already exists" + echo "$d" + continue + fi + # if .yes file exists, always keep it + if [ -f "$d.yes" ]; then + msg "Repository $d enabled by a .yes file" + echo "$d" + continue + fi + # if we have .no file, skip + if [ -f "$d.no" ]; then + msg "Repository $d disabled by a .no file, delete $p.no to enable" + continue + fi + # if we have matching pk3, skip + if [ x"$p" != x"$d" ] && [ -f "$p" ]; then + msg "Repository $d disabled by matching .pk3 file, delete $p or create $d.yes to enable" + continue + fi + # if "no" flag is set, skip + case ",$f," in + *,no,*) + msg "Repository $d disabled by default, create $d.yes to enable" + continue + ;; + esac + # default: enable + msg "Repository $d enabled by default" echo "$d" - fi -done` + done +} + +repos=`listrepos` if [ "$#" = 0 ]; then set -- help @@ -229,6 +264,14 @@ fix_upstream_rebase_mergefail() fix_upstream_rebase } +fix_git_config() +{ + verbose git config core.autocrlf input + if [ -z "`git config push.default`" ]; then + verbose git config push.default current # or is tracking better? + fi +} + case "$cmd" in fix_upstream_rebase) for d in $repos; do @@ -247,11 +290,9 @@ case "$cmd" in if [ -d "$d0/$d" ]; then if $allow_pull; then enter "$d0/$d" verbose + fix_git_config verbose git config remote.origin.url "$url" verbose git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" - - verbose git config remote.origin.autocrlf input - r=`git symbolic-ref HEAD` r=${r#refs/heads/} if git config branch.$r.remote >/dev/null 2>&1; then @@ -274,6 +315,7 @@ case "$cmd" in else verbose git clone "$url" "$d0/$d" enter "$d0/$d" verbose + fix_git_config if [ "$branch" != "master" ]; then verbose git checkout --track -b "$branch" origin/"$branch" fi @@ -285,6 +327,11 @@ case "$cmd" in misc/tools/xonotic-map-compiler-autobuild download ;; checkout|switch) + checkoutflags= + if [ x"$1" = x"-f" ]; then + checkoutflags=-f + shift + fi remote=$1 branch=$2 if [ -z "$branch" ]; then @@ -305,18 +352,18 @@ case "$cmd" in b=$branch if [ -n "$b" ] && git rev-parse "refs/heads/$b" >/dev/null 2>&1; then exists=true - verbose git checkout "$b" + verbose git checkout $checkoutflags "$b" elif [ -n "$b" ] && git rev-parse "refs/remotes/$remote/$b" >/dev/null 2>&1; then exists=true - verbose git checkout --track -b "$b" "$remote/$b" + verbose git checkout $checkoutflags --track -b "$b" "$remote/$b" else b=`repobranch "$d"` if git rev-parse "refs/heads/$b" >/dev/null 2>&1; then exists=true - verbose git checkout "$b" + verbose git checkout $checkoutflags "$b" elif git rev-parse "refs/remotes/$remote/$b" >/dev/null 2>&1; then exists=true - verbose git checkout --track -b "$b" "$remote/$b" + verbose git checkout $checkoutflags --track -b "$b" "$remote/$b" else echo "WTF? Not even branch $b doesn't exist in $d" exit 1 @@ -501,16 +548,10 @@ case "$cmd" in cleanqc=true shift ;; - -n) - cleandp=false - cleanqcc=false - cleanqc=false - shift - ;; *) cleandp=false cleanqcc=false - cleanqc=true # version info + cleanqc=false ;; esac if [ $# -gt 0 ] && [ x"$1" = x"" ]; then @@ -552,13 +593,8 @@ case "$cmd" in MAKEFLAGS=-j$ncpus fi fi - case "`uname`" in - Linux|*BSD) - MAKEFLAGS="$MAKEFLAGS DP_LINK_TO_LIBJPEG=1" - ;; - esac if [ -n "$WE_HATE_OUR_USERS" ]; then - MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw" + MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw LIB_JPEG= CFLAGS_LIBJPEG=" fi fi @@ -593,7 +629,7 @@ case "$cmd" in run) if [ -n "$WE_HATE_OUR_USERS" ]; then client= - export PATH="$d0/misc/buildfiles/win64:$d0/misc/buildfiles/win32:$PATH" + export PATH="$d0/misc/buildfiles/win32:$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" @@ -792,7 +828,7 @@ case "$cmd" in elif yesno "Branch \"$ref\" may want to get merged. Do it?" '{ echo "$logdata"; echo "$diffdata"; } | less -r'; then git checkout "$realbase" org=`git rev-parse HEAD` - if ! git merge --no-ff "$ref" 2>&1 | tee "$t" && ! { git ls-files -u | grep ' 1 ' >/dev/null; }; then + if ! git merge --no-ff "$ref" 2>&1 | tee "$t" && ! { git ls-files -u | grep ' 1 ' >/dev/null; }; then git reset --hard "$org" GIT_NOTES_REF=refs/notes/admin-merge git notes edit -m "Merge failed:$LF`cat "$t"`" "$ref" reportdo4 cat "$t" @@ -856,6 +892,27 @@ case "$cmd" in rm -f "$t" echo "$report" | ssh nexuiz@rm.endoftheinternet.org cat '>>' public_html/xonotic-merge-notes.txt ;; + clean) + force=false + if [ x"$1" = x"-f" ]; then + force=true + fi + for d in $repos; do + verbose cd "$d0/$d" + if $force; then + verbose git reset --hard + #redundant# verbose git checkout-index -fa + fi + case "$d" in + .) + verbose git clean -df + ;; + *) + verbose git clean -xdf + ;; + esac + done + ;; # release building goes here release-prepare) @@ -874,14 +931,18 @@ case "$cmd" in esac verbose rm -rf Xonotic Xonotic*.zip verbose mkdir -p Xonotic - verbose date +%Y%m%d > Xonotic/stamp.txt + if [ -n "$RELEASEDATE" ]; then + verbose echo "$RELEASEDATE" > Xonotic/stamp.txt + else + verbose date +%Y%m%d > Xonotic/stamp.txt + fi verbose git archive --format=tar HEAD -- Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh misc/buildfiles | { verbose cd Xonotic verbose mkdir data fteqcc source source/darkplaces source/fteqcc verbose tar xvf - verbose rm -rf misc/builddeps verbose mv misc/buildfiles/win32/* . || true - verbose mv misc/buildfiles/win64/* . || true + verbose mv misc/buildfiles/win64 bin64 || true verbose mv misc/buildfiles/osx/* . || true verbose rm -rf misc/buildfiles } @@ -914,26 +975,28 @@ case "$cmd" in makeflags=$4 srcdir=$5 targetfiles=$6 - case " $HOSTS_THAT_ARE_MYSELF " in - *\ $host\ *) - verbose rsync --delete -zvaSHPAX "$srcdir"/ "$buildpath/" - verbose eval make -C "$buildpath" clean $maketargets $makeflags - for f in $targetfiles; do - verbose mv "$buildpath/${f%:*}" "${f##*:}" || true - done - ;; - *) - verbose rsync --delete -zvaSHPAX "$srcdir"/ "$host:$buildpath/" - verbose ssh "$host" ". ~/.profile && cd $buildpath && make clean $maketargets $makeflags" - for f in $targetfiles; do - verbose rsync -zvaSHPAX "$host:$buildpath/${f%:*}" "${f##*:}" || true - done - ;; - esac - # now rebrand the binaries... - for f in $targetfiles; do - verbose "$d0/misc/tools/rebrand-darkplaces-engine.sh" "$d0/misc/tools/xonotic.brand" "${f##*:}" || true - done + if [ -n "$targetfiles" ]; then + case " $HOSTS_THAT_ARE_MYSELF " in + *\ $host\ *) + verbose rsync --delete -zvaSHP "$srcdir"/ "$buildpath/" + verbose eval make -C "$buildpath" clean $maketargets $makeflags + for f in $targetfiles; do + verbose mv "$buildpath/${f%:*}" "${f##*:}" || true + done + ;; + *) + verbose rsync --delete -zvaSHP "$srcdir"/ "$host:$buildpath/" + verbose ssh "$host" ". ~/.profile && cd $buildpath && make clean $maketargets $makeflags" + for f in $targetfiles; do + verbose rsync -zvaSHP "$host:$buildpath/${f%:*}" "${f##*:}" || true + done + ;; + esac + # now rebrand the binaries... + for f in $targetfiles; do + verbose "$d0/misc/tools/rebrand-darkplaces-engine.sh" "${XONOTIC_BRAND:-$d0/misc/tools/xonotic.brand}" "${f##*:}" || true + done + fi ;; release-compile) suffix=$1 @@ -947,38 +1010,51 @@ case "$cmd" in ;; release-engine-win32) verbose "$SELF" release-compile win32 \ - 'DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -Wl,--dynamicbase -Wl,--nxcompat -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dp.win32/include -L$HOME/dp.win32/lib" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win32/bin/sdl-config"' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -I$HOME/dp.win32/include -L$HOME/dp.win32/lib" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win32/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=0' \ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \ - debug 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' + release 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' ;; release-engine-win64) verbose "$SELF" release-compile win64 \ - 'DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -Wl,--dynamicbase -Wl,--nxcompat -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dp.win64/include -L$HOME/dp.win64/lib" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win64/bin/sdl-config" LDFLAGS_WINCOMMON=""' \ - win 'fteqcc.exe:Xonotic/fteqcc/fteqcc-64.exe' \ - debug 'darkplaces.exe:Xonotic/xonotic-64.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl-64.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated-64.exe' + 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -I$HOME/dp.win64/include -L$HOME/dp.win64/lib" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG="$HOME/dp.win64/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=0' \ + win 'fteqcc.exe:Xonotic/fteqcc/fteqcc-x64.exe' \ + 'sv-release cl-release' 'darkplaces.exe:Xonotic/xonotic-x64.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated-x64.exe' + # release 'darkplaces.exe:Xonotic/xonotic-x64.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl-x64.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated-x64.exe' ;; - release-engine-osx) + release-engine-osx-sv-sdl) + # gcc on OSX is buggy, needs -fno-reorder-blocks for a release build to succeed verbose "$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 -I$HOME/dp.osx/include -L$HOME/dp.osx/lib"' \ + 'STRIP=: CC="gcc -g -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I$HOME/dp.osx/include -L$HOME/dp.osx/lib -fno-reorder-blocks"' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \ - sdl-debug 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin' + 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' + ;; + release-engine-osx-agl) + # gcc on OSX is buggy, needs -fno-reorder-blocks for a release build to succeed + verbose "$SELF" release-compile osx \ + 'STRIP=: CC="gcc -g -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I$HOME/dp.osx/include -L$HOME/dp.osx/lib -fno-reorder-blocks"' \ + '' '' \ + 'cl-release' 'darkplaces-agl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-agl-bin' + ;; + release-engine-osx) + verbose "$SELF" release-engine-osx-sv-sdl + verbose "$SELF" release-engine-osx-agl ;; release-engine-linux32) verbose "$SELF" release-compile linux32 \ - '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' \ + 'STRIP=: 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 LIB_JPEG=$HOME/dp.linux32/lib/libjpeg.a' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \ - debug 'darkplaces-glx:Xonotic/xonotic-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux32-dedicated' + release 'darkplaces-glx:Xonotic/xonotic-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux32-dedicated' ;; release-engine-linux64) verbose "$SELF" release-compile linux64 \ - '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' \ + 'STRIP=: 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 LIB_JPEG=$HOME/dp.linux64/lib/libjpeg.a' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \ - debug 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' + release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' ;; release-engine) + verbose "$SELF" release-engine-win64 + verbose "$SELF" release-engine-osx verbose "$SELF" release-engine-win32 - # "$SELF" release-engine-win64 - # "$SELF" release-engine-osx verbose "$SELF" release-engine-linux32 verbose "$SELF" release-engine-linux64 ;; @@ -1128,7 +1204,7 @@ case "$cmd" in ;; release-zip) stamp=`cat Xonotic/stamp.txt` - verbose zip -9yr Xonotic-common.zip \ + verbose zip -9yr Xonotic-$stamp-common.zip \ Xonotic/*.dll \ Xonotic/source/*/ \ Xonotic/Docs \ @@ -1139,26 +1215,24 @@ case "$cmd" in Xonotic/xonotic-* \ Xonotic/xonotic.exe \ Xonotic/data/font-nimbussansl-$stamp.pk3 - verbose cp Xonotic-common.zip Xonotic.zip - verbose zip -0yr Xonotic.zip \ + verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip + verbose zip -0yr Xonotic-$stamp.zip \ Xonotic/data/xonotic-$stamp-data.pk3 \ Xonotic/data/xonotic-$stamp-maps.pk3 \ Xonotic/data/xonotic-$stamp-music.pk3 \ Xonotic/data/xonotic-$stamp-nexcompat.pk3 - verbose cp Xonotic-common.zip Xonotic-low.zip - verbose zip -0yr Xonotic-low.zip \ + verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp-low.zip + verbose zip -0yr Xonotic-$stamp-low.zip \ Xonotic/data/xonotic-$stamp-data-low.pk3 \ Xonotic/data/xonotic-$stamp-maps-low.pk3 \ - Xonotic/data/xonotic-$stamp-music-low.pk3 \ - Xonotic/data/xonotic-$stamp-nexcompat.pk3 - verbose cp Xonotic-common.zip Xonotic-lowdds.zip - verbose zip -0yr Xonotic-lowdds.zip \ + Xonotic/data/xonotic-$stamp-music-low.pk3 + verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp-lowdds.zip + verbose zip -0yr Xonotic-$stamp-lowdds.zip \ Xonotic/data/xonotic-$stamp-data-lowdds.pk3 \ Xonotic/data/xonotic-$stamp-maps-lowdds.pk3 \ - Xonotic/data/xonotic-$stamp-music-low.pk3 \ - Xonotic/data/xonotic-$stamp-nexcompat.pk3 - verbose mv Xonotic-common.zip Xonotic-high.zip - verbose zip -0yr Xonotic-high.zip \ + Xonotic/data/xonotic-$stamp-music-low.pk3 + verbose mv Xonotic-$stamp-common.zip Xonotic-$stamp-high.zip + verbose zip -0yr Xonotic-$stamp-high.zip \ Xonotic/data/xonotic-$stamp-data-raw.pk3 \ Xonotic/data/xonotic-$stamp-maps-raw.pk3 \ Xonotic/data/xonotic-$stamp-music.pk3 \