]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/all/release.subr
autobuild: include gmqcc
[xonotic/xonotic.git] / misc / tools / all / release.subr
index 057175c619413bf9adcebaa17bc47559a82f72a3..c367ae7658fb54ee235dd7dc9ddf23dbf85f02d7 100644 (file)
@@ -52,33 +52,40 @@ release_common()
        mkzipr()
        {
                archive=$1; shift
+
+               # get rid of this hack once we have done large enough changes
+               # to be no longer rsync compatible (and then enable the below
+               # code)
                sevenzipflags=-mx=9
                zipflags=-9
                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"
+               find "$@" -xtype f \( -executable -or -type l \) -print | sed 's,\([./][^./]*$\),\1 \1,' | sort -k2 | cut -d\  -f1 > "$ziplist"
                7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true
                zip         $zipflags -y   -@<"$ziplist" "$archive"      || true
                rm -f "$ziplist"
+
+               #zipflags=-1r
+               #find "$@" -exec touch -d "2001-01-01 01:01:01 +0000" {} \+ # ugly hack to make the pk3 files rsync-friendly
+               #zip $zipflags -y "$archive" "$@" || true
+               #advzip -4 "$archive"
        }
 
        mkzip()
        {
                archive=$1; shift
-               sevenzipflags=-mx=9
-               zipflags=-9
-               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"
+               zipflags=-1ry
+               zip $zipflags "$archive" "$@" || true
+               advzip -z -4 "$archive"
        }
 
        mkzip0()
        {
                archive=$1; shift
-               zip -0ry "$archive" "$@"
+               zipflags=-0ry
+               zip $zipflags "$archive" "$@" || true
        }
+
        getversion()
        {
                gv=`grep "^gameversion " "$1/defaultXonotic.cfg" | awk '{ print $2 }'`
@@ -163,10 +170,10 @@ case "$cmd" in
                        verbose date +%Y%m%d > Xonotic/stamp.txt
                        verbose date +%Y%m%d > Xonotic/pk3stamp.txt
                fi
-               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
+               release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh xonotic-linux-dedicated.sh Makefile 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 mkdir data gmqcc fteqcc source source/darkplaces source/fteqcc source/gmqcc source/d0_blind_id mapping
                        verbose rm -rf misc/builddeps
                        verbose mv misc/buildfiles/win32 bin32 || true
                        verbose mv bin32/SDL.dll . || true
@@ -177,6 +184,7 @@ case "$cmd" in
                )
                release_git_extract_dir "darkplaces" "Xonotic/source/darkplaces" .
                release_git_extract_dir "fteqcc" "Xonotic/source/fteqcc" .
+               release_git_extract_dir "gmqcc" "Xonotic/source/gmqcc" .
                release_git_extract_dir "data/xonotic-data.pk3dir" "Xonotic/source" qcsrc Makefile
                release_git_extract_dir "d0_blind_id" "Xonotic/source/d0_blind_id" .
                (
@@ -247,53 +255,53 @@ case "$cmd" in
                makeflags=$2
                fteqcc_maketargets=$3
                fteqcc_files=$4
-               darkplaces_maketargets=$5
-               darkplaces_files=$6
+               gmqcc_maketargets=$5
+               gmqcc_files=$6
+               darkplaces_maketargets=$7
+               darkplaces_files=$8
                host=xonotic-build-$suffix
                verbose "$SELF" release-compile-run "$host" /tmp/fteqcc.build."$suffix" "$fteqcc_maketargets" "$makeflags" "Xonotic/source/fteqcc" "$d0/misc/builddeps/dp.$suffix" "$fteqcc_files"
+               verbose "$SELF" release-compile-run "$host" /tmp/gmqcc.build."$suffix" "$gmqcc_maketargets" "$makeflags" "Xonotic/source/gmqcc" "$d0/misc/builddeps/dp.$suffix" "$gmqcc_files"
                verbose "$SELF" release-compile-run "$host" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$d0/misc/builddeps/dp.$suffix" "$darkplaces_files"
                ;;
        release-engine-win32)
                release_common
                verbose "$SELF" release-compile win32 \
-                       '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' \
+                       'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -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' \
+                       gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.exe' \
                        win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
-                       '' ''
-               verbose "$SELF" release-compile win32 \
-                       '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)
                release_common
                verbose "$SELF" release-compile win64 \
-                       '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++ -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'
+                       'STRIP=: DP_MAKE_TARGET=mingw CC="x86_64-w64-mingw32-gcc -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' \
+                       gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc-x64.exe' \
+                       win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
+                       release 'darkplaces.exe:Xonotic/xonotic-x64.exe darkplaces-sdl.exe:Xonotic/xonotic-x64-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-x64-dedicated.exe'
                ;;
        release-engine-osx)
                release_common
                # gcc on OSX is buggy, needs -fno-reorder-blocks for a release build to succeed
                verbose "$SELF" release-compile osx \
                        '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"' \
+                       gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.osx' \
                        all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \
                        'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated'
                ;;
        release-engine-linux32)
                release_common
                verbose "$SELF" release-compile linux32 \
-                       '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' \
+                       '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 DP_GMP_STATIC_LIBDIR=.deps/lib' \
+                       gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.linux32' \
                        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)
                release_common
                verbose "$SELF" release-compile linux64 \
-                       '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' \
+                       '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 DP_GMP_STATIC_LIBDIR=.deps/lib' \
+                       gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.linux64' \
                        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'
                ;;
@@ -317,7 +325,7 @@ case "$cmd" in
                ;;
        release-qc)
                release_common
-               verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source FTEQCC="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all
+               verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all
                verbose rm -f Xonotic/source/qcsrc/*/fteqcc.log
                ;;
        release-buildpk3-transform-raw)
@@ -550,6 +558,7 @@ case "$cmd" in
                fi
                # build the archives
                verbose mkzip Xonotic-$stamp-enginesource.zip \
+                       Xonotic/Makefile \
                        Xonotic/source/darkplaces/ \
                        Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3
                verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-engine.zip
@@ -564,10 +573,12 @@ case "$cmd" in
                verbose mkzip Xonotic-$stamp-common.zip \
                        Xonotic/source/d0_blind_id/ \
                        Xonotic/source/fteqcc/ \
+                       Xonotic/source/gmqcc/ \
                        Xonotic/source/qcsrc/ \
                        Xonotic/Docs \
                        Xonotic/misc \
                        Xonotic/fteqcc \
+                       Xonotic/gmqcc \
                        Xonotic/server \
                        Xonotic/key_0.d0pk \
                        Xonotic/data/font-nimbussansl-$pk3stamp.pk3 \
@@ -576,6 +587,7 @@ case "$cmd" in
                verbose mkzip Xonotic-$stamp-source.zip \
                        Xonotic/source/d0_blind_id/ \
                        Xonotic/source/fteqcc/ \
+                       Xonotic/source/gmqcc/ \
                        Xonotic/source/qcsrc/ \
                        Xonotic/misc/logos
                verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip