# host names are reachable and have a compile
# infrastructure set up:
# - xonotic-build-linux64 (with gcc on x86_64)
- # - xonotic-build-win32 (with i586-mingw32msvc-g++)
- # - xonotic-build-win64 (with amd64-mingw32msvc-g++
- # and amd64-mingw32msvc-g++)
+ # - xonotic-build-win32 (with i686-w64-mingw32)
+ # - xonotic-build-win64 (with x86_64-w64-mingw32)
# - xonotic-build-osx (with Xcode and SDL.framework)
# - AMD Compressonator installed in WINE
# - ResEdit installed in WINE
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 gmqcc source source/darkplaces source/gmqcc source/d0_blind_id mapping
+ verbose mkdir data source source/darkplaces 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
- verbose mv misc/buildfiles/win64 bin64 || true
+ #verbose mv bin32/SDL.dll . || true # Leftover?
+
+ # We're going to be building these later
+ #verbose mv misc/buildfiles/win32 bin32 || true
+ #verbose mv misc/buildfiles/win64 bin64 || true
+
verbose mv misc/buildfiles/osx/* . || true
verbose rm -rf misc/buildfiles
verbose rm -rf misc/pki
)
./all each git rev-parse HEAD > Xonotic/misc/git-revisions.txt
;;
+ release-compile-run)
+ release_common
+ host=$1
+ buildpath=$2
+ maketargets=$3
+ makeflags=$4
+ srcdir=$5
+ depsdir=$6
+ targetfiles=$7
+ set -x
+ if [ -z "$targetfiles" ]; then
+ exit
+ fi
+ case " $HOSTS_THAT_ARE_DISABLED " in
+ *\ $host\ *)
+ exit
+ ;;
+ esac
+ case " $HOSTS_THAT_ARE_MYSELF " in
+ *\ $host\ *)
+ verbose rsync --delete -zLvaSHP "$srcdir"/ "$buildpath/"
+ verbose rsync --delete -zLvaSHP misc/logos/icons_ico/xonotic.ico "$buildpath"/darkplaces.ico
+ verbose rsync --delete -zLvaSHP "$depsdir"/*/ "$buildpath.deps/"
+ verbose ln -snf "$buildpath.deps" "$buildpath/.deps"
+ verbose eval make -C "$buildpath" clean $maketargets $makeflags
+ for f in $targetfiles; do
+ verbose mv "$buildpath/${f%:*}" "${f##*:}" || true
+ done
+ ;;
+ *)
+ verbose rsync --delete -zLvaSHP "$srcdir"/ "$host":"$buildpath/"
+ verbose rsync --delete -zLvaSHP misc/logos/icons_ico/xonotic.ico "$host":"$buildpath"/darkplaces.ico
+ verbose rsync --delete -zLvaSHP "$depsdir"/*/ "$host":"$buildpath.deps/"
+ 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
+ ;;
+ esac
+ ;;
+ release-compile)
+ release_common
+ suffix=$1
+ makeflags=$2
+ darkplaces_maketargets=$3
+ darkplaces_files=$4
+ host=xonotic-build-$suffix
+ verbose "$SELF" release-compile-run "$host" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$d0/misc/builddeps/$suffix" "$darkplaces_files"
+ ;;
release-getbinary)
release_common
binary=$1
;;
esac
;;
- release-engine-win32)
+ release-dlls-compile)
+ release_common
+ arch=$1
+ buildpath=$2
+ targetdir=$3
+ mkdir -p "$d0/$targetdir"
+ cd "$d0/misc/buildsrc"
+ verbose ./dlls.sh all "$buildpath" "$arch"
+ verbose cp "$buildpath/out/$arch/*" "$d0/$targetdir"
+ cd "$d0"
+ ;;
+ release-dlls-win32)
release_common
- good=true
- verbose "$SELF" release-getbinary Xonotic/xonotic-x86.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-x86-wgl.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-x86-dedicated.exe || good=false
+ verbose "$SELF" release-dlls-compile win32 /tmp/dlls Xonotic/bin32
+ ;;
+ release-dlls-win64)
+ release_common
+ verbose "$SELF" release-dlls-compile win64 /tmp/dlls Xonotic/bin64
+ ;;
+ release-dlls-clean)
+ release_common
+ verbose $d0/misc/buildsrc/dlls.sh clean /tmp/dlls
+ ;;
+ release-dlls)
+ release_common
+ good=false
+ verbose "$SELF" release-dlls-win32
+ verbose "$SELF" release-dlls-win64
+ verbose "$SELF" release-dlls-clean
$good
;;
+ release-engine-win32)
+ release_common
+ #good=true
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-x86.exe || good=false
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-x86-dedicated.exe || good=false
+ #$good
+ verbose "$SELF" release-compile win32 \
+ 'STRIP=: D3D=1 DP_MAKE_TARGET=mingw WIN32RELEASE=1 CC="i686-w64-mingw32-gcc -static -g1 -mstackrealign -Wl,--dynamicbase -Wl,--nxcompat -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" WINDRES="i686-w64-mingw32-windres" SDL_CONFIG="../../../.deps/bin/sdl2-config" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=dlopen' \
+ release 'darkplaces.exe:Xonotic/xonotic-x86-wgl.exe darkplaces-sdl.exe:Xonotic/xonotic-x86.exe darkplaces-dedicated.exe:Xonotic/xonotic-x86-dedicated.exe'
+ ;;
release-engine-win64)
release_common
- good=true
- verbose "$SELF" release-getbinary Xonotic/xonotic.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-wgl.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || good=false
- $good
+ #good=true
+ #verbose "$SELF" release-getbinary Xonotic/xonotic.exe || good=false
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || good=false
+ #$good
+ verbose "$SELF" release-compile win64 \
+ 'STRIP=: D3D=1 DP_MAKE_TARGET=mingw WIN64RELEASE=1 CC="x86_64-w64-mingw32-gcc -static -g1 -Wl,--dynamicbase -Wl,--nxcompat -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG="../../../.deps/bin/sdl2-config" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=dlopen' \
+ release 'darkplaces.exe:Xonotic/xonotic-wgl.exe darkplaces-sdl.exe:Xonotic/xonotic.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe'
;;
release-engine-osx)
release_common
- good=true
- verbose "$SELF" release-getbinary Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-osx-dedicated || good=false
- $good
+ #good=true
+ #verbose "$SELF" release-getbinary Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin || good=false
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-osx-dedicated || good=false
+ #$good
+ # Note: travis build script also had SDLCONFIG_MACOSX* flags; need to check if they're still needed with osxcross.
+ verbose "$SELF" release-compile osx \
+ 'STRIP=: DP_MAKE_TARGET=macosx CC="$HOME/osxcross/out/bin/o64-clang -g1 -arch x86_64 -mmacosx-version-min=10.6 -Wl,-rpath -Wl,@loader_path/../Frameworks -Wl,-rpath -Wl,@loader_path -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" SDLCONFIG_MACOSXCFLAGS="-I../../../.deps/SDL2.framework/Headers" SDLCONFIG_MACOSXLIBS="-F../../../.deps -framework SDL2 -framework Cocoa -I../../../.deps/SDL2.framework/Headers" SDLCONFIG_MACOSXSTATICLIBS="-F../../../.deps -framework SDL2 -framework Cocoa -I../../../.deps/SDL2.framework/Headers" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=shared' \
+ 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated'
;;
release-engine-linux64)
release_common
- good=true
- verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || good=false
- $good
+ #good=true
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || good=false
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || good=false
+ #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || good=false
+ #$good
+ verbose "$SELF" release-compile linux64 \
+ 'STRIP=: CC="gcc -m64 -g1 -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" DP_LINK_CRYPTO=shared LIB_CRYPTO="../../../.deps/lib/libd0_blind_id.a ../../../.deps/lib/libgmp.a" DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=shared LIB_JPEG=/usr/lib/x86_64-linux-gnu/libjpeg.a DP_LINK_ODE=shared CFLAGS_ODE="-DUSEODE -DLINK_TO_LIBODE -DdDOUBLE" LIB_ODE="../../../.deps/lib/libode.a -lstdc++ -pthread" DP_LINK_ZLIB=shared' \
+ release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated'
;;
release-engine)
release_common
;;
release-qc)
release_common
- verbose make -C "$d0/gmqcc" all
- verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/gmqcc/gmqcc" XON_BUILDSYSTEM=1 clean all
+ verbose make -C "$d0/gmqcc" gmqcc
+ verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/gmqcc/gmqcc" XON_BUILDSYSTEM=1 QCCFLAGS_WATERMARK='$(shell git describe --tags)' clean qc
;;
release-buildpk3-transform-raw)
release_common
verbose export del_src=true
find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh
;;
- release-buildpk3-transform-low)
- release_common
- dir=$1
- verbose cd "$dir"
- # 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-transform-webp)
- release_common
- dir=$1
- verbose cd "$dir"
- # texture: convert to jpeg and dds
- verbose export do_jpeg=false
- verbose export do_webp=true
- verbose export do_dds=false
- verbose export do_ogg=false
- verbose export ogg_ogg=false
- verbose export del_src=true
- find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh
- ;;
- release-buildpk3-transform-lowdds)
- release_common
- dir=$1
- verbose cd "$dir"
- # texture: convert to jpeg and dds
- # music: reduce bitrate
- verbose export do_jpeg=false
- verbose export do_jpeg_if_not_dds=true
- verbose export jpeg_qual_rgb=80
- verbose export jpeg_qual_a=99
- verbose export do_dds=true
- verbose export dds_flags=
- 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-transform-mapping)
release_common
dir=$1
verbose cp ../source/progs.dat .
verbose cp ../source/csprogs.dat .
verbose cp ../source/menu.dat .
+ # Include line numbers in qc errors
+ verbose cp ../source/progs.lno .
+ verbose cp ../source/csprogs.lno .
+ verbose cp ../source/menu.lno .
verbose rm -rf qcsrc
getversion .
case "$RELEASETYPE" in
release_common
verbose "$SELF" release-buildpk3s data/font-unifont.pk3dir raw ''
verbose "$SELF" release-buildpk3s data/font-xolonium.pk3dir raw ''
- verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir low '-low' normaldds '' normal '-high'
- verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir low '-low' normaldds '' mapping '-mapping' normal '-high'
- verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' low '-low'
- verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normaldds ''
+ verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir normaldds '' normal '-high'
+ verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normaldds '' mapping '-mapping' normal '-high'
+ verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw ''
+ verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normaldds '' normal '-high'
;;
release-pack-needsx11)
release_common
pk3stamp=`cat Xonotic/pk3stamp.txt`
# exe and dll files do not need +x, so this makes them eligible for 7zip compression too
chmod a-x Xonotic/*.exe Xonotic/*.dll || true
- for suffix in '' '-noaes'; do
- # build the archives
- verbose mkzip Xonotic-$stamp-enginesource$suffix.zip \
- Xonotic/Makefile \
- Xonotic/source/darkplaces/ \
- Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3
- verbose cp Xonotic-$stamp-enginesource$suffix.zip Xonotic-$stamp-engine$suffix.zip
- verbose mkzip Xonotic-$stamp-engine$suffix.zip \
- Xonotic/*.dll \
- Xonotic/bin32/*.dll \
- Xonotic/bin64/*.dll \
- Xonotic/*.app \
- Xonotic/xonotic-* \
- Xonotic/xonotic.exe
- verbose cp Xonotic-$stamp-engine$suffix.zip Xonotic-$stamp-common$suffix.zip
- verbose mkzip Xonotic-$stamp-common$suffix.zip \
- Xonotic/source/d0_blind_id/ \
- Xonotic/source/gmqcc/ \
- Xonotic/source/qcsrc/ \
- Xonotic/Docs \
- Xonotic/misc \
- Xonotic/gmqcc \
- Xonotic/server \
- Xonotic/key_0.d0pk \
- Xonotic/data/font-unifont-$pk3stamp.pk3 \
- Xonotic/data/font-xolonium-$pk3stamp.pk3
- verbose cp Xonotic-$stamp-enginesource$suffix.zip Xonotic-$stamp-source$suffix.zip
- verbose mkzip Xonotic-$stamp-source$suffix.zip \
- Xonotic/source/d0_blind_id/ \
- Xonotic/source/gmqcc/ \
- Xonotic/source/qcsrc/ \
- Xonotic/misc/logos
- verbose cp Xonotic-$stamp-common$suffix.zip Xonotic-$stamp$suffix.zip
- verbose mkzip0 Xonotic-$stamp$suffix.zip \
- Xonotic/data/xonotic-$pk3stamp-data.pk3 \
- Xonotic/data/xonotic-$pk3stamp-maps.pk3 \
- Xonotic/data/xonotic-$pk3stamp-music.pk3 \
- Xonotic/data/xonotic-$pk3stamp-nexcompat.pk3
- verbose cp Xonotic-$stamp-common$suffix.zip Xonotic-$stamp-low$suffix.zip
- verbose mkzip0 Xonotic-$stamp-low$suffix.zip \
- Xonotic/data/xonotic-$pk3stamp-data-low.pk3 \
- Xonotic/data/xonotic-$pk3stamp-maps-low.pk3 \
- Xonotic/data/xonotic-$pk3stamp-music-low.pk3
- verbose mv Xonotic-$stamp-common$suffix.zip Xonotic-$stamp-high$suffix.zip
- verbose mkzip0 Xonotic-$stamp-high$suffix.zip \
- Xonotic/data/xonotic-$pk3stamp-data-high.pk3 \
- Xonotic/data/xonotic-$pk3stamp-maps-high.pk3 \
- Xonotic/data/xonotic-$pk3stamp-music.pk3
- # let's pass crypto import laws of some nasty countries
- find Xonotic -name \*d0_rijndael\*.so -o -name \*d0_rijndael\*.dylib -o -name \*d0_rijndael\*.dll -o -name \*d0_rijndael\*.c -delete
- done
+ # 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
+ verbose mkzip Xonotic-$stamp-engine.zip \
+ Xonotic/*.dll \
+ Xonotic/bin32/*.dll \
+ Xonotic/bin64/*.dll \
+ Xonotic/*.app \
+ Xonotic/xonotic-* \
+ Xonotic/xonotic.exe
+ verbose cp Xonotic-$stamp-engine.zip Xonotic-$stamp-common.zip
+ verbose mkzip Xonotic-$stamp-common.zip \
+ Xonotic/source/d0_blind_id/ \
+ Xonotic/source/gmqcc/ \
+ Xonotic/source/qcsrc/ \
+ Xonotic/Docs \
+ Xonotic/misc \
+ Xonotic/gmqcc \
+ Xonotic/server \
+ Xonotic/key_0.d0pk \
+ Xonotic/data/font-unifont-$pk3stamp.pk3 \
+ Xonotic/data/font-xolonium-$pk3stamp.pk3
+ verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-source.zip
+ verbose mkzip Xonotic-$stamp-source.zip \
+ Xonotic/source/d0_blind_id/ \
+ Xonotic/source/gmqcc/ \
+ Xonotic/source/qcsrc/ \
+ Xonotic/misc/logos
+ verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip
+ verbose mkzip0 Xonotic-$stamp.zip \
+ Xonotic/data/xonotic-$pk3stamp-data.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-maps.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-music.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-nexcompat.pk3
+ verbose mv Xonotic-$stamp-common.zip Xonotic-$stamp-high.zip
+ verbose mkzip0 Xonotic-$stamp-high.zip \
+ Xonotic/data/xonotic-$pk3stamp-data-high.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-maps-high.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-music.pk3 \
+ Xonotic/data/xonotic-$pk3stamp-nexcompat-high.pk3
verbose mkzip Xonotic-$stamp-mappingsupport.zip \
Xonotic/mapping
verbose mkzip0 Xonotic-$stamp-mappingsupport.zip \
release_common
verbose "$SELF" release-prepare
verbose "$SELF" release-maps
+ verbose "$SELF" release-dlls
verbose "$SELF" release-engine
verbose "$SELF" release-qc
- verbose "$SELF" release-pack-needsx11
+ verbose "$SELF" release-pack
verbose "$SELF" release-zip
;;
*)