- "$SELF" each git clean -fxd
- mkdir -p Xonotic
- "$SELF" release-copy Docs/
- "$SELF" release-copy misc/
- "$SELF" release-copy server/
- "$SELF" release-copy xonotic-linux-glx.sh
- "$SELF" release-copy xonotic-linux-sdl.sh
- "$SELF" release-mkdir data
- ;;
- release-gamedata)
- "$SELF" release-copy data/font-dejavu.pk3dir/
- "$SELF" release-copy data/xonotic-data.pk3dir/
- "$SELF" release-copy data/xonotic-maps.pk3dir/
- "$SELF" release-copy data/xonotic-music.pk3dir/
- "$SELF" release-copy data/xonotic-nexcompat.pk3dir/
- ;;
- release-copy)
- rsync --exclude=.git -vaSHPAX "$1" Xonotic/"$1"
+ #"$SELF" each git clean -fxd
+ case "$RELEASETYPE" in
+ beta)
+ msg "Building a BETA"
+ ;;
+ release)
+ msg "Building a RELEASE"
+ ;;
+ *)
+ msg "Must either set RELEASETYPE=beta or RELEASETYPE=release"
+ exit 1
+ ;;
+ esac
+ verbose rm -rf Xonotic Xonotic*.zip
+ verbose mkdir -p Xonotic
+ verbose date +%Y%m%d > Xonotic/stamp.txt
+ 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 bin64 || true
+ verbose mv misc/buildfiles/osx/* . || true
+ verbose rm -rf misc/buildfiles
+ }
+ {
+ 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 -
+ }
+ ;;
+ release-compile-run)
+ host=$1
+ buildpath=$2
+ maketargets=$3
+ makeflags=$4
+ srcdir=$5
+ targetfiles=$6
+ 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" "$d0/misc/tools/xonotic.brand" "${f##*:}" || true
+ done
+ ;;
+ release-compile)
+ suffix=$1
+ makeflags=$2
+ fteqcc_maketargets=$3
+ fteqcc_files=$4
+ darkplaces_maketargets=$5
+ darkplaces_files=$6
+ verbose "$SELF" release-compile-run "xonotic-build-$suffix" /tmp/fteqcc.build."$suffix" "$fteqcc_maketargets" "$makeflags" "Xonotic/source/fteqcc" "$fteqcc_files"
+ verbose "$SELF" release-compile-run "xonotic-build-$suffix" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$darkplaces_files"
+ ;;
+ release-engine-win32)
+ verbose "$SELF" release-compile win32 \
+ 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -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"' \
+ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.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 \
+ 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -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-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)
+ # 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$HOME/dp.osx/include -L$HOME/dp.osx/lib -fno-reorder-blocks"' \
+ 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-osx-dedicated'
+ ;;
+ release-engine-linux32)
+ verbose "$SELF" release-compile linux32 \
+ '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 DP_LINK_TO_LIBJPEG=1' \
+ 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 -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' \
+ release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated'