try to fix some build types.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5108 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
bdd0af432f
commit
9689f7680e
5 changed files with 769 additions and 739 deletions
826
build_setup.sh
826
build_setup.sh
|
@ -1,409 +1,417 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#sets up dependancies for debian-jessie (8.7)
|
#sets up dependancies for debian-jessie (8.7)
|
||||||
#this script must be run twice. first time as root, which installs system packages
|
#this script must be run twice. first time as root, which installs system packages
|
||||||
#second time as a regular user (probably not your normal one), which installs 3rd-party stuff
|
#second time as a regular user (probably not your normal one), which installs 3rd-party stuff
|
||||||
|
|
||||||
SVNROOT=$(cd "$(dirname "$BASH_SOURCE")" && pwd)
|
SVNROOT=$(cd "$(dirname "$BASH_SOURCE")" && pwd)
|
||||||
FTEROOT=$(realpath $SVNROOT/..)
|
FTEROOT=$(realpath $SVNROOT/..)
|
||||||
FTEROOT=${FTEROOT:-~}
|
FTEROOT=${FTEROOT:-~}
|
||||||
FTECONFIG=$SVNROOT/build.cfg
|
FTECONFIG=$SVNROOT/build.cfg
|
||||||
|
|
||||||
BUILDFOLDER=`echo ~`/htdocs
|
BUILDFOLDER=`echo ~`/htdocs
|
||||||
BUILDLOGFOLDER=$BUILDFOLDER/build_logs
|
BUILDLOGFOLDER=$BUILDFOLDER/build_logs
|
||||||
|
|
||||||
#mac defaults
|
#mac defaults
|
||||||
OSXCROSSROOT=$FTEROOT/osxcross
|
OSXCROSSROOT=$FTEROOT/osxcross
|
||||||
|
|
||||||
#emscripten defaults
|
#emscripten defaults
|
||||||
EMSCRIPTENROOT=$FTEROOT/emsdk-portable
|
EMSCRIPTENROOT=$FTEROOT/emsdk-portable
|
||||||
|
|
||||||
#nacl defaults
|
#nacl defaults
|
||||||
NACLROOT=$FTEROOT/nacl_sdk
|
NACLROOT=$FTEROOT/nacl_sdk
|
||||||
NACLSDKVERSION=pepper_49
|
NACLSDKVERSION=pepper_49
|
||||||
|
|
||||||
#android defaults
|
#android defaults
|
||||||
ANDROIDROOT=$FTEROOT/android
|
ANDROIDROOT=$FTEROOT/android
|
||||||
if [ ! -z "$(uname -o 2>&1 | grep Cygwin)" ]; then
|
if [ ! -z "$(uname -o 2>&1 | grep Cygwin)" ]; then
|
||||||
ANDROID_HOSTSYSTEM=windows-x86_64
|
ANDROID_HOSTSYSTEM=windows-x86_64
|
||||||
else
|
else
|
||||||
ANDROID_HOSTSYSTEM=linux-$(uname -m)
|
ANDROID_HOSTSYSTEM=linux-$(uname -m)
|
||||||
fi
|
fi
|
||||||
ANDROIDBUILDTOOLS=25.0.0
|
ANDROIDBUILDTOOLS=25.0.0
|
||||||
ANDROID_ZIPALIGN=$ANDROIDROOT/build-tools/$ANDROIDBUILDTOOLS/zipalign #relative to ndk tools
|
ANDROID_ZIPALIGN=$ANDROIDROOT/build-tools/$ANDROIDBUILDTOOLS/zipalign #relative to ndk tools
|
||||||
|
|
||||||
THREADS="-j 4"
|
THREADS="-j 4"
|
||||||
|
|
||||||
#windows is always cross compiled, so we don't have issues with non-native ffmpeg
|
#windows is always cross compiled, so we don't have issues with non-native ffmpeg
|
||||||
PLUGINS_LINUXx86="ode qi ezhud xmpp irc"
|
PLUGINS_LINUXx86="ode qi ezhud xmpp irc"
|
||||||
PLUGINS_LINUXx64="ode qi ezhud xmpp irc"
|
PLUGINS_LINUXx64="ode qi ezhud xmpp irc"
|
||||||
PLUGINS_LINUXx32="qi ezhud xmpp irc"
|
PLUGINS_LINUXx32="qi ezhud xmpp irc"
|
||||||
PLUGINS_LINUXarmhf="qi ezhud xmpp irc"
|
PLUGINS_LINUXarmhf="qi ezhud xmpp irc"
|
||||||
if [ "$(uname -m)" != "x86_64" ]; then
|
if [ "$(uname -m)" != "x86_64" ]; then
|
||||||
PLUGINS_LINUXx86="ffmpeg ode qi ezhud xmpp irc"
|
PLUGINS_LINUXx86="ffmpeg ode qi ezhud xmpp irc"
|
||||||
fi
|
fi
|
||||||
if [ "$(uname -m)" == "x86_64" ]; then
|
if [ "$(uname -m)" == "x86_64" ]; then
|
||||||
PLUGINS_LINUX64="ffmpeg ode qi ezhud xmpp irc"
|
PLUGINS_LINUX64="ffmpeg ode qi ezhud xmpp irc"
|
||||||
fi
|
fi
|
||||||
#windows doesn't cross compile, so no system dependancy issues
|
#windows doesn't cross compile, so no system dependancy issues
|
||||||
#skip some dependancies if we're running on cygwin, ode is buggy.
|
#skip some dependancies if we're running on cygwin, ode is buggy.
|
||||||
if [ "$(uname -s)" == "Linux" ]; then
|
if [ "$(uname -s)" == "Linux" ]; then
|
||||||
PLUGINS_WINDOWS="ffmpeg ode qi ezhud xmpp irc"
|
PLUGINS_WINDOWS="ffmpeg ode qi ezhud xmpp irc"
|
||||||
else
|
else
|
||||||
PLUGINS_WINDOWS="qi ezhud xmpp irc"
|
PLUGINS_WINDOWS="qi ezhud xmpp irc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "This is Spike's script to set up various cross compilers and dependancies."
|
echo "This is Spike's script to set up various cross compilers and dependancies."
|
||||||
echo "This script will check dependancies. If something isn't installed you can either rerun the script as root (which will ONLY install system packages), or manually apt-get or whatever. You can then re-run the script as a regular user to finish configuring 3rd party dependancies."
|
echo "This script will check dependancies. If something isn't installed you can either rerun the script as root (which will ONLY install system packages), or manually apt-get or whatever. You can then re-run the script as a regular user to finish configuring 3rd party dependancies."
|
||||||
echo
|
echo
|
||||||
echo "You can change your choices later by just re-running this script"
|
echo "You can change your choices later by just re-running this script"
|
||||||
echo "(Your settings will be autosaved in $FTECONFIG)"
|
echo "(Your settings will be autosaved in $FTECONFIG)"
|
||||||
echo
|
echo
|
||||||
echo "If you just want to compile a native build, just use the following command:"
|
echo "If you just want to compile a native build, just use the following command:"
|
||||||
echo "cd $SVNROOT/engine && make gl-rel"
|
echo "cd $SVNROOT/engine && make gl-rel"
|
||||||
echo "(if you're in cygwin, add FTE_TARGET=win32 to compile for native windows)"
|
echo "(if you're in cygwin, add FTE_TARGET=win32 to compile for native windows)"
|
||||||
echo "(add plugins-rel qcc-rel qccgui-rel sv-rel vk-rel etc for additional targets)"
|
echo "(add plugins-rel qcc-rel qccgui-rel sv-rel vk-rel etc for additional targets)"
|
||||||
echo "(or use -dbg if you want debug builds for whatever reason)"
|
echo "(or use -dbg if you want debug builds for whatever reason)"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
#always execute it if it exists, so that we preserve custom paths etc that are not prompted for here
|
#always execute it if it exists, so that we preserve custom paths etc that are not prompted for here
|
||||||
if [ -e $FTECONFIG ]; then
|
if [ -e $FTECONFIG ]; then
|
||||||
. $FTECONFIG
|
. $FTECONFIG
|
||||||
|
|
||||||
if [ $UID -eq 0 ]; then
|
if [ $UID -eq 0 ]; then
|
||||||
REUSE_CONFIG=y #root shouldn't be writing/owning the config file.
|
REUSE_CONFIG=y #root shouldn't be writing/owning the config file.
|
||||||
else
|
else
|
||||||
read -n 1 -p "Reuse previous build config? [y/N] " REUSE_CONFIG && echo
|
read -n 1 -p "Reuse previous build config? [y/N] " REUSE_CONFIG && echo
|
||||||
REUSE_CONFIG=${REUSE_CONFIG:-n}
|
REUSE_CONFIG=${REUSE_CONFIG:-n}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ $UID -eq 0 ]; then
|
if [ $UID -eq 0 ]; then
|
||||||
exit #root can't create the output, as that would take ownership.
|
exit #root can't create the output, as that would take ownership.
|
||||||
else
|
else
|
||||||
REUSE_CONFIG=n
|
REUSE_CONFIG=n
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$REUSE_CONFIG" != "y" ]; then
|
if [ "$REUSE_CONFIG" != "y" ]; then
|
||||||
#linux compiles are native-only, so don't bug out on cygwin which lacks a cross compiler.
|
#linux compiles are native-only, so don't bug out on cygwin which lacks a cross compiler.
|
||||||
BUILD_LINUXx86=n
|
BUILD_LINUXx86=n
|
||||||
BUILD_LINUXx64=n
|
BUILD_LINUXx64=n
|
||||||
BUILD_LINUXx32=n
|
BUILD_LINUXx32=n
|
||||||
BUILD_LINUXarmhf=n
|
BUILD_LINUXarmhf=n
|
||||||
if [ "$(uname -s)" == "Linux" ]; then
|
if [ "$(uname -s)" == "Linux" ]; then
|
||||||
read -n 1 -p "Build for Linux x86? [Y/n] " BUILD_LINUXx86 && echo
|
read -n 1 -p "Build for Linux x86? [Y/n] " BUILD_LINUXx86 && echo
|
||||||
read -n 1 -p "Build for Linux x86_64? [Y/n] " BUILD_LINUXx64 && echo
|
read -n 1 -p "Build for Linux x86_64? [Y/n] " BUILD_LINUXx64 && echo
|
||||||
read -n 1 -p "Build for Linux x32? [y/N] " BUILD_LINUXx32 && echo
|
read -n 1 -p "Build for Linux x32? [y/N] " BUILD_LINUXx32 && echo
|
||||||
#ubuntu's gcc-multilib-arm-foo package conflicts with gcc-multilib...
|
#ubuntu's gcc-multilib-arm-foo package conflicts with gcc-multilib...
|
||||||
#the whole point of multilib was to avoid conflicts... someone fucked up.
|
#the whole point of multilib was to avoid conflicts... someone fucked up.
|
||||||
#read -n 1 -p "Build for Linux armhf [y/N] " BUILD_LINUXarmhf && echo
|
#read -n 1 -p "Build for Linux armhf [y/N] " BUILD_LINUXarmhf && echo
|
||||||
else
|
else
|
||||||
echo "Skipping Linux options."
|
echo "Skipping Linux options."
|
||||||
fi
|
fi
|
||||||
BUILD_CYGWIN=n
|
BUILD_CYGWIN=n
|
||||||
BUILD_MSVC=n
|
BUILD_MSVC=n
|
||||||
if [ "$(uname -o)" == "Cygwin" ]; then
|
if [ "$(uname -o)" == "Cygwin" ]; then
|
||||||
read -n 1 -p "Build for Cygwin? [y/N] " BUILD_CYGWIN && echo
|
read -n 1 -p "Build for Cygwin? [y/N] " BUILD_CYGWIN && echo
|
||||||
read -n 1 -p "Build with MSVC? (requires windows7 sdk) [y/N] " BUILD_MSVC && echo
|
read -n 1 -p "Build with MSVC? (requires windows7 sdk) [y/N] " BUILD_MSVC && echo
|
||||||
else
|
else
|
||||||
echo "Skipping Cygwin options."
|
echo "Skipping Cygwin options."
|
||||||
fi
|
fi
|
||||||
read -n 1 -p "Build for Windows? [Y/n] " BUILD_WINDOWS && echo
|
read -n 1 -p "Build for Windows? [Y/n] " BUILD_WINDOWS && echo
|
||||||
read -n 1 -p "Build for SDL? [y/N] " BUILD_SDL && echo
|
read -n 1 -p "Build for Dos? [y/N] " BUILD_WINDOWS && echo
|
||||||
read -n 1 -p "Build for Android? [y/N] " BUILD_ANDROID && echo
|
read -n 1 -p "Build for SDL? [y/N] " BUILD_SDL && echo
|
||||||
read -n 1 -p "Build for Emscripten? [y/N] " BUILD_WEB && echo
|
read -n 1 -p "Build for Android? [y/N] " BUILD_ANDROID && echo
|
||||||
if [ 0 -ne 0 ]; then
|
read -n 1 -p "Build for Emscripten? [y/N] " BUILD_WEB && echo
|
||||||
read -n 1 -p "Build for MacOSX? [y/N] " BUILD_MAC && echo
|
if [ 0 -ne 0 ]; then
|
||||||
else
|
read -n 1 -p "Build for MacOSX? [y/N] " BUILD_MAC && echo
|
||||||
echo "Skipping mac option."
|
else
|
||||||
fi
|
echo "Skipping mac option."
|
||||||
read -n 1 -p "Build for NaCL? [y/N] " BUILD_NACL && echo
|
fi
|
||||||
fi
|
read -n 1 -p "Build for NaCL? [y/N] " BUILD_NACL && echo
|
||||||
|
fi
|
||||||
BUILD_LINUXx86=${BUILD_LINUXx86:-y}
|
|
||||||
BUILD_LINUXx64=${BUILD_LINUXx64:-y}
|
BUILD_LINUXx86=${BUILD_LINUXx86:-y}
|
||||||
BUILD_LINUXx32=${BUILD_LINUXx32:-n}
|
BUILD_LINUXx64=${BUILD_LINUXx64:-y}
|
||||||
BUILD_LINUXarmhf=${BUILD_LINUXarmhf:-n}
|
BUILD_LINUXx32=${BUILD_LINUXx32:-n}
|
||||||
BUILD_CYGWIN=${BUILD_CYGWIN:-n}
|
BUILD_LINUXarmhf=${BUILD_LINUXarmhf:-n}
|
||||||
BUILD_WINDOWS=${BUILD_WINDOWS:-y}
|
BUILD_CYGWIN=${BUILD_CYGWIN:-n}
|
||||||
BUILD_MSVC=${BUILD_MSVC:-n}
|
BUILD_WINDOWS=${BUILD_WINDOWS:-y}
|
||||||
BUILD_SDL=${BUILD_SDL:-n}
|
BUILD_DOS=${BUILD_DOS:-n}
|
||||||
BUILD_ANDROID=${BUILD_ANDROID:-n}
|
BUILD_MSVC=${BUILD_MSVC:-n}
|
||||||
BUILD_WEB=${BUILD_WEB:-n}
|
BUILD_SDL=${BUILD_SDL:-n}
|
||||||
BUILD_MAC=${BUILD_MAC:-n}
|
BUILD_ANDROID=${BUILD_ANDROID:-n}
|
||||||
BUILD_NACL=${BUILD_NACL:-n}
|
BUILD_WEB=${BUILD_WEB:-n}
|
||||||
|
BUILD_MAC=${BUILD_MAC:-n}
|
||||||
if [ "$UID" != "0" ]; then
|
BUILD_NACL=${BUILD_NACL:-n}
|
||||||
echo "#path config for fte build scripts" >$FTECONFIG
|
|
||||||
echo "THREADS=\"$THREADS\"" >>$FTECONFIG
|
if [ "$UID" != "0" ]; then
|
||||||
echo "BUILDFOLDER=\"$BUILDFOLDER\"" >>$FTECONFIG
|
echo "#path config for fte build scripts" >$FTECONFIG
|
||||||
echo "BUILDLOGFOLDER=\"$BUILDLOGFOLDER\"" >>$FTECONFIG
|
echo "THREADS=\"$THREADS\"" >>$FTECONFIG
|
||||||
echo "SVNROOT=\"$SVNROOT\"" >>$FTECONFIG
|
echo "BUILDFOLDER=\"$BUILDFOLDER\"" >>$FTECONFIG
|
||||||
echo "ANDROIDROOT=\"$ANDROIDROOT\"" >>$FTECONFIG
|
echo "BUILDLOGFOLDER=\"$BUILDLOGFOLDER\"" >>$FTECONFIG
|
||||||
echo "export ANDROID_HOSTSYSTEM=\"ANDROID_HOSTSYSTEM\"" >>$FTECONFIG
|
echo "SVNROOT=\"$SVNROOT\"" >>$FTECONFIG
|
||||||
echo "export ANDROID_ZIPALIGN=\"ANDROID_ZIPALIGN\"" >>$FTECONFIG
|
echo "ANDROIDROOT=\"$ANDROIDROOT\"" >>$FTECONFIG
|
||||||
echo "EMSCRIPTENROOT=\"$EMSCRIPTENROOT\"" >>$FTECONFIG
|
echo "export ANDROID_HOSTSYSTEM=\"ANDROID_HOSTSYSTEM\"" >>$FTECONFIG
|
||||||
echo "OSXCROSSROOT=\"$OSXCROSSROOT\"" >>$FTECONFIG
|
echo "export ANDROID_ZIPALIGN=\"ANDROID_ZIPALIGN\"" >>$FTECONFIG
|
||||||
echo "NACLROOT=\"$NACLROOT\"" >>$FTECONFIG
|
echo "EMSCRIPTENROOT=\"$EMSCRIPTENROOT\"" >>$FTECONFIG
|
||||||
echo "NACL_SDK_ROOT=\"$NACLROOT/nacl_sdk/$NACLSDKVERSION\"" >>$FTECONFIG
|
echo "OSXCROSSROOT=\"$OSXCROSSROOT\"" >>$FTECONFIG
|
||||||
echo "NACLSDKVERSION=\"$NACLSDKVERSION\"" >>$FTECONFIG
|
echo "NACLROOT=\"$NACLROOT\"" >>$FTECONFIG
|
||||||
|
echo "NACL_SDK_ROOT=\"$NACLROOT/nacl_sdk/$NACLSDKVERSION\"" >>$FTECONFIG
|
||||||
echo "BUILD_LINUXx86=\"$BUILD_LINUXx86\"" >>$FTECONFIG
|
echo "NACLSDKVERSION=\"$NACLSDKVERSION\"" >>$FTECONFIG
|
||||||
echo "BUILD_LINUXx64=\"$BUILD_LINUXx64\"" >>$FTECONFIG
|
|
||||||
echo "BUILD_LINUXx32=\"$BUILD_LINUXx32\"" >>$FTECONFIG
|
echo "BUILD_LINUXx86=\"$BUILD_LINUXx86\"" >>$FTECONFIG
|
||||||
echo "BUILD_LINUXarmhf=\"$BUILD_LINUXarmhf\"" >>$FTECONFIG
|
echo "BUILD_LINUXx64=\"$BUILD_LINUXx64\"" >>$FTECONFIG
|
||||||
echo "BUILD_CYGWIN=\"$BUILD_CYGWIN\"" >>$FTECONFIG
|
echo "BUILD_LINUXx32=\"$BUILD_LINUXx32\"" >>$FTECONFIG
|
||||||
echo "BUILD_WINDOWS=\"$BUILD_WINDOWS\"" >>$FTECONFIG
|
echo "BUILD_LINUXarmhf=\"$BUILD_LINUXarmhf\"" >>$FTECONFIG
|
||||||
echo "BUILD_MSVC=\"$BUILD_MSVC\"" >>$FTECONFIG
|
echo "BUILD_CYGWIN=\"$BUILD_CYGWIN\"" >>$FTECONFIG
|
||||||
echo "BUILD_ANDROID=\"$BUILD_ANDROID\"" >>$FTECONFIG
|
echo "BUILD_WINDOWS=\"$BUILD_WINDOWS\"" >>$FTECONFIG
|
||||||
echo "BUILD_SDL=\"$BUILD_SDL\"" >>$FTECONFIG
|
echo "BUILD_DOS=\"$BUILD_DOS\"" >>$FTECONFIG
|
||||||
echo "BUILD_WEB=\"$BUILD_WEB\"" >>$FTECONFIG
|
echo "BUILD_MSVC=\"$BUILD_MSVC\"" >>$FTECONFIG
|
||||||
echo "BUILD_MAC=\"$BUILD_MAC\"" >>$FTECONFIG
|
echo "BUILD_ANDROID=\"$BUILD_ANDROID\"" >>$FTECONFIG
|
||||||
echo "BUILD_NACL=\"$BUILD_NACL\"" >>$FTECONFIG
|
echo "BUILD_SDL=\"$BUILD_SDL\"" >>$FTECONFIG
|
||||||
|
echo "BUILD_WEB=\"$BUILD_WEB\"" >>$FTECONFIG
|
||||||
echo "PLUGINS_WINDOWS=\"$PLUGINS_WINDOWS\"" >>$FTECONFIG
|
echo "BUILD_MAC=\"$BUILD_MAC\"" >>$FTECONFIG
|
||||||
echo "PLUGINS_LINUXx86=\"$PLUGINS_LINUXx86\"" >>$FTECONFIG
|
echo "BUILD_NACL=\"$BUILD_NACL\"" >>$FTECONFIG
|
||||||
echo "PLUGINS_LINUXx64=\"$PLUGINS_LINUXx64\"" >>$FTECONFIG
|
|
||||||
echo "PLUGINS_LINUXx32=\"$PLUGINS_LINUXx32\"" >>$FTECONFIG
|
echo "PLUGINS_WINDOWS=\"$PLUGINS_WINDOWS\"" >>$FTECONFIG
|
||||||
echo "PLUGINS_LINUXarmhf=\"$PLUGINS_LINUXarmhf\"" >>$FTECONFIG
|
echo "PLUGINS_LINUXx86=\"$PLUGINS_LINUXx86\"" >>$FTECONFIG
|
||||||
fi
|
echo "PLUGINS_LINUXx64=\"$PLUGINS_LINUXx64\"" >>$FTECONFIG
|
||||||
|
echo "PLUGINS_LINUXx32=\"$PLUGINS_LINUXx32\"" >>$FTECONFIG
|
||||||
true
|
echo "PLUGINS_LINUXarmhf=\"$PLUGINS_LINUXarmhf\"" >>$FTECONFIG
|
||||||
true=$?
|
fi
|
||||||
false
|
|
||||||
false=$?
|
true
|
||||||
|
true=$?
|
||||||
if [ "$(uname -s)" == "Linux" ]; then
|
false
|
||||||
. /etc/os-release
|
false=$?
|
||||||
fi
|
|
||||||
function debianpackages {
|
if [ "$(uname -s)" == "Linux" ]; then
|
||||||
#make sure apt-get is installed
|
. /etc/os-release
|
||||||
if [ -z `which apt-get 2>>/dev/null` ]; then
|
fi
|
||||||
return $false
|
function debianpackages {
|
||||||
fi
|
#make sure apt-get is installed
|
||||||
local ret=$true
|
if [ -z `which apt-get 2>>/dev/null` ]; then
|
||||||
for i in "$@"
|
return $false
|
||||||
do
|
fi
|
||||||
dpkg -s $i 2>&1 >> /dev/null
|
local ret=$true
|
||||||
if [ $? -eq 1 ]; then
|
for i in "$@"
|
||||||
ret=$false
|
do
|
||||||
fi
|
dpkg -s $i 2>&1 >> /dev/null
|
||||||
done
|
if [ $? -eq 1 ]; then
|
||||||
|
ret=$false
|
||||||
if [ $ret == $false ]; then
|
fi
|
||||||
if [ $UID -eq 0 ]; then
|
done
|
||||||
apt-get install --no-install-recommends $@
|
|
||||||
ret=$true
|
if [ $ret == $false ]; then
|
||||||
else
|
if [ $UID -eq 0 ]; then
|
||||||
echo "Packages not installed. Run as root to easily install dependancies."
|
apt-get install --no-install-recommends $@
|
||||||
fi
|
ret=$true
|
||||||
fi
|
else
|
||||||
return $ret
|
echo "Packages not installed. Run as root to easily install dependancies."
|
||||||
}
|
fi
|
||||||
function jessiepackages {
|
fi
|
||||||
if [ "$PRETTY_NAME" != "Debian GNU/Linux 8 (jessie)" ]; then
|
return $ret
|
||||||
return $false
|
}
|
||||||
fi
|
function jessiepackages {
|
||||||
|
if [ "$PRETTY_NAME" != "Debian GNU/Linux 8 (jessie)" ]; then
|
||||||
debianpackages $@
|
return $false
|
||||||
return $?
|
fi
|
||||||
}
|
|
||||||
|
debianpackages $@
|
||||||
#we don't really know what system we're on. assume they have any system dependancies.
|
return $?
|
||||||
#fixme: args are programs findable with which
|
}
|
||||||
function otherpackages {
|
|
||||||
if [ -z "$PRETTY_NAME" ]; then
|
#we don't really know what system we're on. assume they have any system dependancies.
|
||||||
return $true
|
#fixme: args are programs findable with which
|
||||||
fi
|
function otherpackages {
|
||||||
return $false
|
if [ -z "$PRETTY_NAME" ]; then
|
||||||
}
|
return $true
|
||||||
|
fi
|
||||||
|
return $false
|
||||||
#Note: only the native linux-sdl target can be compiled, as libSDL[2]-dev doesn't support multiarch properly, and we depend upon it instead of building from source (thus ensuring it has whatever distro stuff needed... though frankly that should be inside the .so instead of the headers).
|
}
|
||||||
|
|
||||||
if [ $UID -eq 0 ] && [ ! -z `which apt-get` ]; then
|
|
||||||
#because multiarch requires separate packages for some things, we'll need to set that up now (in case noone did that yet)
|
#Note: only the native linux-sdl target can be compiled, as libSDL[2]-dev doesn't support multiarch properly, and we depend upon it instead of building from source (thus ensuring it has whatever distro stuff needed... though frankly that should be inside the .so instead of the headers).
|
||||||
dpkg --add-architecture i386
|
|
||||||
apt-get update
|
if [ $UID -eq 0 ] && [ ! -z `which apt-get` ]; then
|
||||||
fi
|
#because multiarch requires separate packages for some things, we'll need to set that up now (in case noone did that yet)
|
||||||
|
dpkg --add-architecture i386
|
||||||
#generic crap. much of this is needed to set up and decompress dependancies and stuff.
|
apt-get update
|
||||||
debianpackages subversion make automake libtool p7zip-full zip || otherpackages z7 make svn || exit
|
fi
|
||||||
|
|
||||||
if [ "$BUILD_LINUXx86" == "y" ]; then
|
#generic crap. much of this is needed to set up and decompress dependancies and stuff.
|
||||||
#for building linux targets
|
debianpackages subversion make automake libtool p7zip-full zip || otherpackages z7 make svn || exit
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev libvorbis-dev || otherpackages gcc || exit
|
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
if [ "$BUILD_LINUXx86" == "y" ]; then
|
||||||
if [[ "$PLUGINS_LINUXx86" =~ "ffmpeg" ]]; then
|
#for building linux targets
|
||||||
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev libvorbis-dev || otherpackages gcc || exit
|
||||||
fi
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
fi
|
if [[ "$PLUGINS_LINUXx86" =~ "ffmpeg" ]]; then
|
||||||
if [ "$BUILD_LINUXx64" == "y" ]; then
|
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
||||||
#for building linux targets
|
fi
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
fi
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
if [ "$BUILD_LINUXx64" == "y" ]; then
|
||||||
if [[ "$PLUGINS_LINUXx64" =~ "ffmpeg" ]]; then
|
#for building linux targets
|
||||||
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
fi
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
fi
|
if [[ "$PLUGINS_LINUXx64" =~ "ffmpeg" ]]; then
|
||||||
if [ "$BUILD_LINUXx32" == "y" ]; then
|
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
||||||
#for building linux targets
|
fi
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
fi
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
if [ "$BUILD_LINUXx32" == "y" ]; then
|
||||||
fi
|
#for building linux targets
|
||||||
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
#for building linux targets
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
debianpackages gcc-multilib-arm-linux-gnueabihf g++-multilib-arm-linux-gnueabihf mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
fi
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
||||||
fi
|
#for building linux targets
|
||||||
if [ "$BUILD_SDL" == "y" ]; then
|
debianpackages gcc-multilib-arm-linux-gnueabihf g++-multilib-arm-linux-gnueabihf mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
#for building SDL targets
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
debianpackages libSDL1.2-dev libSDL2-dev libspeex-dev libspeexdsp-dev || otherpackages || exit
|
fi
|
||||||
fi
|
if [ "$BUILD_SDL" == "y" ]; then
|
||||||
|
#for building SDL targets
|
||||||
if [ "$BUILD_WINDOWS" == "y" ]; then
|
debianpackages libSDL1.2-dev libSDL2-dev libspeex-dev libspeexdsp-dev || otherpackages || exit
|
||||||
#for building windows targets
|
fi
|
||||||
debianpackages mingw-w64 || otherpackages x86_64-w64-mingw32-gcc || exit
|
|
||||||
fi
|
if [ "$BUILD_WINDOWS" == "y" ]; then
|
||||||
|
#for building windows targets
|
||||||
|
debianpackages mingw-w64 || otherpackages x86_64-w64-mingw32-gcc || exit
|
||||||
if [ "$BUILD_ANDROID" == "y" ]; then
|
fi
|
||||||
( (jessiepackages openjdk-8-jdk-headless || debianpackages openjdk-8-jdk-headless ) && debianpackages ant) || otherpackages || exit
|
|
||||||
fi
|
|
||||||
|
if [ "$BUILD_ANDROID" == "y" ]; then
|
||||||
if [ "$BUILD_WEB" == "y" ]; then
|
( (jessiepackages openjdk-8-jdk-headless || debianpackages openjdk-8-jdk-headless ) && debianpackages ant) || otherpackages || exit
|
||||||
( (jessiepackages cmake || debianpackages cmake) && debianpackages git build-essential) || exit
|
fi
|
||||||
fi
|
|
||||||
|
if [ "$BUILD_WEB" == "y" ]; then
|
||||||
if [ "$BUILD_MAC" == "y" ]; then
|
( (jessiepackages cmake || debianpackages cmake) && debianpackages git build-essential) || exit
|
||||||
debianpackages git cmake libxml2-dev fuse || otherpackages || exit
|
fi
|
||||||
fi
|
|
||||||
debianpackages subversion make build-essential || otherpackages svn make || exit
|
if [ "$BUILD_MAC" == "y" ]; then
|
||||||
|
debianpackages git cmake libxml2-dev fuse || otherpackages || exit
|
||||||
echo "System Package checks complete."
|
fi
|
||||||
|
debianpackages subversion make build-essential || otherpackages svn make || exit
|
||||||
if [ "$UID" == "0" ]; then
|
|
||||||
#avoid root taking ownership of anything.
|
echo "System Package checks complete."
|
||||||
echo "Refusing to update/rebuild toolchains as root."
|
|
||||||
echo "Please continue running this script as a regular user."
|
if [ "$UID" == "0" ]; then
|
||||||
exit
|
#avoid root taking ownership of anything.
|
||||||
fi
|
echo "Refusing to update/rebuild toolchains as root."
|
||||||
|
echo "Please continue running this script as a regular user."
|
||||||
echo
|
exit
|
||||||
echo "(Any new toolchains will be installed to $FTEROOT)"
|
fi
|
||||||
echo "(Say no if you're certain you already set up everything)"
|
|
||||||
read -n 1 -p "Rebuild/update any toolchains now? [y/N] " REBUILD_TOOLCHAINS && echo
|
echo
|
||||||
REBUILD_TOOLCHAINS=${REBUILD_TOOLCHAINS:-n}
|
echo "(Any new toolchains will be installed to $FTEROOT)"
|
||||||
mkdir -p $FTEROOT
|
echo "(Say no if you're certain you already set up everything)"
|
||||||
|
read -n 1 -p "Rebuild/update any toolchains now? [y/N] " REBUILD_TOOLCHAINS && echo
|
||||||
#android shit. WARNING: should come first as it spits out some EULAs that need confirming.
|
REBUILD_TOOLCHAINS=${REBUILD_TOOLCHAINS:-n}
|
||||||
if [ "$BUILD_ANDROID" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
mkdir -p $FTEROOT
|
||||||
mkdir -p $ANDROIDROOT
|
|
||||||
cd $ANDROIDROOT
|
#dos shit
|
||||||
wget -N https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
|
if [ "$BUILD_DOS" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
unzip -qn tools_r25.2.3-linux.zip
|
echo "You'll need to manually install djgpp for DOS builds."
|
||||||
cd tools/bin
|
fi
|
||||||
#yes, android-8 is fucking old now. newer versions won't work on older devices.
|
|
||||||
echo "downloading android build tools"
|
#android shit. WARNING: should come first as it spits out some EULAs that need confirming.
|
||||||
./sdkmanager "build-tools;$ANDROID_BUILDTOOLS"
|
if [ "$BUILD_ANDROID" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
echo "downloading android platform tools"
|
mkdir -p $ANDROIDROOT
|
||||||
./sdkmanager "platform-tools"
|
cd $ANDROIDROOT
|
||||||
echo "downloading android-9"
|
wget -N https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
|
||||||
./sdkmanager "platforms;android-9"
|
unzip -qn tools_r25.2.3-linux.zip
|
||||||
echo "downloading android ndk"
|
cd tools/bin
|
||||||
./sdkmanager "ndk-bundle"
|
#yes, android-8 is fucking old now. newer versions won't work on older devices.
|
||||||
cd ~
|
echo "downloading android build tools"
|
||||||
fi
|
./sdkmanager "build-tools;$ANDROID_BUILDTOOLS"
|
||||||
|
echo "downloading android platform tools"
|
||||||
#emscripten/web shit
|
./sdkmanager "platform-tools"
|
||||||
if [ "$BUILD_WEB" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
echo "downloading android-9"
|
||||||
mkdir -p $EMSCRIPTENROOT
|
./sdkmanager "platforms;android-9"
|
||||||
cd $EMSCRIPTENROOT/..
|
echo "downloading android ndk"
|
||||||
wget -N https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
|
./sdkmanager "ndk-bundle"
|
||||||
cd $EMSCRIPTENROOT
|
cd ~
|
||||||
tar xzf ../emsdk-portable.tar.gz --strip-components=1
|
fi
|
||||||
./emsdk install latest
|
|
||||||
./emsdk activate latest
|
#emscripten/web shit
|
||||||
cd ~
|
if [ "$BUILD_WEB" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
fi
|
mkdir -p $EMSCRIPTENROOT
|
||||||
|
cd $EMSCRIPTENROOT/..
|
||||||
|
wget -N https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
|
||||||
#osxcross, for mac crap
|
cd $EMSCRIPTENROOT
|
||||||
if [ "$BUILD_MAC" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
tar xzf ../emsdk-portable.tar.gz --strip-components=1
|
||||||
echo "Setting up OSXCross... THIS IS TOTALLY UNTESTED"
|
./emsdk install latest
|
||||||
read -p "You need to download xcode first. Where did you download the .dmg file to?" XCODE
|
./emsdk activate latest
|
||||||
git clone https://github.com/tpoechtrager/osxcross.git $OSXCROSSROOT
|
cd ~
|
||||||
cd $OSXCROSSROOT
|
fi
|
||||||
tools/gen_sdk_package_darling_dmg.sh $XCODE
|
|
||||||
cp *.tar.xz
|
|
||||||
SDK_VERSION=10.10 UNATTENDED=0 ./build.sh
|
#osxcross, for mac crap
|
||||||
cd ~
|
if [ "$BUILD_MAC" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
fi
|
echo "Setting up OSXCross... THIS IS TOTALLY UNTESTED"
|
||||||
|
read -p "You need to download xcode first. Where did you download the .dmg file to?" XCODE
|
||||||
if [ "$BUILD_NACL" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
git clone https://github.com/tpoechtrager/osxcross.git $OSXCROSSROOT
|
||||||
echo "Setting up NaCL..."
|
cd $OSXCROSSROOT
|
||||||
mkdir -p $NACLROOT
|
tools/gen_sdk_package_darling_dmg.sh $XCODE
|
||||||
cd $NACLROOT/..
|
cp *.tar.xz
|
||||||
wget -N https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
|
SDK_VERSION=10.10 UNATTENDED=0 ./build.sh
|
||||||
unzip -qn nacl_sdk.zip
|
cd ~
|
||||||
cd $NACLROOT
|
fi
|
||||||
./naclsdk update $NACLSDKVERSION
|
|
||||||
fi
|
if [ "$BUILD_NACL" == "y" ] && [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
|
echo "Setting up NaCL..."
|
||||||
|
mkdir -p $NACLROOT
|
||||||
#initial checkout of fte's svn
|
cd $NACLROOT/..
|
||||||
if [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
wget -N https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
|
||||||
if [ ! -d $SVNROOT ]; then
|
unzip -qn nacl_sdk.zip
|
||||||
svn checkout https://svn.code.sf.net/p/fteqw/code/trunk $SVNROOT
|
cd $NACLROOT
|
||||||
else
|
./naclsdk update $NACLSDKVERSION
|
||||||
cd $SVNROOT
|
fi
|
||||||
svn up
|
|
||||||
fi
|
|
||||||
|
#initial checkout of fte's svn
|
||||||
#FIXME: there may be race conditions when compiling.
|
if [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
#so make sure we've pre-built certain targets without using -j
|
if [ ! -d $SVNROOT ]; then
|
||||||
#linux distros vary too much with various dependancies and versions and such, so we might as well pre-build our own copies of certain libraries. this really only needs to be done once, but its safe to retry anyway.
|
svn checkout https://svn.code.sf.net/p/fteqw/code/trunk $SVNROOT
|
||||||
cd $SVNROOT/engine
|
else
|
||||||
if [ "$BUILD_LINUXx86" == "y" ]; then
|
cd $SVNROOT
|
||||||
echo "Making libraries (x86)..."
|
svn up
|
||||||
make FTE_TARGET=linux32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
fi
|
||||||
fi
|
|
||||||
if [ "$BUILD_LINUXx64" == "y" ]; then
|
#FIXME: there may be race conditions when compiling.
|
||||||
echo "Making libraries (linux x86_64)..."
|
#so make sure we've pre-built certain targets without using -j
|
||||||
make FTE_TARGET=linux64 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
#linux distros vary too much with various dependancies and versions and such, so we might as well pre-build our own copies of certain libraries. this really only needs to be done once, but its safe to retry anyway.
|
||||||
fi
|
cd $SVNROOT/engine
|
||||||
if [ "$BUILD_LINUXx32" == "y" ]; then
|
if [ "$BUILD_LINUXx86" == "y" ]; then
|
||||||
echo "Making libraries (linux x32)..."
|
echo "Making libraries (x86)..."
|
||||||
make FTE_TARGET=linuxx32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
make FTE_TARGET=linux32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
if [ "$BUILD_LINUXx64" == "y" ]; then
|
||||||
echo "Making libraries (linux armhf)..."
|
echo "Making libraries (linux x86_64)..."
|
||||||
make FTE_TARGET=linuxarmhf makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
make FTE_TARGET=linux64 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WINDOWS" == "y" ] && [[ "$PLUGINS_WINDOWS" =~ "ode" ]]; then
|
if [ "$BUILD_LINUXx32" == "y" ]; then
|
||||||
echo "Prebuilding ODE library (win32)..."
|
echo "Making libraries (linux x32)..."
|
||||||
make FTE_TARGET=win32 plugins-rel NATIVE_PLUGINS=ode 2>&1 >>/dev/null
|
make FTE_TARGET=linuxx32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
echo "Prebuilding ODE library (win64)..."
|
fi
|
||||||
make FTE_TARGET=win64 plugins-rel NATIVE_PLUGINS=ode 2>&1 >>/dev/null
|
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
||||||
fi
|
echo "Making libraries (linux armhf)..."
|
||||||
if [ "$BUILD_LINUXx86" == "y" ] && [[ "$PLUGINS_LINUXx86" =~ "ode" ]]; then
|
make FTE_TARGET=linuxarmhf makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
echo "Prebuilding ODE library (linux x86)..."
|
fi
|
||||||
make FTE_TARGET=linux32 plugins-rel NATIVE_PLUGINS=ode CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
if [ "$BUILD_WINDOWS" == "y" ] && [[ "$PLUGINS_WINDOWS" =~ "ode" ]]; then
|
||||||
fi
|
echo "Prebuilding ODE library (win32)..."
|
||||||
if [ "$BUILD_LINUXx64" == "y" ] && [[ "$PLUGINS_LINUXx64" =~ "ode" ]]; then
|
make FTE_TARGET=win32 plugins-rel NATIVE_PLUGINS=ode 2>&1 >>/dev/null
|
||||||
echo "Prebuilding ODE library (linux x86_64)..."
|
echo "Prebuilding ODE library (win64)..."
|
||||||
make FTE_TARGET=linux64 plugins-rel NATIVE_PLUGINS=ode CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
make FTE_TARGET=win64 plugins-rel NATIVE_PLUGINS=ode 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WINDOWS" == "y" ]; then
|
if [ "$BUILD_LINUXx86" == "y" ] && [[ "$PLUGINS_LINUXx86" =~ "ode" ]]; then
|
||||||
echo "Obtaining ffmpeg library (win32)..."
|
echo "Prebuilding ODE library (linux x86)..."
|
||||||
make FTE_TARGET=win32 plugins-rel NATIVE_PLUGINS=ffmpeg 2>&1 >>/dev/null
|
make FTE_TARGET=linux32 plugins-rel NATIVE_PLUGINS=ode CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
echo "Obtaining ffmpeg library (win64)..."
|
fi
|
||||||
make FTE_TARGET=win64 plugins-rel NATIVE_PLUGINS=ffmpeg 2>&1 >>/dev/null
|
if [ "$BUILD_LINUXx64" == "y" ] && [[ "$PLUGINS_LINUXx64" =~ "ode" ]]; then
|
||||||
fi
|
echo "Prebuilding ODE library (linux x86_64)..."
|
||||||
cd ~
|
make FTE_TARGET=linux64 plugins-rel NATIVE_PLUGINS=ode CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
|
if [ "$BUILD_WINDOWS" == "y" ]; then
|
||||||
|
echo "Obtaining ffmpeg library (win32)..."
|
||||||
|
make FTE_TARGET=win32 plugins-rel NATIVE_PLUGINS=ffmpeg 2>&1 >>/dev/null
|
||||||
echo "Setup script complete."
|
echo "Obtaining ffmpeg library (win64)..."
|
||||||
echo "When you run build_wip.sh output will be written to $BUILDFOLDER/*"
|
make FTE_TARGET=win64 plugins-rel NATIVE_PLUGINS=ffmpeg 2>&1 >>/dev/null
|
||||||
|
fi
|
||||||
|
cd ~
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "Setup script complete."
|
||||||
|
echo "When you run build_wip.sh output will be written to $BUILDFOLDER/*"
|
||||||
|
|
653
build_wip.sh
653
build_wip.sh
|
@ -1,324 +1,329 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
START=$(date +%s)
|
START=$(date +%s)
|
||||||
|
|
||||||
SVNROOT=$(cd "$(dirname "$(readlink "$BASH_SOURCE")")" && pwd)
|
SVNROOT=$(cd "$(dirname "$(readlink "$BASH_SOURCE")")" && pwd)
|
||||||
FTECONFIG=$SVNROOT/build.cfg
|
FTECONFIG=$SVNROOT/build.cfg
|
||||||
|
|
||||||
HOME=`echo ~`
|
HOME=`echo ~`
|
||||||
BASE=$SVNROOT/..
|
BASE=$SVNROOT/..
|
||||||
#set this if you want non-default branding, for customised builds.
|
#set this if you want non-default branding, for customised builds.
|
||||||
#export BRANDING=wastes
|
#export BRANDING=wastes
|
||||||
|
|
||||||
#defaults, if we're not set up properly.
|
#defaults, if we're not set up properly.
|
||||||
#should be overriden in build.cfg
|
#should be overriden in build.cfg
|
||||||
BUILDFOLDER=$HOME/htdocs
|
BUILDFOLDER=$HOME/htdocs
|
||||||
BUILDLOGFOLDER=$BUILDFOLDER/build_logs
|
BUILDLOGFOLDER=$BUILDFOLDER/build_logs
|
||||||
SVNROOT=$BASE/fteqw-code
|
SVNROOT=$BASE/fteqw-code
|
||||||
BUILD_LINUXx86=y
|
BUILD_LINUXx86=y
|
||||||
BUILD_LINUXx64=y
|
BUILD_LINUXx64=y
|
||||||
BUILD_WINDOWS=y
|
BUILD_WINDOWS=y
|
||||||
BUILD_ANDROID=y
|
BUILD_ANDROID=y
|
||||||
BUILD_WEB=y
|
BUILD_WEB=y
|
||||||
PLUGINS_LINUXx86="qi ezhud xmpp irc"
|
PLUGINS_LINUXx86="qi ezhud xmpp irc"
|
||||||
PLUGINS_LINUXx64="qi ezhud xmpp irc"
|
PLUGINS_LINUXx64="qi ezhud xmpp irc"
|
||||||
PLUGINS_LINUXx32="qi ezhud xmpp irc"
|
PLUGINS_LINUXx32="qi ezhud xmpp irc"
|
||||||
PLUGINS_WINDOWS="avplug ode qi ezhud xmpp irc"
|
PLUGINS_WINDOWS="avplug ode qi ezhud xmpp irc"
|
||||||
THREADS="-j 4"
|
THREADS="-j 4"
|
||||||
|
|
||||||
########### NaCL stuff
|
########### NaCL stuff
|
||||||
NACL_SDK_ROOT=/opt/nacl_sdk/pepper_31/
|
NACL_SDK_ROOT=/opt/nacl_sdk/pepper_31/
|
||||||
|
|
||||||
if [ -e $FTECONFIG ]; then
|
if [ -e $FTECONFIG ]; then
|
||||||
. $FTECONFIG
|
. $FTECONFIG
|
||||||
else
|
else
|
||||||
echo "WARNING: $FTECONFIG does not exist yet."
|
echo "WARNING: $FTECONFIG does not exist yet."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export NACL_SDK_ROOT
|
export NACL_SDK_ROOT
|
||||||
|
|
||||||
########### Emscripten / Web Stuff
|
########### Emscripten / Web Stuff
|
||||||
export EMSDK=$EMSCRIPTENROOT
|
export EMSDK=$EMSCRIPTENROOT
|
||||||
#export WEB_PREJS="--pre-js $HOME/prejs.js"
|
#export WEB_PREJS="--pre-js $HOME/prejs.js"
|
||||||
|
|
||||||
########### Android Stuff. so messy...
|
########### Android Stuff. so messy...
|
||||||
#This is some android password that you should keep private. You should keep the keystore file private too, of course. Frankly, that part is more important than this small random number.
|
#This is some android password that you should keep private. You should keep the keystore file private too, of course. Frankly, that part is more important than this small random number.
|
||||||
KEYPASSFILE=$BASE/.fte_keypass
|
KEYPASSFILE=$BASE/.fte_keypass
|
||||||
if [ ! -e $KEYPASSFILE ]; then
|
if [ ! -e $KEYPASSFILE ]; then
|
||||||
dd if=/dev/urandom count=9 bs=1 2>/dev/null | base64 > $KEYPASSFILE
|
dd if=/dev/urandom count=9 bs=1 2>/dev/null | base64 > $KEYPASSFILE
|
||||||
chmod 400 $KEYPASSFILE
|
chmod 400 $KEYPASSFILE
|
||||||
fi
|
fi
|
||||||
KEYPASS=`cat $KEYPASSFILE`
|
KEYPASS=`cat $KEYPASSFILE`
|
||||||
export JAVA_HOME=/usr
|
export JAVA_HOME=/usr
|
||||||
if [ ! -z "$ANDROIDROOT" ]; then
|
if [ ! -z "$ANDROIDROOT" ]; then
|
||||||
export ANDROID_HOME=$ANDROIDROOT
|
export ANDROID_HOME=$ANDROIDROOT
|
||||||
fi
|
fi
|
||||||
if [ ! -z "$ANDROIDNDKROOT" ]; then
|
if [ ! -z "$ANDROIDNDKROOT" ]; then
|
||||||
export ANDROID_NDK_ROOT=$ANDROIDNDKROOT
|
export ANDROID_NDK_ROOT=$ANDROIDNDKROOT
|
||||||
else
|
else
|
||||||
export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle
|
export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle
|
||||||
fi
|
fi
|
||||||
export KEYTOOLARGS="-keypass $KEYPASS -storepass $KEYPASS -dname \"CN=fteqw.com, OU=ID, O=FTE, L=Unknown, S=Unknown, C=GB\""
|
export KEYTOOLARGS="-keypass $KEYPASS -storepass $KEYPASS -dname \"CN=fteqw.com, OU=ID, O=FTE, L=Unknown, S=Unknown, C=GB\""
|
||||||
export JARSIGNARGS="-storepass $KEYPASS"
|
export JARSIGNARGS="-storepass $KEYPASS"
|
||||||
|
|
||||||
########### Various Output etc Paths
|
########### Various Output etc Paths
|
||||||
QCCBUILDFOLDER=$BUILDFOLDER/fteqcc
|
QCCBUILDFOLDER=$BUILDFOLDER/fteqcc
|
||||||
SVNFOLDER=$SVNROOT/engine/release
|
SVNFOLDER=$SVNROOT/engine/release
|
||||||
ARCHIVEFOLDER=$BUILDFOLDER/archive
|
ARCHIVEFOLDER=$BUILDFOLDER/archive
|
||||||
SVNDBGFOLDER=$SVNROOT/engine/debug
|
SVNDBGFOLDER=$SVNROOT/engine/debug
|
||||||
WARNINGLEVEL="-w"
|
WARNINGLEVEL="-w"
|
||||||
FILELOCK=$BASE/.fte_buildlock
|
FILELOCK=$BASE/.fte_buildlock
|
||||||
|
|
||||||
#./ccache-alias.sh
|
#./ccache-alias.sh
|
||||||
|
|
||||||
exec 9>$FILELOCK
|
exec 9>$FILELOCK
|
||||||
if ! flock -n 9 ; then
|
if ! flock -n 9 ; then
|
||||||
echo "Build script is already running!";
|
echo "Build script is already running!";
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $BUILDLOGFOLDER
|
mkdir -p $BUILDLOGFOLDER
|
||||||
if [ ! -d $SVNROOT ]; then
|
if [ ! -d $SVNROOT ]; then
|
||||||
#just in case...
|
#just in case...
|
||||||
svn checkout https://svn.code.sf.net/p/fteqw/code/trunk $SVNROOT
|
svn checkout https://svn.code.sf.net/p/fteqw/code/trunk $SVNROOT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $SVNROOT/
|
cd $SVNROOT/
|
||||||
|
|
||||||
echo "SVN Update"
|
echo "SVN Update"
|
||||||
svn update
|
svn update
|
||||||
|
|
||||||
cd engine
|
cd engine
|
||||||
|
|
||||||
date > $BUILDLOGFOLDER/buildlog.txt
|
date > $BUILDLOGFOLDER/buildlog.txt
|
||||||
echo "Starting build" >> $BUILDLOGFOLDER/buildlog.txt
|
echo "Starting build" >> $BUILDLOGFOLDER/buildlog.txt
|
||||||
|
|
||||||
function build {
|
function build {
|
||||||
BUILDSTART=$(date +%s)
|
BUILDSTART=$(date +%s)
|
||||||
NAME=$1
|
NAME=$1
|
||||||
DEST=$2
|
DEST=$2
|
||||||
shift; shift
|
shift; shift
|
||||||
make clean >> /dev/null
|
make clean >> /dev/null
|
||||||
echo -n "Making $NAME... "
|
echo -n "Making $NAME... "
|
||||||
date > $BUILDLOGFOLDER/$DEST.txt
|
date > $BUILDLOGFOLDER/$DEST.txt
|
||||||
echo make $THREADS $* >> $BUILDLOGFOLDER/$DEST.txt 2>&1
|
echo make $THREADS $* >> $BUILDLOGFOLDER/$DEST.txt 2>&1
|
||||||
make $THREADS $* >> $BUILDLOGFOLDER/$DEST.txt 2>&1
|
make $THREADS $* >> $BUILDLOGFOLDER/$DEST.txt 2>&1
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
BUILDEND=$(date +%s)
|
BUILDEND=$(date +%s)
|
||||||
BUILDTIME=$(( $BUILDEND - $BUILDSTART ))
|
BUILDTIME=$(( $BUILDEND - $BUILDSTART ))
|
||||||
echo "$BUILDTIME seconds"
|
echo "$BUILDTIME seconds"
|
||||||
echo "$NAME done, took $BUILDTIME seconds" >> $BUILDLOGFOLDER/buildlog.txt
|
echo "$NAME done, took $BUILDTIME seconds" >> $BUILDLOGFOLDER/buildlog.txt
|
||||||
rm -rf $BUILDFOLDER/$DEST >> /dev/null 2>&1
|
rm -rf $BUILDFOLDER/$DEST >> /dev/null 2>&1
|
||||||
mkdir $BUILDFOLDER/$DEST 2>> /dev/null
|
mkdir $BUILDFOLDER/$DEST 2>> /dev/null
|
||||||
mkdir $BUILDFOLDER/$DEST/debug 2>> /dev/null
|
mkdir $BUILDFOLDER/$DEST/debug 2>> /dev/null
|
||||||
cp $SVNFOLDER/* $BUILDFOLDER/$DEST >> /dev/null 2>> /dev/null
|
cp $SVNFOLDER/* $BUILDFOLDER/$DEST >> /dev/null 2>> /dev/null
|
||||||
cp $SVNDBGFOLDER/* $BUILDFOLDER/$DEST/debug >> /dev/null 2>> /dev/null
|
cp $SVNDBGFOLDER/* $BUILDFOLDER/$DEST/debug >> /dev/null 2>> /dev/null
|
||||||
rm -rf $BUILDFOLDER/$DEST/*.a >> /dev/null 2>&1
|
rm -rf $BUILDFOLDER/$DEST/*.a >> /dev/null 2>&1
|
||||||
rm -rf $BUILDFOLDER/$DEST/debug/*.a >> /dev/null 2>&1
|
rm -rf $BUILDFOLDER/$DEST/debug/*.a >> /dev/null 2>&1
|
||||||
rmdir $BUILDFOLDER/$DEST/debug 2>> /dev/null
|
rmdir $BUILDFOLDER/$DEST/debug 2>> /dev/null
|
||||||
else
|
else
|
||||||
echo "$NAME failed" >> $BUILDLOGFOLDER/buildlog.txt
|
echo "$NAME failed" >> $BUILDLOGFOLDER/buildlog.txt
|
||||||
echo "failed"
|
echo "failed"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_fteqcc {
|
function build_fteqcc {
|
||||||
echo "--- no code ---"
|
echo "--- no code ---"
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "--- Engine builds ---"
|
echo "--- Engine builds ---"
|
||||||
#the -fno-finite-math-only is to avoid a glibc dependancy
|
#the -fno-finite-math-only is to avoid a glibc dependancy
|
||||||
if [ "$BUILD_LINUXx86" != "n" ]; then
|
if [ "$BUILD_LINUXx86" != "n" ]; then
|
||||||
NATIVE_PLUGINS="$PLUGINS_LINUXx86" build "Linux 32-bit" linux_x86 FTE_TARGET=linux32 CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg vk-rel plugins-rel plugins-dbg
|
NATIVE_PLUGINS="$PLUGINS_LINUXx86" build "Linux 32-bit" linux_x86 FTE_TARGET=linux32 CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg vk-rel plugins-rel plugins-dbg
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUXx64" != "n" ]; then
|
if [ "$BUILD_LINUXx64" != "n" ]; then
|
||||||
NATIVE_PLUGINS="$PLUGINS_LINUXx64" build "Linux 64-bit" linux_amd64 FTE_TARGET=linux64 LDFLAGS="-Llibs/64" CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg vk-rel plugins-rel plugins-dbg
|
NATIVE_PLUGINS="$PLUGINS_LINUXx64" build "Linux 64-bit" linux_amd64 FTE_TARGET=linux64 LDFLAGS="-Llibs/64" CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg vk-rel plugins-rel plugins-dbg
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUXx32" != "n" ]; then
|
if [ "$BUILD_LINUXx32" != "n" ]; then
|
||||||
# CFLAGS="-DNO_JPEG"
|
# CFLAGS="-DNO_JPEG"
|
||||||
NATIVE_PLUGINS="$PLUGINS_LINUXx32" build "Linux x32" linux_x32 FTE_TARGET=linuxx32 CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg plugins-rel plugins-dbg
|
NATIVE_PLUGINS="$PLUGINS_LINUXx32" build "Linux x32" linux_x32 FTE_TARGET=linuxx32 CPUOPTIMIZATIONS=-fno-finite-math-only qcc-rel rel dbg plugins-rel plugins-dbg
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUXarmhf" != "n" ]; then
|
if [ "$BUILD_LINUXarmhf" != "n" ]; then
|
||||||
#debian/ubuntu's armhf targets armv7. we instead target armv6, because that means we work on rpi too (but still with hard-float). It should be compatible although we likely need more ops.
|
#debian/ubuntu's armhf targets armv7. we instead target armv6, because that means we work on rpi too (but still with hard-float). It should be compatible although we likely need more ops.
|
||||||
NATIVE_PLUGINS="$PLUGINS_LINUXarmhf" build "Linux ARMhf" linux_armhf FTE_TARGET=linuxarmhf CPUOPTIMIZATIONS=-fno-finite-math-only rel dbg qcc-rel plugins-rel plugins-dbg
|
NATIVE_PLUGINS="$PLUGINS_LINUXarmhf" build "Linux ARMhf" linux_armhf FTE_TARGET=linuxarmhf CPUOPTIMIZATIONS=-fno-finite-math-only rel dbg qcc-rel plugins-rel plugins-dbg
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_CYGWIN" != "n" ]; then
|
if [ "$BUILD_CYGWIN" != "n" ]; then
|
||||||
NATIVE_PLUGINS="qi ezhud" build "Cygwin" cygwin qcc-rel rel dbg plugins-rel plugins-dbg
|
NATIVE_PLUGINS="qi ezhud" build "Cygwin" cygwin qcc-rel rel dbg plugins-rel plugins-dbg
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WINDOWS" != "n" ]; then
|
if [ "$BUILD_WINDOWS" != "n" ]; then
|
||||||
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows 32-bit" win32 FTE_TARGET=win32 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel NATIVE_PLUGINS="$PLUGINS_WINDOWS"
|
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows 32-bit" win32 FTE_TARGET=win32 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel NATIVE_PLUGINS="$PLUGINS_WINDOWS"
|
||||||
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows 64-bit" win64 FTE_TARGET=win64 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows 64-bit" win64 FTE_TARGET=win64 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_MSVC" != "n" ]; then
|
if [ "$BUILD_MSVC" != "n" ]; then
|
||||||
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows MSVC 32-bit" msvc FTE_TARGET=vc BITS=32 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows MSVC 32-bit" msvc FTE_TARGET=vc BITS=32 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
||||||
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows MSVC 64-bit" msvc FTE_TARGET=vc BITS=64 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
NATIVE_PLUGINS="$PLUGINS_WINDOWS" build "Windows MSVC 64-bit" msvc FTE_TARGET=vc BITS=64 CFLAGS="$WARNINGLEVEL" sv-rel gl-rel vk-rel mingl-rel m-rel d3d-rel qcc-rel qccgui-scintilla qccgui-dbg gl-dbg sv-dbg plugins-dbg plugins-rel
|
||||||
fi
|
fi
|
||||||
export NATIVE_PLUGINS="qi ezhud xmpp irc"
|
export NATIVE_PLUGINS="qi ezhud xmpp irc"
|
||||||
if [ "$BUILD_ANDROID" != "n" ]; then
|
if [ "$BUILD_ANDROID" != "n" ]; then
|
||||||
build "Android" android droid-rel
|
build "Android" android droid-rel
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WINDOWS" != "n" ]; then
|
if [ "$BUILD_WINDOWS" != "n" ]; then
|
||||||
build "NPFTE" npfte npfte-rel
|
build "NPFTE" npfte npfte-rel
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WEB" != "n" ]; then
|
if [ "$BUILD_DOS" == "y" ]; then
|
||||||
source $EMSDK/emsdk_env.sh >> /dev/null
|
#no networking makes dedicated servers useless. and only a crappy sw renderer is implemented right now.
|
||||||
build "Emscripten" web FTE_TARGET=web gl-rel CC=emcc
|
#the qcc might be useful to someone though!
|
||||||
fi
|
build "DOS" dos m-rel qcc-rel
|
||||||
if [ "$BUILD_LINUX" != "n" ] && [ "$BUILD_SDL" != "n" ] && [ "$(uname -m)" != "x86_64" ]; then
|
fi
|
||||||
build "Linux 32-bit (SDL)" linux_x86_sdl FTE_TARGET=SDL BITS=32 LTO=1
|
if [ "$BUILD_WEB" != "n" ]; then
|
||||||
fi
|
source $EMSDK/emsdk_env.sh >> /dev/null
|
||||||
if [ "$BUILD_LINUX" != "n" ] && [ "$BUILD_SDL" != "n" ] && [ "$(uname -m)" == "x86_64" ]; then
|
build "Emscripten" web FTE_TARGET=web gl-rel CC=emcc
|
||||||
build "Linux 64-bit (SDL)" linux_amd64_sdl FTE_TARGET=SDL BITS=64 LDFLAGS="-Llibs/64" LTO=1
|
fi
|
||||||
fi
|
if [ "$BUILD_LINUX" != "n" ] && [ "$BUILD_SDL" != "n" ] && [ "$(uname -m)" != "x86_64" ]; then
|
||||||
if [ "$BUILD_WINDOWS" != "n" ] && [ "$BUILD_SDL" != "n" ]; then
|
build "Linux 32-bit (SDL)" linux_x86_sdl FTE_TARGET=SDL BITS=32 LTO=1
|
||||||
build "Windows 32-bit (SDL)" win32_sdl FTE_TARGET=win32_SDL gl-rel mingl-rel
|
fi
|
||||||
build "Windows 64-bit (SDL)" win64_sdl FTE_TARGET=win64_SDL LDFLAGS="-L./libs/mingw64-libs/" gl-rel mingl-rel
|
if [ "$BUILD_LINUX" != "n" ] && [ "$BUILD_SDL" != "n" ] && [ "$(uname -m)" == "x86_64" ]; then
|
||||||
CFLAGS="$WARNINGLEVEL -DNOLEGACY -DOMIT_QCC" build "Windows 32-bit nocompat" nocompat FTE_TARGET=win32 LTO=1 NOCOMPAT=1 BOTLIB_CFLAGS="" BOTLIB_OBJS="" gl-rel m-rel -k
|
build "Linux 64-bit (SDL)" linux_amd64_sdl FTE_TARGET=SDL BITS=64 LDFLAGS="-Llibs/64" LTO=1
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_NACL" != "n" ]; then
|
if [ "$BUILD_WINDOWS" != "n" ] && [ "$BUILD_SDL" != "n" ]; then
|
||||||
#non-pnacl is supported ONLY in chrome's store crap, but pnacl works anywhere.
|
build "Windows 32-bit (SDL)" win32_sdl FTE_TARGET=win32_SDL gl-rel mingl-rel
|
||||||
# build "Native Client 64-bit" nacl_amd64 FTE_TARGET=nacl NARCH=x86_64 gl-rel
|
build "Windows 64-bit (SDL)" win64_sdl FTE_TARGET=win64_SDL LDFLAGS="-L./libs/mingw64-libs/" gl-rel mingl-rel
|
||||||
# build "Native Client 32-bit" nacl_x86 FTE_TARGET=nacl NARCH=x86_32 gl-rel
|
CFLAGS="$WARNINGLEVEL -DNOLEGACY -DOMIT_QCC" build "Windows 32-bit nocompat" nocompat FTE_TARGET=win32 LTO=1 NOCOMPAT=1 BOTLIB_CFLAGS="" BOTLIB_OBJS="" gl-rel m-rel -k
|
||||||
#internal compiler error build "Native Client ARM" nacl_arm FTE_TARGET=nacl NARCH=arm gl-rel
|
fi
|
||||||
build "Native Client Portable" nacl_portable FTE_TARGET=nacl NARCH=pnacl gl-rel
|
if [ "$BUILD_NACL" != "n" ]; then
|
||||||
fi
|
#non-pnacl is supported ONLY in chrome's store crap, but pnacl works anywhere.
|
||||||
####build "MorphOS" morphos CFLAGS="-I$BASE/morphos/os-include/ -I$BASE/morphos/lib/ -L$BASE/morphos/lib/ -I$BASE/zlib/zlib-1.2.5 -L$BASE/zlib/zlib-1.2.5 -I./libs $WARNINGLEVEL" gl-rel mingl-rel sv-rel qcc-rel
|
# build "Native Client 64-bit" nacl_amd64 FTE_TARGET=nacl NARCH=x86_64 gl-rel
|
||||||
if [ "$BUILD_MAC" != "n" ]; then
|
# build "Native Client 32-bit" nacl_x86 FTE_TARGET=nacl NARCH=x86_32 gl-rel
|
||||||
#build "MacOSX" macosx_tiger CFLAGS="-I$BASE/mac/x86/include/ -L$BASE/mac/x86/lib -I./libs" FTE_TARGET=macosx_x86 sv-rel gl-rel mingl-rel qcc-rel
|
#internal compiler error build "Native Client ARM" nacl_arm FTE_TARGET=nacl NARCH=arm gl-rel
|
||||||
#FIXME: figure out how to do universal binaries or whatever they're called
|
build "Native Client Portable" nacl_portable FTE_TARGET=nacl NARCH=pnacl gl-rel
|
||||||
build "MacOSX 32-bit" osx32 CC=o32-clang CXX=o32-clang++ FTE_TARGET=osx_x86 BITS=32 sv-rel gl-rel mingl-rel qcc-rel
|
fi
|
||||||
build "MacOSX 64-bit" osx64 CC=o64-clang CXX=o64-clang++ FTE_TARGET=osx_x86_64 BITS=64 sv-rel gl-rel mingl-rel qcc-rel
|
####build "MorphOS" morphos CFLAGS="-I$BASE/morphos/os-include/ -I$BASE/morphos/lib/ -L$BASE/morphos/lib/ -I$BASE/zlib/zlib-1.2.5 -L$BASE/zlib/zlib-1.2.5 -I./libs $WARNINGLEVEL" gl-rel mingl-rel sv-rel qcc-rel
|
||||||
fi
|
if [ "$BUILD_MAC" != "n" ]; then
|
||||||
|
#build "MacOSX" macosx_tiger CFLAGS="-I$BASE/mac/x86/include/ -L$BASE/mac/x86/lib -I./libs" FTE_TARGET=macosx_x86 sv-rel gl-rel mingl-rel qcc-rel
|
||||||
#third party stuff / misc crap
|
#FIXME: figure out how to do universal binaries or whatever they're called
|
||||||
if [ "$BUILD_WEB" != "n" ]; then
|
build "MacOSX 32-bit" osx32 CC=o32-clang CXX=o32-clang++ FTE_TARGET=osx_x86 BITS=32 sv-rel gl-rel mingl-rel qcc-rel
|
||||||
cp $BASE/3rdparty/web/* $BUILDFOLDER/web/
|
build "MacOSX 64-bit" osx64 CC=o64-clang CXX=o64-clang++ FTE_TARGET=osx_x86_64 BITS=64 sv-rel gl-rel mingl-rel qcc-rel
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_WINDOWS" != "n" ]; then
|
|
||||||
cp $BASE/3rdparty/win32/3rdparty.zip $BUILDFOLDER/win32/3rdparty.zip
|
#third party stuff / misc crap
|
||||||
cp $BASE/3rdparty/win64/3rdparty.zip $BUILDFOLDER/win64/3rdparty.zip
|
if [ "$BUILD_WEB" != "n" ]; then
|
||||||
if [ "$BUILD_SDL" != "n" ]; then
|
cp $BASE/3rdparty/web/* $BUILDFOLDER/web/
|
||||||
cp $SVNROOT/engine/libs/SDL2-2.0.1/i686-w64-mingw32/bin/SDL2.dll $BUILDFOLDER/win32_sdl
|
fi
|
||||||
cp $SVNROOT/engine/libs/SDL2-2.0.1/x86_64-w64-mingw32/bin/SDL2.dll $BUILDFOLDER/win64_sdl
|
if [ "$BUILD_WINDOWS" != "n" ]; then
|
||||||
fi
|
cp $BASE/3rdparty/win32/3rdparty.zip $BUILDFOLDER/win32/3rdparty.zip
|
||||||
cp $HOME/nocompat_readme.html $BUILDFOLDER/nocompat/README.html
|
cp $BASE/3rdparty/win64/3rdparty.zip $BUILDFOLDER/win64/3rdparty.zip
|
||||||
fi
|
if [ "$BUILD_SDL" != "n" ]; then
|
||||||
|
cp $SVNROOT/engine/libs/SDL2-2.0.1/i686-w64-mingw32/bin/SDL2.dll $BUILDFOLDER/win32_sdl
|
||||||
echo "--- QC builds ---"
|
cp $SVNROOT/engine/libs/SDL2-2.0.1/x86_64-w64-mingw32/bin/SDL2.dll $BUILDFOLDER/win64_sdl
|
||||||
rm -rf $QCCBUILDFOLDER 2>&1
|
fi
|
||||||
mkdir -p $QCCBUILDFOLDER
|
cp $HOME/nocompat_readme.html $BUILDFOLDER/nocompat/README.html
|
||||||
if [ -e "$BUILDFOLDER/linux_x86/fteqw-gl32" ]
|
fi
|
||||||
then
|
|
||||||
echo "Making fteextensions.qc"
|
echo "--- QC builds ---"
|
||||||
mkdir -p ~/.fte/fte
|
rm -rf $QCCBUILDFOLDER 2>&1
|
||||||
echo "pr_dumpplatform -o fteextensions" > ~/.fte/fte/minusargsaresilly.cfg
|
mkdir -p $QCCBUILDFOLDER
|
||||||
echo "pr_dumpplatform -o csqcsysdefs -Tcs" >> ~/.fte/fte/minusargsaresilly.cfg
|
if [ -e "$BUILDFOLDER/linux_x86/fteqw-gl32" ]
|
||||||
echo "pr_dumpplatform -o menusysdefs -Tmenu" >> ~/.fte/fte/minusargsaresilly.cfg
|
then
|
||||||
$BUILDFOLDER/linux_x86/fteqw-gl32 -basedir ~/.fte -nohome -quake +set snd_device none -nosound +set vid_renderer sv +exec minusargsaresilly.cfg +quit >> /dev/null
|
echo "Making fteextensions.qc"
|
||||||
mv ~/.fte/fte/src/fteextensions.qc $QCCBUILDFOLDER
|
mkdir -p ~/.fte/fte
|
||||||
mv ~/.fte/fte/src/csqcsysdefs.qc $QCCBUILDFOLDER
|
echo "pr_dumpplatform -o fteextensions" > ~/.fte/fte/minusargsaresilly.cfg
|
||||||
mv ~/.fte/fte/src/menusysdefs.qc $QCCBUILDFOLDER
|
echo "pr_dumpplatform -o csqcsysdefs -Tcs" >> ~/.fte/fte/minusargsaresilly.cfg
|
||||||
else
|
echo "pr_dumpplatform -o menusysdefs -Tmenu" >> ~/.fte/fte/minusargsaresilly.cfg
|
||||||
echo "Skipping FTE Extensions, no Linux gl32 build located"
|
$BUILDFOLDER/linux_x86/fteqw-gl32 -basedir ~/.fte -nohome -quake +set snd_device none -nosound +set vid_renderer sv +exec minusargsaresilly.cfg +quit >> /dev/null
|
||||||
fi
|
mv ~/.fte/fte/src/fteextensions.qc $QCCBUILDFOLDER
|
||||||
|
mv ~/.fte/fte/src/csqcsysdefs.qc $QCCBUILDFOLDER
|
||||||
|
mv ~/.fte/fte/src/menusysdefs.qc $QCCBUILDFOLDER
|
||||||
if [ -e $BUILDFOLDER/linux_x86/fteqcc32 ]; then
|
else
|
||||||
echo "Making csaddon + qcmenu"
|
echo "Skipping FTE Extensions, no Linux gl32 build located"
|
||||||
mkdir -p $BUILDFOLDER/csaddon/
|
fi
|
||||||
cd $SVNROOT/quakec
|
|
||||||
cd csaddon/src
|
|
||||||
$BUILDFOLDER/linux_x86/fteqcc32 -srcfile csaddon.src > $BUILDLOGFOLDER/csaddon.txt
|
if [ -e $BUILDFOLDER/linux_x86/fteqcc32 ]; then
|
||||||
mv ../csaddon.dat $BUILDFOLDER/csaddon/
|
echo "Making csaddon + qcmenu"
|
||||||
|
mkdir -p $BUILDFOLDER/csaddon/
|
||||||
cd ../../menusys
|
cd $SVNROOT/quakec
|
||||||
$BUILDFOLDER/linux_x86/fteqcc32 -srcfile menu.src > $BUILDLOGFOLDER/menu.txt
|
cd csaddon/src
|
||||||
rm fteqcc.log
|
$BUILDFOLDER/linux_x86/fteqcc32 -srcfile csaddon.src > $BUILDLOGFOLDER/csaddon.txt
|
||||||
zip -q -9 -o -r $BUILDFOLDER/csaddon/menusys_src.zip .
|
mv ../csaddon.dat $BUILDFOLDER/csaddon/
|
||||||
mv ../menu.dat $BUILDFOLDER/csaddon/
|
|
||||||
else
|
cd ../../menusys
|
||||||
echo "Skiping csaddon + qcmenu, no compiler build"
|
$BUILDFOLDER/linux_x86/fteqcc32 -srcfile menu.src > $BUILDLOGFOLDER/menu.txt
|
||||||
fi
|
rm fteqcc.log
|
||||||
|
zip -q -9 -o -r $BUILDFOLDER/csaddon/menusys_src.zip .
|
||||||
cd $SVNROOT/engine/
|
mv ../menu.dat $BUILDFOLDER/csaddon/
|
||||||
svn info > $BUILDFOLDER/version.txt
|
else
|
||||||
|
echo "Skiping csaddon + qcmenu, no compiler build"
|
||||||
if [ "$BUILD_LINUXx86" != "n" ]; then
|
fi
|
||||||
cp $BUILDFOLDER/linux_x86/fteqcc32 $QCCBUILDFOLDER/linux32-fteqcc
|
|
||||||
fi
|
cd $SVNROOT/engine/
|
||||||
if [ "$BUILD_LINUXx64" != "n" ]; then
|
svn info > $BUILDFOLDER/version.txt
|
||||||
cp $BUILDFOLDER/linux_amd64/fteqcc64 $QCCBUILDFOLDER/linux64-fteqcc
|
|
||||||
fi
|
if [ "$BUILD_LINUXx86" != "n" ]; then
|
||||||
if [ "$BUILD_LINUXx32" != "n" ]; then
|
cp $BUILDFOLDER/linux_x86/fteqcc32 $QCCBUILDFOLDER/linux32-fteqcc
|
||||||
cp $BUILDFOLDER/linux_x32/fteqccx32 $QCCBUILDFOLDER/linuxx32-fteqcc
|
fi
|
||||||
fi
|
if [ "$BUILD_LINUXx64" != "n" ]; then
|
||||||
if [ "$BUILD_LINUXarmhf" != "n" ]; then
|
cp $BUILDFOLDER/linux_amd64/fteqcc64 $QCCBUILDFOLDER/linux64-fteqcc
|
||||||
cp $BUILDFOLDER/linux_armhf/fteqccarmhf $QCCBUILDFOLDER/linuxarmhf-fteqcc
|
fi
|
||||||
fi
|
if [ "$BUILD_LINUXx32" != "n" ]; then
|
||||||
if [ "$BUILD_WINDOWS" != "n" ]; then
|
cp $BUILDFOLDER/linux_x32/fteqccx32 $QCCBUILDFOLDER/linuxx32-fteqcc
|
||||||
cp $BUILDFOLDER/win32/fteqcc.exe $QCCBUILDFOLDER/win32-fteqcc.exe
|
fi
|
||||||
cp $BUILDFOLDER/win32/fteqccgui.exe $QCCBUILDFOLDER/win32-fteqccgui.exe
|
if [ "$BUILD_LINUXarmhf" != "n" ]; then
|
||||||
cp $BUILDFOLDER/win64/fteqcc64.exe $QCCBUILDFOLDER/win64-fteqcc.exe
|
cp $BUILDFOLDER/linux_armhf/fteqccarmhf $QCCBUILDFOLDER/linuxarmhf-fteqcc
|
||||||
cp $BUILDFOLDER/win64/fteqccgui64.exe $QCCBUILDFOLDER/win64-fteqccgui.exe
|
fi
|
||||||
fi
|
if [ "$BUILD_WINDOWS" != "n" ]; then
|
||||||
#cp $BUILDFOLDER/morphos/fteqcc $QCCBUILDFOLDER/morphos-fteqcc
|
cp $BUILDFOLDER/win32/fteqcc.exe $QCCBUILDFOLDER/win32-fteqcc.exe
|
||||||
#cp $BUILDFOLDER/macosx_tiger/fteqcc $QCCBUILDFOLDER/macosx_tiger-fteqcc
|
cp $BUILDFOLDER/win32/fteqccgui.exe $QCCBUILDFOLDER/win32-fteqccgui.exe
|
||||||
cp $BUILDFOLDER/version.txt $QCCBUILDFOLDER/version.txt
|
cp $BUILDFOLDER/win64/fteqcc64.exe $QCCBUILDFOLDER/win64-fteqcc.exe
|
||||||
|
cp $BUILDFOLDER/win64/fteqccgui64.exe $QCCBUILDFOLDER/win64-fteqccgui.exe
|
||||||
if [ "$BUILD_NACL" != "n" ]; then
|
fi
|
||||||
mkdir -p $BUILDFOLDER/nacl
|
#cp $BUILDFOLDER/morphos/fteqcc $QCCBUILDFOLDER/morphos-fteqcc
|
||||||
NACL=$BUILDFOLDER/nacl/fteqw.nmf
|
#cp $BUILDFOLDER/macosx_tiger/fteqcc $QCCBUILDFOLDER/macosx_tiger-fteqcc
|
||||||
echo "{ \"program\":{" > $NACL
|
cp $BUILDFOLDER/version.txt $QCCBUILDFOLDER/version.txt
|
||||||
if [ -e "$BUILDFOLDER/nacl_amd64/fteqw-x86_64.nexe" ]; then
|
|
||||||
mv $BUILDFOLDER/nacl_amd64/fteqw-x86_64.nexe $BUILDFOLDER/nacl/fteqw-x86_64.nexe
|
if [ "$BUILD_NACL" != "n" ]; then
|
||||||
echo " \"x86-64\":{\"url\":\"fteqw-x86_64.nexe\"}," >> $NACL
|
mkdir -p $BUILDFOLDER/nacl
|
||||||
fi
|
NACL=$BUILDFOLDER/nacl/fteqw.nmf
|
||||||
if [ -e "$BUILDFOLDER/nacl_x86/fteqw-x86_32.nexe" ]; then
|
echo "{ \"program\":{" > $NACL
|
||||||
mv $BUILDFOLDER/nacl_x86/fteqw-x86_32.nexe $BUILDFOLDER/nacl/fteqw-x86_32.nexe
|
if [ -e "$BUILDFOLDER/nacl_amd64/fteqw-x86_64.nexe" ]; then
|
||||||
echo " \"x86-32\":{\"url\":\"fteqw-x86_32.nexe\"}," >> $NACL
|
mv $BUILDFOLDER/nacl_amd64/fteqw-x86_64.nexe $BUILDFOLDER/nacl/fteqw-x86_64.nexe
|
||||||
fi
|
echo " \"x86-64\":{\"url\":\"fteqw-x86_64.nexe\"}," >> $NACL
|
||||||
if [ -e "$BUILDFOLDER/nacl_arm/fteqw-arm.nexe" ]; then
|
fi
|
||||||
mv $BUILDFOLDER/nacl_arm/fteqw-arm.nexe $BUILDFOLDER/nacl/fteqw-arm.nexe
|
if [ -e "$BUILDFOLDER/nacl_x86/fteqw-x86_32.nexe" ]; then
|
||||||
echo " \"arm\":{\"url\":\"fteqw-arm.nexe\"}" >> $NACL
|
mv $BUILDFOLDER/nacl_x86/fteqw-x86_32.nexe $BUILDFOLDER/nacl/fteqw-x86_32.nexe
|
||||||
fi
|
echo " \"x86-32\":{\"url\":\"fteqw-x86_32.nexe\"}," >> $NACL
|
||||||
$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-finalize -o $BUILDFOLDER/nacl/fteqw.pexe $BUILDFOLDER/nacl_portable/fteqw.pexe
|
fi
|
||||||
echo " \"portable\":{\"pnacl-translate\":{\"url\":\"fteqw.pexe\"}}" >> $NACL
|
if [ -e "$BUILDFOLDER/nacl_arm/fteqw-arm.nexe" ]; then
|
||||||
echo "} }" >> $NACL
|
mv $BUILDFOLDER/nacl_arm/fteqw-arm.nexe $BUILDFOLDER/nacl/fteqw-arm.nexe
|
||||||
rm -rf "$BUILDFOLDER/nacl_amd64"
|
echo " \"arm\":{\"url\":\"fteqw-arm.nexe\"}" >> $NACL
|
||||||
rm -rf "$BUILDFOLDER/nacl_x86"
|
fi
|
||||||
rm -rf "$BUILDFOLDER/nacl_arm"
|
$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-finalize -o $BUILDFOLDER/nacl/fteqw.pexe $BUILDFOLDER/nacl_portable/fteqw.pexe
|
||||||
rm -rf "$BUILDFOLDER/nacl_portable"
|
echo " \"portable\":{\"pnacl-translate\":{\"url\":\"fteqw.pexe\"}}" >> $NACL
|
||||||
fi
|
echo "} }" >> $NACL
|
||||||
|
rm -rf "$BUILDFOLDER/nacl_amd64"
|
||||||
if [ "$BUILD_WINDOWS" != "n" ]; then
|
rm -rf "$BUILDFOLDER/nacl_x86"
|
||||||
echo Archiving output
|
rm -rf "$BUILDFOLDER/nacl_arm"
|
||||||
SVNVER=$(svnversion $SVNROOT)
|
rm -rf "$BUILDFOLDER/nacl_portable"
|
||||||
cd $BUILDFOLDER/
|
fi
|
||||||
zip -q -9 $ARCHIVEFOLDER/win_fteqw_$SVNVER.zip win32/fteglqw.exe win32/fteqwsv.exe win32/fteqccgui.exe win32/debug/fteglqw.exe win64/fteqw.exe win64/debug/fteglqw.exe
|
|
||||||
|
if [ "$BUILD_WINDOWS" != "n" ]; then
|
||||||
|
echo Archiving output
|
||||||
cd $BUILDFOLDER/win32/
|
SVNVER=$(svnversion $SVNROOT)
|
||||||
zip -q -j -9 $BUILDFOLDER/fteqw_for_windows.zip fteglqw.exe fteqwsv.exe fteqccgui.exe fteplug_qi_x86.dll fteplug_xmpp_x86.dll fteplug_irc_x86.dll fteplug_ezhud_x86.dll
|
cd $BUILDFOLDER/
|
||||||
cd $HOME/3rdparty_win32/
|
zip -q -9 $ARCHIVEFOLDER/win_fteqw_$SVNVER.zip win32/fteglqw.exe win32/fteqwsv.exe win32/fteqccgui.exe win32/debug/fteglqw.exe win64/fteqw.exe win64/debug/fteglqw.exe
|
||||||
zip -q -9 $BUILDFOLDER/fteqw_for_windows.zip ogg.dll vorbis.dll vorbisfile.dll freetype6.dll zlib1.dll
|
|
||||||
mkdir -p $BASE/tmp/fte
|
|
||||||
cd $BASE/tmp/
|
cd $BUILDFOLDER/win32/
|
||||||
cp $BUILDFOLDER/csaddon/menu.dat fte
|
zip -q -j -9 $BUILDFOLDER/fteqw_for_windows.zip fteglqw.exe fteqwsv.exe fteqccgui.exe fteplug_qi_x86.dll fteplug_xmpp_x86.dll fteplug_irc_x86.dll fteplug_ezhud_x86.dll
|
||||||
zip -q -9 $BUILDFOLDER/fteqw_for_windows.zip fte/menu.dat
|
cd $HOME/3rdparty_win32/
|
||||||
|
zip -q -9 $BUILDFOLDER/fteqw_for_windows.zip ogg.dll vorbis.dll vorbisfile.dll freetype6.dll zlib1.dll
|
||||||
#~/afterquake/updatemini.sh
|
mkdir -p $BASE/tmp/fte
|
||||||
fi
|
cd $BASE/tmp/
|
||||||
|
cp $BUILDFOLDER/csaddon/menu.dat fte
|
||||||
echo "All done"
|
zip -q -9 $BUILDFOLDER/fteqw_for_windows.zip fte/menu.dat
|
||||||
|
|
||||||
END=$(date +%s)
|
#~/afterquake/updatemini.sh
|
||||||
DIFF=$(( $END - $START ))
|
fi
|
||||||
MINS=$(( $DIFF / 60 ))
|
|
||||||
echo "Total Compile Time: $MINS minutes" >> $BUILDLOGFOLDER/buildlog.txt
|
echo "All done"
|
||||||
echo "Total Compile Time: $MINS minutes"
|
|
||||||
|
END=$(date +%s)
|
||||||
cd $HOME
|
DIFF=$(( $END - $START ))
|
||||||
#./errorlog.sh
|
MINS=$(( $DIFF / 60 ))
|
||||||
#cd $HOME
|
echo "Total Compile Time: $MINS minutes" >> $BUILDLOGFOLDER/buildlog.txt
|
||||||
#rm .bitchxrc
|
echo "Total Compile Time: $MINS minutes"
|
||||||
#cp ./fteqw/.bitchxrc ./
|
|
||||||
#./BitchX -a irc.quakenet.org -A -c "#fte" -n A_Gorilla
|
cd $HOME
|
||||||
|
#./errorlog.sh
|
||||||
|
#cd $HOME
|
||||||
|
#rm .bitchxrc
|
||||||
|
#cp ./fteqw/.bitchxrc ./
|
||||||
|
#./BitchX -a irc.quakenet.org -A -c "#fte" -n A_Gorilla
|
||||||
|
|
|
@ -3474,7 +3474,7 @@ static void S_UpdateCard(soundcardinfo_t *sc)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_MIXER
|
#ifdef HAVE_MIXER
|
||||||
static int S_GetMixerTime(soundcardinfo_t *sc)
|
int S_GetMixerTime(soundcardinfo_t *sc)
|
||||||
{
|
{
|
||||||
int samplepos;
|
int samplepos;
|
||||||
int fullsamples;
|
int fullsamples;
|
||||||
|
|
|
@ -94,7 +94,11 @@ typedef int (VARGS gnutls_certificate_verify_function)(gnutls_session_t session)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include <gnutls/gnutls.h>
|
#include <gnutls/gnutls.h>
|
||||||
|
#if GNUTLS_VERSION_MAJOR >= 3 && defined(HAVE_DTLS)
|
||||||
#include <gnutls/dtls.h>
|
#include <gnutls/dtls.h>
|
||||||
|
#else
|
||||||
|
#undef HAVE_DTLS
|
||||||
|
#endif
|
||||||
#define gnutls_connection_end_t unsigned int
|
#define gnutls_connection_end_t unsigned int
|
||||||
|
|
||||||
#if GNUTLS_VERSION_MAJOR < 3 || (GNUTLS_VERSION_MAJOR == 3 && GNUTLS_VERSION_MINOR < 3)
|
#if GNUTLS_VERSION_MAJOR < 3 || (GNUTLS_VERSION_MAJOR == 3 && GNUTLS_VERSION_MINOR < 3)
|
||||||
|
@ -728,12 +732,16 @@ qboolean SSL_InitGlobal(qboolean isserver)
|
||||||
|
|
||||||
if (isserver)
|
if (isserver)
|
||||||
{
|
{
|
||||||
#define KEYFILE "c:/games/tools/ssl/key.pem"
|
int ret = -1;
|
||||||
#define CERTFILE "c:/games/tools/ssl/cert.pem"
|
char keyfile[MAX_OSPATH];
|
||||||
int ret = qgnutls_certificate_set_x509_key_file(xcred[isserver], CERTFILE, KEYFILE, GNUTLS_X509_FMT_PEM);
|
char certfile[MAX_OSPATH];
|
||||||
|
*keyfile = *certfile = 0;
|
||||||
|
if (FS_NativePath("key.pem", FS_ROOT, keyfile, sizeof(keyfile))
|
||||||
|
if (FS_NativePath("cert.pem", FS_ROOT, certfile, sizeof(certfile))
|
||||||
|
ret = qgnutls_certificate_set_x509_key_file(xcred[isserver], certfile, keyfile, GNUTLS_X509_FMT_PEM);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
Con_Printf("No certificate or key were found\n");
|
Con_Printf("No certificate or key were found in %s and %s\n", certfile, keyfile);
|
||||||
initstatus[isserver] = -1;
|
initstatus[isserver] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -994,6 +1002,13 @@ neterr_t DTLS_Timeouts(void *ctx)
|
||||||
}
|
}
|
||||||
return NETERR_SENT;
|
return NETERR_SENT;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
void DTLS_DestroyContext(void *ctx){}
|
||||||
|
qboolean DTLS_HasServerCertificate(void){return false;}
|
||||||
|
void *DTLS_CreateContext(void *cbctx, neterr_t(*push)(void *cbctx, const qbyte *data, size_t datasize), qboolean isserver){return NULL;}
|
||||||
|
neterr_t DTLS_Transmit(void *ctx, const qbyte *data, size_t datasize){return NETERR_DISCONNECTED;}
|
||||||
|
neterr_t DTLS_Received(void *ctx, qbyte *data, size_t datasize){return NETERR_DISCONNECTED;}
|
||||||
|
neterr_t DTLS_Timeouts(void *ctx) {return NETERR_SENT;}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2955,8 +2955,9 @@ qboolean NET_PortToAdr (netadrtype_t adrfamily, netproto_t adrprot, const char *
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_PACKET
|
||||||
/*just here to prevent the client from spamming new sockets, which can be a problem with certain q2 servers*/
|
/*just here to prevent the client from spamming new sockets, which can be a problem with certain q2 servers*/
|
||||||
qboolean FTENET_Datagram_ChangeLocalAddress(struct ftenet_generic_connection_s *con, netadr_t *adr)
|
static qboolean FTENET_Datagram_ChangeLocalAddress(struct ftenet_generic_connection_s *con, netadr_t *adr)
|
||||||
{
|
{
|
||||||
struct sockaddr_qstorage address;
|
struct sockaddr_qstorage address;
|
||||||
netadr_t current;
|
netadr_t current;
|
||||||
|
@ -2980,6 +2981,7 @@ qboolean FTENET_Datagram_ChangeLocalAddress(struct ftenet_generic_connection_s *
|
||||||
//doesn't match how its currently bound, so I guess we need to rebind then.
|
//doesn't match how its currently bound, so I guess we need to rebind then.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ftenet_generic_connection_t *FTENET_Datagram_EstablishConnection(qboolean isserver, const char *address, netadr_t adr)
|
ftenet_generic_connection_t *FTENET_Datagram_EstablishConnection(qboolean isserver, const char *address, netadr_t adr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue