]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - all
if the auth library cannot be compiled, fall back to our binaries
[xonotic/xonotic.git] / all
diff --git a/all b/all
index 70309e057b6d2592dc5973043897ab030a7a19e3..6b19292176e806272bfad17ac795e37d57c78d7a 100755 (executable)
--- a/all
+++ b/all
@@ -6,6 +6,7 @@ set -e
 # I use this in EVERY shell script ;)
 LF="
 "
+ESC="\e"
 
 d00=`pwd`
 while ! [ -f ./all ]; do
@@ -35,7 +36,7 @@ esac
 
 msg()
 {
-       echo >&2 "\e[1m$*\e[m"
+       echo >&2 "$ESC[1m$*$ESC[m"
 }
 
 self=`git hash-object "$SELF"`
@@ -119,7 +120,7 @@ div0-gittools                 |
 d0_blind_id                   | http://github.com/divVerent/d0_blind_id.git       | master      |
 data/xonotic-maps.pk3dir      |                                                   | master      |
 mediasource                   |                                                   | master      | no
-fteqcc                        | http://github.com/Blub/qclib.git                  | master      |
+fteqcc                        | git://github.com/Blub/qclib.git                   | master      |
 "
 # todo: in darkplaces, change repobranch to div0-stable
 
@@ -593,7 +594,7 @@ case "$cmd" in
                                        ;;
                                -r)
                                        debug=release
-                                       export CC="$CC -mtune=native -march=native"
+                                       export CC="$CC -g -mtune=native -march=native"
                                        shift
                                        ;;
                                *)
@@ -662,14 +663,46 @@ case "$cmd" in
                fi
 
                enter "$d0/d0_blind_id" verbose
+               if $cleand0; then
+                       verbose make $MAKEFLAGS distclean
+               fi
                if ! [ -f Makefile ]; then
                        verbose sh autogen.sh
-                       verbose ./configure
+                       verbose ./configure || true
                fi
-               if $cleand0; then
-                       verbose make $MAKEFLAGS clean
+               if ! verbose make $MAKEFLAGS; then
+                       # compilation of crypto library failed
+                       # use binaries then, if we can...
+                       mkdir -p .libs
+                       if [ -n "$WE_HATE_OUR_USERS" ]; then
+                               cp "$d0/misc/buildfiles/win32/libd0_blind_id"-* .libs/
+                               cp "$d0/misc/buildfiles/win32/libgmp"-* .libs/
+                       else
+                               case "`uname`" in
+                                       Linux)
+                                               case `uname -m` in
+                                                       x86_64)
+                                                               cp "$d0/misc/builddeps/dp.linux64/lib/libd0_blind_id".* .libs/
+                                                               cp "$d0/misc/builddeps/dp.linux64/lib/libgmp.so*" .libs/
+                                                               ;;
+                                                       *86)
+                                                               cp "$d0/misc/builddeps/dp.linux32/lib/libd0_blind_id".* .libs/
+                                                               cp "$d0/misc/builddeps/dp.linux32/lib/libgmp".* .libs/
+                                                               ;;
+                                                       *)
+                                                               error "Please install libgmp development libraries first"
+                                                               ;;
+                                               esac
+                                               ;;
+                                       Darwin)
+                                               cp "$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS/libd0_blind_id".* .libs/
+                                               ;;
+                                       *)
+                                               error "Please install libgmp development libraries first"
+                                               ;;
+                               esac
+                       fi
                fi
-               verbose make $MAKEFLAGS
 
                enter "$d0/fteqcc" verbose
                if $cleanqcc; then
@@ -691,7 +724,7 @@ case "$cmd" in
                        verbose make $MAKEFLAGS clean
                fi
                for T in $TARGETS; do
-                       verbose make $MAKEFLAGS "$@" "$T"
+                       verbose make $MAKEFLAGS STRIP=: "$@" "$T"
                done
                for T in $BAD_TARGETS; do
                        echo "Warning: discarded invalid client $T."
@@ -1107,7 +1140,45 @@ case "$cmd" in
                                msg "Building a RELEASE"
                                ;;
                        *)
-                               msg "Must either set RELEASETYPE=beta or RELEASETYPE=release"
+                               echo >&2 -n "$ESC[2J$ESC[H"
+                               msg ""
+                               msg ""
+                               msg ""
+                               msg ""
+                               msg ""
+                               msg ""
+                               msg "        +---------------------------------------------------------.---+"
+                               msg "        | NOTE                                                    | X |"
+                               msg "        +---------------------------------------------------------^---+"
+                               msg "        |   ____                                                      |"
+                               msg "        |  /    \  This is the official release build system.         |"
+                               msg "        | |      | If you are not a member of the Xonotic Core Team,  |"
+                               msg "        | | STOP | you are not supposed to use this script and should |"
+                               msg "        | |      | instead use ./all compile to compile the engine    |"
+                               msg "        |  \____/  and game code.                                     |"
+                               msg "        |                                                             |"
+                               msg "        |                      [ I understand ]                       |"
+                               msg "        +-------------------------------------------------------------+"
+                               sleep 10
+                               # A LOT of build infrastructure is required:
+                               # - vorbis-tools
+                               # - ImageMagick
+                               # - .ssh/config must be configured so the following
+                               #   host names are reachable and have a compile
+                               #   infrastructure set up:
+                               #   - xonotic-build-linux32 (with gcc on x86)
+                               #   - xonotic-build-linux64 (with gcc on x86_64)
+                               #   - xonotic-build-win32 (with i586-mingw32msvc-g++)
+                               #   - xonotic-build-win64 (with amd64-mingw32msvc-g++
+                               #     and x86_64-w64-mingw32-g++)
+                               #   - xonotic-build-osx (with Xcode and SDL.framework)
+                               # - AMD Compressonator installed in WINE
+                               # - ResEdit installed in WINE
+                               # - a lot of other requirements you will figure out
+                               #   while reading the error messages
+                               # - environment variable RELEASETYPE set
+                               # - optionally, environment variable RELEASEDATE set
+                               #   (YYYYMMDD)
                                exit 1
                                ;;
                esac
@@ -1219,7 +1290,7 @@ case "$cmd" in
                ;;
        release-engine-win32)
                verbose "$SELF" release-compile win32 \
-                       'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -march=i686 -mtune=generic -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 -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' \
                        win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
                        '' ''
                verbose "$SELF" release-compile win32 \
@@ -1250,7 +1321,7 @@ case "$cmd" in
                ;;
        release-engine-linux32)
                verbose "$SELF" release-compile linux32 \
-                       'STRIP=: CC="gcc -m32 -march=i686 -mtune=generic -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 -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' \
                        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'
                ;;