X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=75454a32e56b79a78b0a8ca79547486805160769;hp=403c4583fc99c1660057dbb224a5e007b05a981f;hb=fe3038f654ba826f19bf085d81ea767a98c8e6bf;hpb=0fa920d0357af3075fe4d859eea6845b3ee1f40e diff --git a/all b/all index 403c4583..75454a32 100755 --- a/all +++ b/all @@ -224,10 +224,9 @@ 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" + # if we have .no file, skip + if [ -f "$d.no" ]; then + msg "Repository $d disabled by a .no file, delete $d.no to enable" continue fi # if .yes file exists, always keep it @@ -236,9 +235,10 @@ listrepos() $ECHO "$d" continue fi - # if we have .no file, skip - if [ -f "$d.no" ]; then - msg "Repository $d disabled by a .no file, delete $d.no to enable" + # 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 we have matching pk3, skip @@ -267,6 +267,59 @@ fi cmd=$1 shift +case "$cmd" in + release|release-*) + export LC_ALL=C + + release_args="$cmd $*" + msg "*** $release_args: start" + release_starttime=`date +%s` + release_end() + { + release_endtime=`date +%s` + release_deltatime=$(($release_endtime - $release_starttime)) + msg "*** $release_args: $release_deltatime seconds" + } + trap release_end EXIT + release_tempstarttime=$release_starttime + release_timereport() + { + release_endtime=`date +%s` # RELEASE NOW!!! + if [ -n "$*" ]; then + release_deltatime=$(($release_endtime - $release_tempstarttime)) + msg "**** $release_args: $*: $release_deltatime seconds" + fi + release_tempstarttime=$release_endtime + } + release_git_extract_dir() + { + release_src=$1; shift + release_dst=$1; shift + # try to create a hardlink + if ln -f "$release_src/.git/HEAD" "$release_dst/.hardlink-test"; then + rm -f "$release_dst/.hardlink-test" + { + verbose cd "$release_src" + git ls-files HEAD -- "$@" + } | { + while IFS= read -r F; do + case "$F" in */*) mkdir -p "$release_dst/${F%/*}" ;; esac + verbose ln -f "$release_src/$F" "$release_dst/$F" + done + } + else + { + verbose cd "$release_src" + verbose git archive --format=tar HEAD -- "$@" + } | { + verbose cd "$release_dst" + verbose tar xvf - + } + fi + } + ;; +esac + fix_upstream_rebase() { if [ -z "$r_me" ] || [ -z "$r_other" ]; then @@ -327,6 +380,10 @@ fix_upstream_rebase_mergefail() fix_git_config() { + if ! [ -f ".git/config" ]; then + $ECHO "Not a git repository. Bailing out to not cause damage." + exit 1 + fi verbose git config remote.origin.url "$1" if [ -n "$2" ]; then verbose git config remote.origin.pushurl "$2" @@ -349,20 +406,51 @@ fix_git_config() verbose git config filter.mapclean.smudge "cat" } +mkzipr() +{ + archive=$1; shift + case "$RELEASETYPE" in + release) + sevenzipflags=-mx=9 + zipflags=-9 + ;; + *) + sevenzipflags=-mx=1 + zipflags=-1 + ;; + esac + find "$@" -exec touch -d "2001-01-01 01:01:01 +0000" {} \+ # ugly hack to make the pk3 files rsync-friendly + ziplist=`mktemp` + find "$@" -xtype f \( -executable -or -type l \) -print > "$ziplist" + 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true + zip $zipflags -y -@<"$ziplist" "$archive" || true + rm -f "$ziplist" +} + mkzip() { - archive=$1 - shift + archive=$1; shift + case "$RELEASETYPE" in + release) + sevenzipflags=-mx=9 + zipflags=-9 + ;; + *) + sevenzipflags=-mx=1 + zipflags=-1 + ;; + esac ziplist=`mktemp` find "$@" -xtype f \( -executable -or -type l \) -print > "$ziplist" - 7za a -tzip -mx=9 -x@"$ziplist" "$archive" "$@" || true - zip -9y -@<"$ziplist" "$archive" || true + 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true + zip $zipflags -y -@<"$ziplist" "$archive" || true rm -f "$ziplist" } mkzip0() { - zip -0ry "$@" + archive=$1; shift + zip -0ry "$archive" "$@" } mirrorspeed() @@ -379,6 +467,7 @@ bestmirror() suf=$1; shift if ! { time -p true; } >/dev/null 2>&1; then + msg "Cannot do timing in this shell" return 1 fi @@ -431,7 +520,7 @@ case "$cmd" in url=`repourl "$d"` pushurl=`repopushurl "$d"` branch=`repobranch "$d"` - if [ -d "$d0/$d" ]; then + if [ -f "$d0/$d/.git/config" ]; then verbose cd "$d0/$d" fix_git_config "$url" "$pushurl" cd "$d0" @@ -494,29 +583,30 @@ case "$cmd" in ;; update|pull) allow_pull=true - fix_config=false location=current + oldbase=$base + oldpushbase=$pushbase + # transition old URLs + if [ x"$base" = x"ssh://xonotic@push.git.xonotic.org/" ]; then + base=ssh://xonotic@push.git.xonotic.org/ + fi while :; do if [ x"$1" = x"-N" ]; then allow_pull=false elif [ x"$1" = x"-p" ]; then - fix_config=true - pushbase=ssh://xonotic@git.xonotic.org/ + pushbase=ssh://xonotic@push.git.xonotic.org/ elif [ x"$1" = x"-ps" ]; then - fix_config=true - pushbase=ssh://xonotic@git.xonotic.org/ + pushbase=ssh://xonotic@push.git.xonotic.org/ elif [ x"$1" = x"-ph" ]; then - fix_config=true - pushbase=http://git.xonotic.org/login/xonotic/ + pushbase=http://push.git.xonotic.org/login/xonotic/ elif [ x"$1" = x"-s" ]; then - fix_config=true - base=ssh://xonotic@git.xonotic.org/ + base=ssh://xonotic@push.git.xonotic.org/ elif [ x"$1" = x"-g" ]; then - fix_config=true base=git://git.xonotic.org/xonotic/ + location=best elif [ x"$1" = x"-h" ]; then - fix_config=true base=http://git.xonotic.org/xonotic/ + location=best elif [ x"$1" = x"-l" ]; then case "$2" in nl) ;; @@ -535,7 +625,6 @@ case "$cmd" in exit 1 ;; esac - fix_config=true location=$2 shift else @@ -546,7 +635,6 @@ case "$cmd" in 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 ;; @@ -564,7 +652,7 @@ case "$cmd" in case "$newbase" in *\ *) if location=`bestmirror $newbase"xonotic.git" de us nl:'*6/5'`; then # 20% malus to the NL server to not overload it too much - : + git config xonotic.all.mirrorselection done else location=current fi @@ -593,24 +681,23 @@ case "$cmd" in esac if [ -n "$location" ]; then base=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,://$location.git.xonotic.org/,"` - pushbase=`$ECHO "$pushbase" | sed "s,://\(.*\.\)\?git.xonotic.org/,://$location.git.xonotic.org/,"` else base=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,://git.xonotic.org/,"` - pushbase=`$ECHO "$pushbase" | sed "s,://\(.*\.\)\?git.xonotic.org/,://git.xonotic.org/,"` fi - if $fix_config; then + pushbase=`$ECHO "$pushbase" | sed "s,://\(.*\.\)\?git.xonotic.org/,://xonotic@push.git.xonotic.org/,"` + if [ x"$base" != x"$oldbase" ] || [ x"$pushbase" != x"$oldpushbase" ]; then url=`repourl .` pushurl=`repopushurl .` fix_git_config "$url" "$pushurl" - fi - if $allow_pull || $fix_config; then + "$SELF" fix_config + elif $allow_pull; then "$SELF" fix_config fi for d in $repos; do url=`repourl "$d"` pushurl=`repopushurl "$d"` branch=`repobranch "$d"` - if [ -d "$d0/$d" ]; then + if [ -f "$d0/$d/.git/config" ]; then # if we have .no file, skip if [ -f "$d0/$d.no" ]; then msg "Repository $d disabled by a .no file, delete $d.no to enable; thus, not updated" @@ -638,6 +725,14 @@ case "$cmd" in cd "$d0" fi else + if [ -d "$d0/$d" ]; then + if yesno "$d0/$d is in the way, get rid of it and reclone?"; then + verbose rm -rf "$d0/$d" + else + echo "Note: $d0/$d will stay broken." + continue + fi + fi verbose git clone "$url" "$d0/$d" enter "$d0/$d" verbose fix_git_config "$url" "$pushurl" @@ -687,10 +782,8 @@ case "$cmd" in else b=`repobranch "$d"` if git rev-parse "refs/heads/$b" >/dev/null 2>&1; then - exists=true verbose git checkout $checkoutflags "$b" elif git rev-parse "refs/remotes/$remote/$b" >/dev/null 2>&1; then - exists=true verbose git checkout $checkoutflags --track -b "$b" "$remote/$b" else $ECHO "WTF? Not even branch $b doesn't exist in $d" @@ -858,10 +951,10 @@ case "$cmd" in -r|-p) case "$1" in -p) - debug=release + debug=profile ;; -r) - debug=profile + debug=release ;; esac export CC="$CC -g" @@ -869,7 +962,9 @@ case "$cmd" 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" + if $CC -mtune=native -march=native misc/tools/conftest.c -o conftest >/dev/null 2>&1; then + export CC="$CC -mtune=native -march=native" + fi ;; esac if [ -n "$WE_HATE_OUR_USERS" ]; then @@ -895,7 +990,7 @@ case "$cmd" in TARGETS="sv-$debug sdl-$debug" ;; esac - 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" + export CC="$CC -fno-reorder-blocks -I$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks" else TARGETS="sv-$debug cl-$debug sdl-$debug" fi @@ -939,7 +1034,7 @@ case "$cmd" in fi if [ -z "$MAKEFLAGS" ]; then if [ -f /proc/cpuinfo ]; then - ncpus=$((`grep -c '^processor :' /proc/cpuinfo`+0)) + ncpus=$((`grep -c '^processor :' /proc/cpuinfo || true`+0)) if [ $ncpus -gt 1 ]; then MAKEFLAGS=-j$ncpus fi @@ -949,6 +1044,33 @@ case "$cmd" in fi fi + + if ! verbose $CC misc/tools/conftest.c -o conftest; then + msg "" + msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + msg "~~~~~~~~~~ COMPILER ~~~~~~~~~~" + msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + msg "~~~~~~~~~~~~~~_...._~~~~~~~~~~" + msg "~~~~~~~~~~~,-' \\\`-._~~~~~~" + msg "~~~~~~~~~~/ --. >< \\~~~~~" + msg "~~~~~~~~~/ (*)> -<: \\~~~~" + msg "~~~~~~~~~( ^~-' (*) )~~~~" + msg "~~~~~~~~~\\ ^+-_/ |~~~~" + msg "~~~~~~~~~~\\ {vvv} |~~~~" + msg "~~~~~~~~~~,\\ , {^^^},/~~~~~" + msg "~~~~~~~~,/ \`---.....-'~~W~~~~" + msg "~~~~~~,/ \\_____/_\\_W~~/~~~~~" + msg "~~~~~/ /~~~\\__/~~~~~~" + msg "~~~~/ /~~~~~~~~~~~~~~" + msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + msg "~~~~~~~ Y U NO COMPILE ~~~~~~~" + msg "~~~~~~~~~~~~ CODE ~~~~~~~~~~~~" + msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + msg "" + exit 1 + fi + rm -f conftest + verbose cd "$d0/d0_blind_id" if ! $compiled0; then # compilation of crypto library failed @@ -1036,8 +1158,8 @@ case "$cmd" in client= export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH" elif [ x"`uname`" = x"Darwin" ]; then - export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/MacOS:$d0/d0_blind_id/.libs" - export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks" + 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" @@ -1061,7 +1183,7 @@ case "$cmd" in exit 1 fi fi - set -- "darkplaces/darkplaces$client" -xonotic -mygames "$@" + 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 @@ -1522,51 +1644,31 @@ case "$cmd" in 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 key_0.d0pk | { + release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh misc/buildfiles key_0.d0pk COPYING GPL-2 GPL-3 + ( verbose cd Xonotic verbose mkdir data fteqcc source source/darkplaces source/fteqcc source/d0_blind_id mapping - verbose tar xvf - verbose rm -rf misc/builddeps - verbose mv misc/buildfiles/win32/* . || true + verbose mv misc/buildfiles/win32 bin32 || true + verbose mv bin32/SDL.dll . || true verbose mv misc/buildfiles/win64 bin64 || true verbose mv misc/buildfiles/osx/* . || true verbose rm -rf misc/buildfiles verbose rm -rf misc/pki - } - { - verbose cd darkplaces - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/source/darkplaces - verbose tar xvf - - } - { - verbose cd fteqcc - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/source/fteqcc - verbose tar xvf - - } - { - verbose cd data/xonotic-data.pk3dir - verbose git archive --format=tar HEAD -- qcsrc Makefile - } | { - verbose cd Xonotic/source - verbose tar xvf - - } - { - verbose cd d0_blind_id - verbose git archive --format=tar HEAD - } | { + ) + release_git_extract_dir "darkplaces" "Xonotic/source/darkplaces" . + release_git_extract_dir "fteqcc" "Xonotic/source/fteqcc" . + release_git_extract_dir "data/xonotic-data.pk3dir" "Xonotic/source" qcsrc Makefile + release_git_extract_dir "d0_blind_id" "Xonotic/source/d0_blind_id" . + ( verbose cd Xonotic/source/d0_blind_id - verbose tar xvf - verbose sh autogen.sh - } + ) rm -f Xonotic/key_15.d0pk { verbose cd Xonotic/mapping - verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20110223.tar.bz2 - verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20110223-win32-7z.exe + verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20110819.tar.bz2 + verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20110819-win32-7z.exe for X in *-7z.exe; do 7za x "$X" rm -f "$X" @@ -1602,7 +1704,7 @@ case "$cmd" in *) verbose rsync --delete -zLvaSHP "$srcdir"/ "$host:$buildpath/" verbose rsync --delete -zLvaSHP "$depsdir"/ "$host:$buildpath.deps/" - verbose ssh "$host" "ln -snf $buildpath.deps $buildpath/.deps && cd $buildpath && nice -`nice` make clean $maketargets $makeflags" + verbose ssh "$host" "[ -f /etc/profile ] && . /etc/profile; [ -f ~/.profile ] && . ~/.profile; export LC_ALL=C; ln -snf $buildpath.deps $buildpath/.deps && cd $buildpath && nice -`nice` make clean $maketargets $makeflags" for f in $targetfiles; do verbose rsync -zvaSHP "$host:$buildpath/${f%:*}" "${f##*:}" || true done @@ -1614,15 +1716,6 @@ case "$cmd" in case "${f##*:}" in Xonotic/xonotic*.exe) verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "${f##*:}" - ( - d=`mktemp -d -t rebrand.XXXXXX` - cd "$d" - $ECHO "-mygames" > darkplaces.opt - zip -9r darkplaces.zip darkplaces.opt - cat darkplaces.zip - cd "$d0" - rm -rf "$d" - ) >> "${f##*:}" ;; esac done @@ -1641,44 +1734,40 @@ case "$cmd" in ;; release-engine-win32) verbose "$SELF" release-compile win32 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -march=i686 -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=0' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -march=i686 -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=0' \ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \ '' '' verbose "$SELF" release-compile win32 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-g++ -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=1' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-g++ -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=1' \ '' '' \ 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 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=0' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=0' \ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc-x64.exe' \ 'sv-release sdl-release' 'darkplaces-sdl.exe:Xonotic/xonotic-x64-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-x64-dedicated.exe' verbose "$SELF" release-compile win64 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="x86_64-w64-mingw32-g++ -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=1' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="x86_64-w64-mingw32-g++ -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=1' \ '' '' \ cl-release 'darkplaces.exe:Xonotic/xonotic-x64.exe' ;; release-engine-osx) # 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 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ + 'STRIP=: CC="gcc -g1 -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \ - 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' - 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.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ - '' '' \ - 'cl-release' 'darkplaces-agl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-agl-bin' + 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' ;; release-engine-linux32) verbose "$SELF" release-compile linux32 \ - 'STRIP=: CC="gcc -m32 -march=i686 -g -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ + 'STRIP=: CC="gcc -m32 -march=i686 -g1 -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \ 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 \ - 'STRIP=: CC="gcc -m64 -g -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ + 'STRIP=: CC="gcc -m64 -g1 -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \ release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' ;; @@ -1762,6 +1851,29 @@ case "$cmd" in verbose export del_src=true find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh ;; + release-buildpk3-transform-mapping) + dir=$1 + verbose cd "$dir" + # remove stuff radiant has no use for + verbose find . -name \*_norm.\* -exec rm -f {} \; + verbose find . -name \*_bump.\* -exec rm -f {} \; + verbose find . -name \*_glow.\* -exec rm -f {} \; + verbose find . -name \*_gloss.\* -exec rm -f {} \; + verbose find . -name \*_pants.\* -exec rm -f {} \; + verbose find . -name \*_shirt.\* -exec rm -f {} \; + verbose find . -name \*_reflect.\* -exec rm -f {} \; + verbose find . -not \( -name \*.tga -o -name \*.png -o -name \*.jpg \) -exec rm -f {} \; + # texture: convert to jpeg and dds + # music: reduce bitrate + verbose export do_jpeg=true + verbose export jpeg_qual_rgb=80 + verbose export jpeg_qual_a=97 + verbose export do_dds=false + verbose export do_ogg=true + verbose export ogg_qual=1 + verbose export del_src=true + find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh + ;; release-buildpk3) src=$1 dst=$2 @@ -1773,15 +1885,12 @@ case "$cmd" in dst="$PWD/$dst" ;; esac + release_timereport verbose rm -rf Xonotic/temp + release_timereport "deleted temp directory" verbose mkdir -p Xonotic/temp - { - verbose cd "$src" - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/temp - verbose tar xvf - - } + release_git_extract_dir "$src" "Xonotic/temp" . + release_timereport "extracted data" verbose cd Xonotic/temp if [ x"$src" = x"data/xonotic-data.pk3dir" ]; then verbose cp ../source/progs.dat . @@ -1800,11 +1909,22 @@ case "$cmd" in versionstr="$versionstr$RELEASETYPE" ;; esac - verbose sed -i " - s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; - s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/; - s/^gameversion_max [0-9]*/gameversion_max $(( ($gv / 100) * 100 + 199 ))/; - " defaultXonotic.cfg + if [ $gv -lt 9900 ]; then + # pre-1.0: compatible with any other pre-1.0 + verbose sed " + s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; + s/^gameversion_min [0-9]*/gameversion_min 0/; + s/^gameversion_max [0-9]*/gameversion_max 9999/; + " < defaultXonotic.cfg > defaultXonotic.cfg.new + else + # >= 1.0 + verbose sed " + s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; + s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/; + s/^gameversion_max [0-9]*/gameversion_max $(( ($gv / 100) * 100 + 199 ))/; + " < defaultXonotic.cfg > defaultXonotic.cfg.new + fi + mv defaultXonotic.cfg.new defaultXonotic.cfg case "$RELEASETYPE" in release) echo "" >> defaultXonotic.cfg @@ -1814,6 +1934,7 @@ case "$cmd" in esac ( verbose cd gfx/menu/luminos + verbose rm -f background_l2.tga background_ingame_l2.tga verbose cp "$d0"/mediasource/gfx/menu/luminos_versionbuilder/background_l2.svg . verbose "$d0"/mediasource/gfx/menu/luminos_versionbuilder/versionbuilder "$versionstr" verbose rm background_l2.svg @@ -1828,10 +1949,14 @@ case "$cmd" in done fi verbose export git_src_repo="$d0/$src" # skip hash-object + release_timereport "processed data" verbose "$SELF" release-buildpk3-transform-$transform "Xonotic/temp" - verbose mkzip "../../$dst" * + release_timereport "transformed data" + verbose mkzipr "../../$dst" * + release_timereport "zipped data" verbose cd ../.. verbose rm -rf Xonotic/temp + release_timereport "deleted temp directory again" ;; release-buildpk3s) stamp=`cat Xonotic/stamp.txt` @@ -1856,7 +1981,7 @@ case "$cmd" in verbose "$SELF" release-buildpk3s data/font-nimbussansl.pk3dir raw '' verbose "$SELF" release-buildpk3s data/font-xolonium.pk3dir raw '' verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir normal '-high' low '-low' normaldds '' - verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normal '-high' low '-low' normaldds '' + verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normal '-high' low '-low' normaldds '' mapping '-mapping' verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' low '-low' verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normal '-high' normaldds '' ;; @@ -1878,17 +2003,22 @@ case "$cmd" in crypto_libs=`find Xonotic -name \*d0_rijndael\*.so -o -name \*d0_rijndael\*.dylib -o -name \*d0_rijndael\*.dll -o -name \*d0_rijndael\*.c` if [ -n "$crypto_libs" ]; then verbose mkzip Xonotic-$stamp-crypto.zip \ - $crypto_libs + $crypto_libs \ + Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 rm -f $crypto_libs fi # build the archives + verbose mkzip Xonotic-$stamp-enginesource.zip \ + Xonotic/source/darkplaces/ \ + Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 + verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-engine.zip verbose mkzip Xonotic-$stamp-engine.zip \ Xonotic/*.dll \ + Xonotic/bin32/*.dll \ Xonotic/bin64/*.dll \ Xonotic/*.app \ Xonotic/xonotic-* \ - Xonotic/xonotic.exe \ - Xonotic/source/darkplaces/ + Xonotic/xonotic.exe verbose cp Xonotic-$stamp-engine.zip Xonotic-$stamp-common.zip verbose mkzip Xonotic-$stamp-common.zip \ Xonotic/source/fteqcc/ \ @@ -1900,6 +2030,11 @@ case "$cmd" in Xonotic/key_0.d0pk \ Xonotic/data/font-nimbussansl-$stamp.pk3 \ Xonotic/data/font-xolonium-$stamp.pk3 + verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-source.zip + verbose mkzip Xonotic-$stamp-source.zip \ + Xonotic/source/fteqcc/ \ + Xonotic/source/qcsrc/ \ + Xonotic/misc/logos verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip verbose mkzip0 Xonotic-$stamp.zip \ Xonotic/data/xonotic-$stamp-data.pk3 \ @@ -1912,6 +2047,8 @@ case "$cmd" in Xonotic/data/xonotic-$stamp-maps-low.pk3 \ Xonotic/data/xonotic-$stamp-music-low.pk3 verbose mv Xonotic-$stamp-common.zip Xonotic-$stamp-high.zip + verbose mkzip Xonotic-$stamp-high.zip \ + Xonotic/mapping verbose mkzip0 Xonotic-$stamp-high.zip \ Xonotic/data/xonotic-$stamp-data-high.pk3 \ Xonotic/data/xonotic-$stamp-maps-high.pk3 \ @@ -1920,7 +2057,7 @@ case "$cmd" in verbose mkzip Xonotic-$stamp-mappingsupport.zip \ Xonotic/mapping verbose mkzip0 Xonotic-$stamp-mappingsupport.zip \ - Xonotic/data/xonotic-$stamp-maps-low.pk3 # TODO add a Radiant build + Xonotic/data/xonotic-$stamp-maps-mapping.pk3 ;; release) verbose "$SELF" release-prepare @@ -1941,13 +2078,12 @@ case "$cmd" in $ECHO " $SELF checkout|switch /" $ECHO " $SELF clean [-m] [-f | -fu | -fU] [-r] [-D]" $ECHO " $SELF clean --reclone" - $ECHO " $SELF compile [-c] [-r|-p] [-0]" + $ECHO " $SELF compile [-c] [-r|-p] [-0] [sdl|glx|wgl|agl|dedicated]" $ECHO " $SELF each|foreach [-k] command..." $ECHO " $SELF fix_upstream_rebase" $ECHO " $SELF keygen" $ECHO " $SELF merge" $ECHO " $SELF push|commit [-s]" - $ECHO " $SELF release" $ECHO " $SELF restore-patches" $ECHO " $SELF run [sdl|glx|wgl|agl|dedicated] options..." $ECHO " $SELF save-patches"