aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure1487
1 files changed, 963 insertions, 524 deletions
diff --git a/configure b/configure
index dbd78d3f9d..a2f73644cf 100755
--- a/configure
+++ b/configure
@@ -35,6 +35,7 @@ SAVED_CXXFLAGS=$CXXFLAGS
SAVED_CPPFLAGS=$CPPFLAGS
SAVED_ASFLAGS=$ASFLAGS
SAVED_WINDRESFLAGS=$WINDRESFLAGS
+SAVED_SDL_CONFIG=$SDL_CONFIG
# Use environment vars if set
CXXFLAGS="$CXXFLAGS $CPPFLAGS"
@@ -68,6 +69,16 @@ get_var() {
eval echo \$${1}
}
+append_var() {
+ VAR=${1}
+ shift
+ if eval test -z \"\$${VAR}\" ; then
+ eval ${VAR}='$@'
+ else
+ eval ${VAR}=\"\$${VAR} \"'$@'
+ fi
+}
+
# Add an engine: id name build subengines base-games dependencies
add_engine() {
_engines="${_engines} ${1}"
@@ -97,7 +108,9 @@ add_feature() {
_srcdir=`dirname $0`
# Read list of engines
-. $_srcdir/engines/configure.engines
+for i in $_srcdir/engines/*/configure.engine; do
+ . "$i"
+done
#
# Default settings
@@ -113,7 +126,9 @@ _seq_midi=auto
_sndio=auto
_timidity=auto
_zlib=auto
+_mpeg2=auto
_sparkle=auto
+_jpeg=auto
_png=auto
_theoradec=auto
_faad=auto
@@ -122,7 +137,7 @@ _opengl=auto
_opengles=auto
_readline=auto
_freetype2=auto
-_taskbar=yes
+_taskbar=auto
_updates=no
_libunity=auto
# Default option behavior yes/no
@@ -138,9 +153,10 @@ _build_hq_scalers=yes
_enable_prof=no
_global_constructors=no
_bink=yes
-# Default vkeybd/keymapper options
+# Default vkeybd/keymapper/eventrec options
_vkeybd=no
_keymapper=no
+_eventrec=auto
# GUI translation options
_translation=yes
# Default platform settings
@@ -163,8 +179,8 @@ _as="as"
_windres=windres
_stagingpath="staging"
_win32path="c:/scummvm"
-_aos4path="Games:ScummVM"
-_staticlibpath=/sw
+_amigaospath="Games:ScummVM"
+_staticlibpath=
_sdlconfig=sdl-config
_freetypeconfig=freetype-config
_sdlpath="$PATH"
@@ -186,6 +202,7 @@ add_feature faad "libfaad" "_faad"
add_feature flac "FLAC" "_flac"
add_feature freetype2 "FreeType2" "_freetype2"
add_feature mad "MAD" "_mad"
+add_feature jpeg "JPEG" "_jpeg"
add_feature png "PNG" "_png"
add_feature theoradec "libtheoradec" "_theoradec"
add_feature vorbis "Vorbis file support" "_vorbis _tremor"
@@ -347,7 +364,7 @@ define_in_config_if_yes() {
# TODO: small bit of code to test sdl usability
find_sdlconfig() {
echo_n "Looking for sdl-config... "
- sdlconfigs="$_sdlconfig:sdl-config:sdl11-config:sdl12-config"
+ sdlconfigs="$SDL_CONFIG:$_sdlconfig:sdl-config:sdl11-config:sdl12-config"
_sdlconfig=
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="$SEPARATOR"
@@ -816,9 +833,9 @@ Usage: $0 [OPTIONS]...
Configuration:
-h, --help display this help and exit
- --backend=BACKEND backend to build (android, bada, dc, dingux, ds, gph,
- iphone, linuxmoto, maemo, n64, null, openpandora, ps2,
- psp, samsungtv, sdl, webos, wii, wince) [sdl]
+ --backend=BACKEND backend to build (android, tizen, dc, dingux, ds, gcw0,
+ gph, iphone, linuxmoto, maemo, n64, null, openpandora,
+ ps2, psp, samsungtv, sdl, webos, wii, wince) [sdl]
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -844,13 +861,16 @@ Fine tuning of the installation directories:
Special configuration feature:
--host=HOST cross-compile to target HOST (arm-linux, ...)
- special targets: android for Android
- bada for Samsung BADA
+ special targets: android-arm for Android ARM
+ android-mips for Android MIPS
+ android-x86 for Android x86
+ tizen for Samsung Tizen
caanoo for Caanoo
dingux for Dingux
dreamcast for Sega Dreamcast
ds for Nintendo DS
gamecube for Nintendo GameCube
+ gcw0 for GCW Zero
gp2x for GP2X
gp2xwiz for GP2X Wiz
iphone for Apple iPhone
@@ -860,6 +880,7 @@ Special configuration feature:
motomagx for MotoMAGX
n64 for Nintendo 64
openpandora for OpenPandora
+ ouya for OUYA
ps2 for PlayStation 2
ps3 for PlayStation 3
psp for PlayStation Portable
@@ -898,6 +919,10 @@ Optional Features:
--disable-hq-scalers exclude HQ2x and HQ3x scalers
--disable-translation don't build support for translated messages
--disable-taskbar don't build support for taskbar and launcher integration
+ --enable-vkeybd build virtual keyboard support
+ --enable-keymapper build key mapper support
+ --enable-eventrecorder enable event recording functionality
+ --disable-eventrecorder disable event recording functionality
--enable-updates build support for updates
--enable-text-console use text console instead of graphical console
--enable-verbose-build enable regular echoing of commands during build
@@ -924,9 +949,15 @@ Optional Libraries:
--with-zlib-prefix=DIR Prefix where zlib is installed (optional)
--disable-zlib disable zlib (compression) support [autodetect]
+ --with-mpeg2-prefix=DIR Prefix where libmpeg2 is installed (optional)
+ --enable-mpeg2 enable mpeg2 codec for cutscenes [autodetect]
+
--with-opengl-prefix=DIR Prefix where OpenGL (ES) is installed (optional)
--disable-opengl disable OpenGL (ES) support [autodetect]
+ --with-jpeg-prefix=DIR Prefix where libjpeg is installed (optional)
+ --disable-jpeg disable JPEG decoder [autodetect]
+
--with-png-prefix=DIR Prefix where libpng is installed (optional)
--disable-png disable PNG decoder [autodetect]
@@ -948,6 +979,7 @@ Optional Libraries:
--with-freetype2-prefix=DIR Prefix where the freetype-config script is
installed (optional)
+ --disable-freetype2 disable freetype2 TTF library usage [autodetect]
--with-nasm-prefix=DIR Prefix where nasm executable is installed (optional)
--disable-nasm disable assembly language optimizations [autodetect]
@@ -1004,6 +1036,10 @@ for ac_option in $@; do
--disable-sparkle) _sparkle=no ;;
--enable-nasm) _nasm=yes ;;
--disable-nasm) _nasm=no ;;
+ --enable-mpeg2) _mpeg2=yes ;;
+ --disable-mpeg2) _mpeg2=no ;;
+ --disable-jpeg) _jpeg=no ;;
+ --enable-jpeg) _jpeg=yes ;;
--disable-png) _png=no ;;
--enable-png) _png=yes ;;
--disable-theoradec) _theoradec=no ;;
@@ -1036,6 +1072,8 @@ for ac_option in $@; do
--disable-vkeybd) _vkeybd=no ;;
--enable-keymapper) _keymapper=yes ;;
--disable-keymapper) _keymapper=no ;;
+ --enable-eventrecorder) _eventrec=yes ;;
+ --disable-eventrecorder) _eventrec=no ;;
--enable-text-console) _text_console=yes ;;
--disable-text-console) _text_console=no ;;
--with-fluidsynth-prefix=*)
@@ -1043,6 +1081,11 @@ for ac_option in $@; do
FLUIDSYNTH_CFLAGS="-I$arg/include"
FLUIDSYNTH_LIBS="-L$arg/lib"
;;
+ --with-mpeg2-prefix=*)
+ arg=`echo $ac_option | cut -d '=' -f 2`
+ MPEG2_CFLAGS="-I$arg/include"
+ MPEG2_LIBS="-L$arg/lib"
+ ;;
--with-alsa-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
ALSA_CFLAGS="-I$arg/include"
@@ -1078,6 +1121,11 @@ for ac_option in $@; do
MAD_CFLAGS="-I$arg/include"
MAD_LIBS="-L$arg/lib"
;;
+ --with-jpeg-prefix=*)
+ arg=`echo $ac_option | cut -d '=' -f 2`
+ JPEG_CFLAGS="-I$arg/include"
+ JPEG_LIBS="-L$arg/lib"
+ ;;
--with-png-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
PNG_CFLAGS="-I$arg/include"
@@ -1134,7 +1182,7 @@ for ac_option in $@; do
_debug_build=no
;;
--enable-Werror)
- CXXFLAGS="$CXXFLAGS -Werror"
+ append_var CXXFLAGS "-Werror"
;;
--enable-release-mode)
_release_build=yes
@@ -1238,31 +1286,31 @@ get_system_exe_extension $guessed_host
NATIVEEXEEXT=$_exeext
case $_host in
-android | android-v7a)
+android | android-arm | android-v7a | android-arm-v7a | ouya)
_host_os=android
_host_cpu=arm
_host_alias=arm-linux-androideabi
;;
+android-mips)
+ _host_os=android
+ _host_cpu=mipsel
+ _host_alias=mipsel-linux-android
+ ;;
+android-x86)
+ _host_os=android
+ _host_cpu=i686
+ _host_alias=i686-linux-android
+ ;;
arm-riscos)
_host_os=riscos
_host_cpu=arm
;;
-bada)
- _host_os=bada
- if test "$_debug_build" = yes; then
- _host_cpu=i686
- _host_alias=i686-mingw32
- else
- _host_cpu=arm
- _host_alias=arm-samsung-nucleuseabi
- fi
- ;;
caanoo)
_host_os=gph-linux
_host_cpu=arm
_host_alias=arm-none-linux-gnueabi
;;
-dingux)
+dingux | gcw0)
_host_os=linux
_host_cpu=mipsel
_host_alias=mipsel-linux
@@ -1271,8 +1319,8 @@ dreamcast)
_host_os=dreamcast
_host_cpu=sh
_host_alias=sh-elf
- CXXFLAGS="$CXXFLAGS -ml -m4-single-only"
- LDFLAGS="$LDFLAGS -ml -m4-single-only"
+ append_var CXXFLAGS "-ml -m4-single-only"
+ append_var LDFLAGS "-ml -m4-single-only"
;;
ds)
_host_os=ds
@@ -1281,8 +1329,8 @@ ds)
;;
gamecube)
_host_os=gamecube
- _host_cpu=ppc
- _host_alias=powerpc-gekko
+ _host_cpu=powerpc
+ _host_alias=powerpc-eabi
;;
gp2x)
_host_os=gph-linux
@@ -1349,16 +1397,19 @@ openpandora)
;;
ppc-amigaos)
_host_os=amigaos
- _host_cpu=ppc
+ _host_cpu=powerpc
;;
ps2)
_host_os=ps2
_host_cpu=mips64r5900el
_host_alias=ee
+ # PS2 bogus dirs: they actually depend on launch medium
+ datadir='host:data'
+ docdir='host:docs'
;;
ps3)
_host_os=ps3
- _host_cpu=ppc
+ _host_cpu=powerpc
_host_alias=powerpc64-ps3-elf
# The prefix is always the same on PS3 so we hardcode the default
@@ -1382,6 +1433,11 @@ samsungtv)
_host_cpu=arm
_host_alias=arm-linux-gnueabi
;;
+tizen)
+ _host_os=tizen
+ _host_cpu=arm
+ _host_alias=arm-linux-gnueabi
+ ;;
webos)
_host_os=webos
_host_cpu=arm
@@ -1399,8 +1455,8 @@ webos)
;;
wii)
_host_os=wii
- _host_cpu=ppc
- _host_alias=powerpc-gekko
+ _host_cpu=powerpc
+ _host_alias=powerpc-eabi
;;
wince)
_host_os=wince
@@ -1447,14 +1503,22 @@ caanoo | gp2x | gp2xwiz | openpandora | ps2)
esac
if test "$_debug_build" != no; then
- # debug mode not explicitly disabled -> compile with -g
- CXXFLAGS="$CXXFLAGS -g"
+ # debug mode not explicitly disabled -> compile with debug information
+ case $_host_os in
+ amigaos*)
+ # AmigaOS debugger uses plain stabs, with no gdb extensions.
+ append_var CXXFLAGS "-gstabs"
+ ;;
+ *)
+ # Use the system default format for debug info.
+ append_var CXXFLAGS "-g"
+ esac
fi
if test "$_release_build" = yes; then
# Add a define, which indicates we are doing
# an build for a release version.
- DEFINES="$DEFINES -DRELEASE_BUILD"
+ append_var DEFINES "-DRELEASE_BUILD"
fi
@@ -1491,12 +1555,6 @@ android)
exit 1
fi
;;
-bada)
- if test -z "$BADA_SDK"; then
- echo "Please set BADA_SDK in your environment. export BADA_SDK=<path to Bada SDK>"
- exit 1
- fi
- ;;
ds | gamecube | wii)
if test -z "$DEVKITPRO"; then
echo "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to devkitPRO>"
@@ -1538,6 +1596,12 @@ psp)
exit 1
fi
;;
+tizen)
+ if test -z "$TIZEN_ROOTSTRAP"; then
+ echo "Please set TIZEN_ROOTSTRAP in your environment. export TIZEN_ROOTSTRAP=<path to Tizen SDK device profile>"
+ exit 1
+ fi
+ ;;
webos)
if test -z "$WEBOS_SDK"; then
echo "Please set WEBOS_SDK in your environment. export WEBOS_SDK=<path to WebOS SDK>"
@@ -1626,7 +1690,7 @@ if test "$have_icc" = yes; then
# Make ICC error our on unknown command line options instead of printing
# a warning. This is for example required to make the -Wglobal-destructors
# detection work correctly.
- CXXFLAGS="$CXXFLAGS -diag-error 10006,10148"
+ append_var CXXFLAGS "-diag-error 10006,10148"
fi
have_gcc=no
@@ -1731,23 +1795,23 @@ if test "$have_gcc" = yes ; then
case $_host_os in
# newlib-based system include files suppress non-C89 function
# declarations under __STRICT_ANSI__
- amigaos* | android | bada | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | wii | wince )
+ amigaos* | android | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | tizen | wii | wince )
;;
*)
- CXXFLAGS="$CXXFLAGS -ansi"
+ append_var CXXFLAGS "-ansi"
;;
esac
fi
- CXXFLAGS="$CXXFLAGS -W -Wno-unused-parameter"
+ append_var CXXFLAGS "-W -Wno-unused-parameter"
add_line_to_config_mk 'HAVE_GCC3 = 1'
add_line_to_config_mk 'CXX_UPDATE_DEP_FLAG = -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d" -MQ "$@" -MP'
fi;
if test "$_cxx_major" -eq 4 && test "$_cxx_minor" -ge 3 || \
test "$_cxx_major" -gt 4 ; then
- CXXFLAGS="$CXXFLAGS -Wno-empty-body"
+ append_var CXXFLAGS "-Wno-empty-body"
else
- CXXFLAGS="$CXXFLAGS -Wconversion"
+ append_var CXXFLAGS "-Wconversion"
fi;
elif test "$have_icc" = yes ; then
add_line_to_config_mk 'CXX_UPDATE_DEP_FLAG = -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d" -MQ "$@" -MP'
@@ -1758,7 +1822,7 @@ fi;
#
echo_n "Building as C++11... "
if test "$_use_cxx11" = "yes" ; then
- CXXFLAGS="$CXXFLAGS -std=c++11"
+ append_var CXXFLAGS "-std=c++11"
fi
echo $_use_cxx11
@@ -1767,12 +1831,13 @@ echo $_use_cxx11
# However, some platforms use GNU extensions in system header files, so
# for these we must not use -pedantic.
case $_host_os in
-android | gamecube | psp | wii | webos)
+android | gamecube | psp | tizen | wii | webos)
;;
*)
# ICC does not support pedantic, while GCC and clang do.
if test "$have_icc" = no ; then
- CXXFLAGS="$CXXFLAGS -pedantic"
+ # We *do* want the 'long long' extension.
+ append_var CXXFLAGS "-pedantic -Wno-long-long"
fi
;;
esac
@@ -1786,10 +1851,19 @@ EOF
cc_check -Wglobal-constructors && _global_constructors=yes
if test "$_global_constructors" = yes; then
- CXXFLAGS="$CXXFLAGS -Wglobal-constructors"
+ append_var CXXFLAGS "-Wglobal-constructors"
fi
echo $_global_constructors
+echo_n "Checking for $_host_alias-strings... " >> "$TMPLOG"
+if `which $_host_alias-strings >/dev/null 2>&1`; then
+_strings=$_host_alias-strings
+echo yes >> "$TMPLOG"
+else
+_strings=strings
+echo no >> "$TMPLOG"
+fi
+
#
# Check for endianness
#
@@ -1804,9 +1878,9 @@ void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
int main() { _ascii (); _ebcdic (); return 0; }
EOF
$CXX $CXXFLAGS -c -o $TMPO.o tmp_endianness_check.cpp
-if strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
+if $_strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
_endian=big
-elif strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
+elif $_strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
_endian=little
fi
echo $_endian;
@@ -1830,7 +1904,7 @@ esac
# Determine a data type with the given length
#
find_type_with_size() {
- for datatype in int short char long "long long" unknown; do
+ for datatype in int short char long "long long" __int64 "long long int" unknown; do
cat > tmp_find_type_with_size.cpp << EOF
typedef $datatype ac__type_sizeof_;
int main() {
@@ -1941,7 +2015,7 @@ cc_check_clean tmp_find_type_with_size.cpp
# for the smaller sizes.
echo_n "Alignment required... "
case $_host_cpu in
- i[3-6]86 | amd64 | x86_64 | ppc*)
+ i[3-6]86 | amd64 | x86_64 | powerpc*)
# Unaligned access should work
_need_memalign=no
;;
@@ -1973,7 +2047,7 @@ case $_host_cpu in
# (on Pandora and iPhone at least)
#define_in_config_if_yes yes 'USE_ARM_COSTUME_ASM'
- DEFINES="$DEFINES -DARM_TARGET"
+ append_var DEFINES "-DARM_TARGET"
;;
i[3-6]86)
echo "x86"
@@ -1982,11 +2056,11 @@ case $_host_cpu in
;;
mips*)
echo "MIPS"
- DEFINES="$DEFINES -DMIPS_TARGET"
+ append_var DEFINES "-DMIPS_TARGET"
;;
- ppc*)
+ powerpc*)
echo "PowerPC"
- DEFINES="$DEFINES -DPPC_TARGET"
+ append_var DEFINES "-DPPC_TARGET"
;;
amd64 | x86_64)
echo "x86_64"
@@ -2004,70 +2078,113 @@ echo_n "Checking hosttype... "
echo $_host_os
case $_host_os in
amigaos*)
- LDFLAGS="$LDFLAGS -use-dynld"
- LDFLAGS="$LDFLAGS -L/sdk/local/newlib/lib"
+ append_var LDFLAGS "-use-dynld -Wl,--export-dynamic"
+ append_var LDFLAGS "-L/sdk/local/newlib/lib"
# We have to use 'long' for our 4 byte typedef because AmigaOS already typedefs (u)int32
# as (unsigned) long, and consequently we'd get a compiler error otherwise.
type_4_byte='long'
+ # Supress format warnings as the long 4 byte causes noisy warnings.
+ append_var CXXFLAGS "-Wno-format"
add_line_to_config_mk 'AMIGAOS = 1'
+ _port_mk="backends/platform/sdl/amigaos/amigaos.mk"
;;
android)
case $_host in
- android)
- CXXFLAGS="$CXXFLAGS -march=armv5te"
- CXXFLAGS="$CXXFLAGS -mtune=xscale"
- CXXFLAGS="$CXXFLAGS -msoft-float"
+ android | android-arm)
+ append_var CXXFLAGS "-march=armv5te"
+ append_var CXXFLAGS "-mtune=xscale"
+ append_var CXXFLAGS "-msoft-float"
+ ABI="armeabi"
+ ANDROID_PLATFORM=4
+ ANDROID_PLATFORM_ARCH="arm"
+ ;;
+ android-v7a | android-arm-v7a)
+ append_var CXXFLAGS "-march=armv7-a"
+ append_var CXXFLAGS "-mfloat-abi=softfp"
+ append_var CXXFLAGS "-mfpu=vfp"
+ append_var LDFLAGS "-Wl,--fix-cortex-a8"
+ ABI="armeabi-v7a"
+ ANDROID_PLATFORM=4
+ ANDROID_PLATFORM_ARCH="arm"
;;
- android-v7a)
- CXXFLAGS="$CXXFLAGS -march=armv7-a"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
- CXXFLAGS="$CXXFLAGS -mfpu=vfp"
- LDFLAGS="$LDFLAGS -Wl,--fix-cortex-a8"
+ android-mips)
+ append_var CXXFLAGS "-march=mips32"
+ append_var CXXFLAGS "-mtune=mips32"
+ ABI="mips"
+ # Platform version 9 is needed as earlier versions of platform do not support this arch.
+ ANDROID_PLATFORM=9
+ ANDROID_PLATFORM_ARCH="mips"
+ ;;
+ android-x86)
+ append_var CXXFLAGS "-march=i686"
+ append_var CXXFLAGS "-mtune=i686"
+ ABI="x86"
+ # Platform version 9 is needed as earlier versions of platform do not support this arch.
+ ANDROID_PLATFORM=9
+ ANDROID_PLATFORM_ARCH="x86"
+ ;;
+ ouya)
+ append_var CXXFLAGS "-march=armv7-a"
+ append_var CXXFLAGS "-mtune=cortex-a9"
+ append_var CXXFLAGS "-mfloat-abi=softfp"
+ append_var CXXFLAGS "-mfpu=neon"
+ ABI="armeabi-v7a"
+ ANDROID_PLATFORM=4
+ ANDROID_PLATFORM_ARCH="arm"
;;
esac
- CXXFLAGS="$CXXFLAGS --sysroot=$ANDROID_NDK/platforms/android-4/arch-arm"
- CXXFLAGS="$CXXFLAGS -fpic"
- CXXFLAGS="$CXXFLAGS -ffunction-sections"
- CXXFLAGS="$CXXFLAGS -funwind-tables"
+
+ # Setup platform version and arch
+ append_var CXXFLAGS "--sysroot=$ANDROID_NDK/platforms/android-$ANDROID_PLATFORM/arch-$ANDROID_PLATFORM_ARCH"
+ append_var LDFLAGS "--sysroot=$ANDROID_NDK/platforms/android-$ANDROID_PLATFORM/arch-$ANDROID_PLATFORM_ARCH"
+
+ append_var CXXFLAGS "-fpic"
+ append_var CXXFLAGS "-ffunction-sections"
+ append_var CXXFLAGS "-funwind-tables"
if test "$_debug_build" = yes; then
- CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+ append_var CXXFLAGS "-fno-omit-frame-pointer"
+ append_var CXXFLAGS "-fno-strict-aliasing"
else
- CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -fstrict-aliasing"
+ append_var CXXFLAGS "-fomit-frame-pointer"
+ append_var CXXFLAGS "-fstrict-aliasing"
fi
- CXXFLAGS="$CXXFLAGS -finline-limit=300"
+ append_var CXXFLAGS "-finline-limit=300"
_optimization_level=-Os
- CXXFLAGS="$CXXFLAGS -mthumb-interwork"
- # FIXME: Why is the following in CXXFLAGS and not in DEFINES? Change or document this.
- CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5__"
- CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5T__"
- CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5E__"
- CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5TE__"
- # supress 'mangling of 'va_list' has changed in GCC 4.4'
- CXXFLAGS="$CXXFLAGS -Wno-psabi"
- LDFLAGS="$LDFLAGS --sysroot=$ANDROID_NDK/platforms/android-4/arch-arm"
- LDFLAGS="$LDFLAGS -mthumb-interwork"
+
+ if test "$_host" = android -o "$_host" = android-arm; then
+ append_var CXXFLAGS "-mthumb-interwork"
+ # FIXME: Why is the following in CXXFLAGS and not in DEFINES? Change or document this.
+ append_var CXXFLAGS "-D__ARM_ARCH_5__"
+ append_var CXXFLAGS "-D__ARM_ARCH_5T__"
+ append_var CXXFLAGS "-D__ARM_ARCH_5E__"
+ append_var CXXFLAGS "-D__ARM_ARCH_5TE__"
+ fi
+
+ # surpress 'mangling of 'va_list' has changed in GCC 4.4' warning
+ append_var CXXFLAGS "-Wno-psabi"
+
+ if test "$_host" = android -o "$_host" = android-arm; then
+ append_var LDFLAGS "-mthumb-interwork"
+ fi
+
+ append_var LDFLAGS "-L$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/`$CXX -dumpversion`/libs/$ABI/"
+ append_var LIBS "-lsupc++"
add_line_to_config_mk "ANDROID_SDK = $ANDROID_SDK"
+ if test -d "$ANDROID_SDK"/build-tools; then
+ _build_tools_version=`cd "$ANDROID_SDK"/build-tools && ls -1 | sort -rn | head -1`
+ add_line_to_config_mk "ANDROID_BTOOLS = build-tools/$_build_tools_version"
+ else
+ add_line_to_config_mk "ANDROID_BTOOLS = platform-tools"
+ fi
_seq_midi=no
;;
- bada)
- BADA_SDK_ROOT="`cygpath -m ${BADA_SDK}`"
- add_line_to_config_mk "BADA_SDK = $BADA_SDK"
- add_line_to_config_mk "BADA_SDK_ROOT = $BADA_SDK_ROOT"
-
- # assume dependencies have been installed in cygwin's /usr/local
- CYGWIN_USR_LOCAL="`cygpath -m /usr/local`"
- LDFLAGS="$LDFLAGS -L${CYGWIN_USR_LOCAL}/lib"
- CXXFLAGS="$CXXFLAGS -I${CYGWIN_USR_LOCAL}/include"
- ;;
beos*)
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
# Needs -lbind -lsocket for the timidity MIDI driver
LDFLAGS="-L/boot/home/config/lib"
CFLAGS="-I/boot/home/config/include"
- CXXFLAGS="$CXXFLAGS -fhuge-objects"
- LIBS="$LIBS -lbind -lsocket"
+ append_var CXXFLAGS "-fhuge-objects"
+ append_var LIBS "-lbind -lsocket"
_seq_midi=no
;;
cygwin*)
@@ -2075,8 +2192,21 @@ case $_host_os in
exit 1
;;
darwin*)
- DEFINES="$DEFINES -DMACOSX"
- LIBS="$LIBS -framework AudioUnit -framework AudioToolbox -framework Carbon -framework CoreMIDI"
+ # Pass -mlongcall to gcc so that it emits long calls
+ # which will allow for calls larger than 32MB. The linker
+ # will discard the calls if they are not needed, but we
+ # need to ensure the compiler emits them in the first place.
+ case $_host_cpu in
+ powerpc*)
+ append_var CFLAGS "-mlongcall"
+ append_var CXXFLAGS "-mlongcall"
+ ;;
+ esac
+
+ append_var DEFINES "-DMACOSX"
+ append_var LIBS "-framework AudioUnit -framework AudioToolbox -framework Carbon -framework CoreMIDI"
+ # SDL2 doesn't seem to add Cocoa for us.
+ append_var LIBS "-framework Cocoa"
add_line_to_config_mk 'MACOSX = 1'
# Now we may have MacPorts or Fink installed
@@ -2099,197 +2229,267 @@ case $_host_os in
LDFLAGS="-L${macport_prefix}/lib $LDFLAGS"
CXXFLAGS="-I${macport_prefix}/include $CXXFLAGS"
+
+ if test -z "$_staticlibpath"; then
+ _staticlibpath=${macport_prefix}
+ echo "Set staticlib-prefix to ${_staticlibpath}"
+ fi
+ fi
+
+ # Fink
+ # There is no way to get the prefix, so implementing a hack here
+ fink_version=`fink -V 2>/dev/null`
+ if test "$?" -eq 0; then
+ fink_version="`echo "${fink_version}" | sed -ne 's/Package manager version: \([0-9.]*\)/\1/gp'`"
+ echo_n "You seem to be running Fink version ${fink_version}..."
+
+ fink_prefix=`which fink`
+ # strip off /bin/fink from /sw/bin/port
+ fink_prefix=`dirname ${fink_prefix}`
+ fink_prefix=`dirname ${fink_prefix}`
+
+ echo "adding ${fink_prefix} to paths"
+
+ LDFLAGS="-L${fink_prefix}/lib $LDFLAGS"
+ CXXFLAGS="-I${fink_prefix}/include $CXXFLAGS"
+
+ if test -z "$_staticlibpath"; then
+ _staticlibpath=${fink_prefix}
+ echo "Set staticlib-prefix to ${_staticlibpath}"
+ fi
+ fi
+
+ # Homebrew
+ brew_version=`brew -v 2>/dev/null`
+ if test "$?" -eq 0; then
+ brew_version="`echo "${brew_version}" | sed -ne 's/Homebrew \([0-9.]*\)/\1/gp'`"
+ echo_n "You seem to be running Homebrew version ${brew_version}..."
+
+ brew_prefix=`brew --prefix`
+
+ echo "adding ${brew_prefix} to paths"
+
+ LDFLAGS="-L${brew_prefix}/lib $LDFLAGS"
+ CXXFLAGS="-I${brew_prefix}/include $CXXFLAGS"
+
+ if test -z "$_staticlibpath"; then
+ _staticlibpath=${brew_prefix}
+ echo "Set staticlib-prefix to ${_staticlibpath}"
+ fi
+ fi
+
+ # If _staticlibpath is not set yet try first /sw (fink) then /usr/local
+ # (the macports case is handled above).
+ if test -z "$_staticlibpath"; then
+ if test -d "/sw"; then
+ _staticlibpath=/sw
+ echo "Set staticlib-prefix to ${_staticlibpath}"
+ elif test -d "/usr/local"; then
+ _staticlibpath=/usr/local
+ echo "Set staticlib-prefix to ${_staticlibpath}"
+ else
+ echo "Could not determine prefix for static libraries"
+ fi
fi
;;
dreamcast)
- DEFINES="$DEFINES -D__DC__"
- DEFINES="$DEFINES -DNONSTANDARD_PORT"
+ append_var DEFINES "-D__DC__"
+ append_var DEFINES "-DNONSTANDARD_PORT"
;;
ds)
- DEFINES="$DEFINES -D__DS__"
- DEFINES="$DEFINES -DNDS"
- DEFINES="$DEFINES -DARM9"
- DEFINES="$DEFINES -DARM"
- DEFINES="$DEFINES -DNONSTANDARD_PORT"
- CXXFLAGS="$CXXFLAGS -isystem $DEVKITPRO/libnds/include"
- CXXFLAGS="$CXXFLAGS -isystem $DEVKITPRO/devkitARM/arm-eabi/include"
- CXXFLAGS="$CXXFLAGS -mcpu=arm9tdmi"
- CXXFLAGS="$CXXFLAGS -mtune=arm9tdmi"
- CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -ffunction-sections"
- CXXFLAGS="$CXXFLAGS -fdata-sections"
- CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
- CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
- LDFLAGS="$LDFLAGS -specs=ds_arm9.specs"
- LDFLAGS="$LDFLAGS -mthumb-interwork"
- LDFLAGS="$LDFLAGS -mno-fpu"
- LDFLAGS="$LDFLAGS -Wl,-Map,map.txt"
+ append_var DEFINES "-D__DS__"
+ append_var DEFINES "-DNDS"
+ append_var DEFINES "-DARM9"
+ append_var DEFINES "-DARM"
+ append_var DEFINES "-DNONSTANDARD_PORT"
+ append_var CXXFLAGS "-isystem $DEVKITPRO/libnds/include"
+ append_var CXXFLAGS "-isystem $DEVKITPRO/devkitARM/arm-eabi/include"
+ append_var CXXFLAGS "-mcpu=arm9tdmi"
+ append_var CXXFLAGS "-mtune=arm9tdmi"
+ append_var CXXFLAGS "-fomit-frame-pointer"
+ append_var CXXFLAGS "-mthumb-interwork"
+ append_var CXXFLAGS "-ffunction-sections"
+ append_var CXXFLAGS "-fdata-sections"
+ append_var CXXFLAGS "-fno-strict-aliasing"
+ append_var CXXFLAGS "-fuse-cxa-atexit"
+ append_var LDFLAGS "-specs=ds_arm9.specs"
+ append_var LDFLAGS "-mthumb-interwork"
+ append_var LDFLAGS "-mno-fpu"
+ append_var LDFLAGS "-Wl,-Map,map.txt"
if test "$_dynamic_modules" = no ; then
- LDFLAGS="$LDFLAGS -Wl,--gc-sections"
+ append_var LDFLAGS "-Wl,--gc-sections"
else
- LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
+ append_var LDFLAGS "-Wl,--no-gc-sections"
# TODO automate this required 2 step linking phase
- # LDFLAGS="$LDFLAGS -Wl,--retain-symbols-file,ds.syms"
+ # append_var LDFLAGS "-Wl,--retain-symbols-file,ds.syms"
fi
- LDFLAGS="$LDFLAGS -L$DEVKITPRO/libnds/lib"
- LIBS="$LIBS -lnds9"
+ append_var LDFLAGS "-L$DEVKITPRO/libnds/lib"
+ append_var LIBS "-lnds9"
;;
freebsd*)
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- CXXFLAGS="$CXXFLAGS -I/usr/local/include"
+ append_var LDFLAGS "-L/usr/local/lib"
+ append_var CXXFLAGS "-I/usr/local/include"
;;
gamecube)
_optimization_level=-Os
- CXXFLAGS="$CXXFLAGS -mogc"
- CXXFLAGS="$CXXFLAGS -mcpu=750"
- CXXFLAGS="$CXXFLAGS -meabi"
- CXXFLAGS="$CXXFLAGS -mhard-float"
- CXXFLAGS="$CXXFLAGS -ffunction-sections"
- CXXFLAGS="$CXXFLAGS -fdata-sections"
- CXXFLAGS="$CXXFLAGS -fmodulo-sched"
- CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
- CXXFLAGS="$CXXFLAGS -I$DEVKITPRO/libogc/include"
+ append_var CXXFLAGS "-mogc"
+ append_var CXXFLAGS "-mcpu=750"
+ append_var CXXFLAGS "-meabi"
+ append_var CXXFLAGS "-mhard-float"
+ append_var CXXFLAGS "-ffunction-sections"
+ append_var CXXFLAGS "-fdata-sections"
+ append_var CXXFLAGS "-fmodulo-sched"
+ append_var CXXFLAGS "-fuse-cxa-atexit"
+ append_var CXXFLAGS "-I$DEVKITPRO/libogc/include"
# libogc is required to link the cc tests (includes _start())
- LDFLAGS="$LDFLAGS -mogc"
- LDFLAGS="$LDFLAGS -mcpu=750"
- LDFLAGS="$LDFLAGS -L$DEVKITPRO/libogc/lib/cube"
- LDFLAGS="$LDFLAGS -logc"
+ append_var LDFLAGS "-mogc"
+ append_var LDFLAGS "-mcpu=750"
+ append_var LDFLAGS "-L$DEVKITPRO/libogc/lib/cube"
+ append_var LDFLAGS "-logc"
if test "$_dynamic_modules" = "yes" ; then
# retarded toolchain patch forces --gc-sections, overwrite it
- LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
+ append_var LDFLAGS "-Wl,--no-gc-sections"
fi
;;
haiku*)
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
# Needs -lnetwork for the timidity MIDI driver
- LIBS="$LIBS -lnetwork"
+ append_var LIBS "-lnetwork"
_seq_midi=no
;;
irix*)
- DEFINES="$DEFINES -DIRIX"
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
- LIBS="$LIBS -lmd -lfastm -lm"
+ append_var DEFINES "-DIRIX"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var LIBS "-lmd -lfastm -lm"
_ranlib=:
;;
linux* | uclinux*)
# When not cross-compiling, enable large file support, but don't
# care if getconf doesn't exist or doesn't recognize LFS_CFLAGS.
if test -z "$_host"; then
- CXXFLAGS="$CXXFLAGS $(getconf LFS_CFLAGS 2>/dev/null)"
+ append_var CXXFLAGS "`getconf LFS_CFLAGS 2>/dev/null`"
fi
;;
maemo)
- DEFINES="$DEFINES -DMAEMO"
+ append_var DEFINES "-DMAEMO"
;;
mingw*)
- DEFINES="$DEFINES -DWIN32"
- DEFINES="$DEFINES -D__USE_MINGW_ANSI_STDIO=0"
- LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++"
- LIBS="$LIBS -lmingw32 -lwinmm -lgdi32"
- OBJS="$OBJS scummvmwinres.o"
+ append_var DEFINES "-DWIN32"
+ append_var DEFINES "-D__USE_MINGW_ANSI_STDIO=0"
+ append_var LDFLAGS "-static-libgcc -static-libstdc++"
+ append_var LIBS "-lmingw32 -lwinmm -lgdi32"
+ append_var OBJS "scummvmwinres.o"
add_line_to_config_mk 'WIN32 = 1'
;;
mint*)
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
;;
n64)
- DEFINES="$DEFINES -D__N64__"
- DEFINES="$DEFINES -DLIMIT_FPS"
- DEFINES="$DEFINES -DNONSTANDARD_PORT"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
- DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
- DEFINES="$DEFINES -DDISABLE_FANCY_THEMES"
- DEFINES="$DEFINES -DDISABLE_NES_APU"
- DEFINES="$DEFINES -DDISABLE_SID"
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
+ append_var DEFINES "-D__N64__"
+ append_var DEFINES "-DLIMIT_FPS"
+ append_var DEFINES "-DNONSTANDARD_PORT"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var DEFINES "-DDISABLE_DEFAULT_SAVEFILEMANAGER"
+ append_var DEFINES "-DDISABLE_DOSBOX_OPL"
+ append_var DEFINES "-DDISABLE_FANCY_THEMES"
+ append_var DEFINES "-DDISABLE_NES_APU"
+ append_var DEFINES "-DDISABLE_SID"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
;;
ps2)
- CXXFLAGS="$CXXFLAGS -G2"
- DEFINES="$DEFINES -D_EE"
- DEFINES="$DEFINES -D__PLAYSTATION2__"
+ append_var CXXFLAGS "-G2"
+ append_var DEFINES "-D_EE"
+ append_var DEFINES "-D__PLAYSTATION2__"
+ if test -z "$PS2SDK_OLD"; then
+ append_var DEFINES "-D__NEW_PS2SDK__"
+ fi
;;
ps3)
# Force use of SDL and freetype from the ps3 toolchain
_sdlpath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
_freetypepath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
- DEFINES="$DEFINES -DPLAYSTATION3"
- CXXFLAGS="$CXXFLAGS -mcpu=cell -mminimal-toc -I$PSL1GHT/ppu/include -I$PS3DEV/portlibs/ppu/include"
- LDFLAGS="$LDFLAGS -L$PSL1GHT/ppu/lib -L$PS3DEV/portlibs/ppu/lib"
+ append_var DEFINES "-DPLAYSTATION3"
+ append_var CXXFLAGS "-mcpu=cell -mminimal-toc -I$PSL1GHT/ppu/include -I$PS3DEV/portlibs/ppu/include"
+ append_var LDFLAGS "-L$PSL1GHT/ppu/lib -L$PS3DEV/portlibs/ppu/lib"
add_line_to_config_mk 'PLAYSTATION3 = 1'
add_line_to_config_h "#define PREFIX \"${prefix}\""
;;
psp)
if test -d "$PSPDEV/psp/lib"; then
- LDFLAGS="$LDFLAGS -L$PSPDEV/psp/lib"
+ append_var LDFLAGS "-L$PSPDEV/psp/lib"
fi
- LDFLAGS="$LDFLAGS -L$PSPSDK/lib"
- LDFLAGS="$LDFLAGS -specs=$_srcdir/backends/platform/psp/psp.spec"
+ append_var LDFLAGS "-L$PSPSDK/lib"
+ append_var LDFLAGS "-specs=$_srcdir/backends/platform/psp/psp.spec"
_optimization_level=-O3
- CXXFLAGS="$CXXFLAGS -I$PSPSDK/include"
+ append_var CXXFLAGS "-I$PSPSDK/include"
# FIXME: Why is the following in CXXFLAGS and not in DEFINES? Change or document this.
- CXXFLAGS="$CXXFLAGS -D_PSP_FW_VERSION=150"
+ append_var CXXFLAGS "-D_PSP_FW_VERSION=150"
;;
solaris*)
- DEFINES="$DEFINES -DSOLARIS"
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var DEFINES "-DSOLARIS"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
# Needs -lbind -lsocket for the timidity MIDI driver
- LIBS="$LIBS -lnsl -lsocket"
+ append_var LIBS "-lnsl -lsocket"
+ ;;
+ tizen)
+ add_line_to_config_mk "TIZEN_ROOTSTRAP = $TIZEN_ROOTSTRAP"
+ append_var LDFLAGS "--sysroot=${TIZEN_ROOTSTRAP}"
+ append_var LDFLAGS "-L${TIZEN_LIBS}/lib"
+ append_var CXXFLAGS "-I${TIZEN_LIBS}/include"
;;
webos)
- CXXFLAGS="$CXXFLAGS --sysroot=$WEBOS_PDK/arm-gcc/sysroot"
- CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/include"
- CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/include/SDL"
- CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/device/usr/include"
+ append_var CXXFLAGS "--sysroot=$WEBOS_PDK/arm-gcc/sysroot"
+ append_var CXXFLAGS "-I$WEBOS_PDK/include"
+ append_var CXXFLAGS "-I$WEBOS_PDK/include/SDL"
+ append_var CXXFLAGS "-I$WEBOS_PDK/device/usr/include"
# These compiler options are needed to support the Palm Pixi
- CXXFLAGS="$CXXFLAGS -mcpu=arm1136jf-s"
- CXXFLAGS="$CXXFLAGS -mfpu=vfp "
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
- LDFLAGS="$LDFLAGS -L$WEBOS_PDK/device/lib"
- LDFLAGS="$LDFLAGS -L$WEBOS_PDK/device/usr/lib"
- LDFLAGS="$LDFLAGS -Wl,--allow-shlib-undefined"
- LDFLAGS="$LDFLAGS --sysroot=$WEBOS_PDK/arm-gcc/sysroot"
+ append_var CXXFLAGS "-mcpu=arm1136jf-s"
+ append_var CXXFLAGS "-mfpu=vfp "
+ append_var CXXFLAGS "-mfloat-abi=softfp"
+ append_var LDFLAGS "-L$WEBOS_PDK/device/lib"
+ append_var LDFLAGS "-L$WEBOS_PDK/device/usr/lib"
+ append_var LDFLAGS "-Wl,--allow-shlib-undefined"
+ append_var LDFLAGS "--sysroot=$WEBOS_PDK/arm-gcc/sysroot"
add_line_to_config_mk "WEBOS_SDK = $WEBOS_SDK"
_seq_midi=no
;;
wii)
_optimization_level=-Os
- CXXFLAGS="$CXXFLAGS -mrvl"
- CXXFLAGS="$CXXFLAGS -mcpu=750"
- CXXFLAGS="$CXXFLAGS -meabi"
- CXXFLAGS="$CXXFLAGS -mhard-float"
- CXXFLAGS="$CXXFLAGS -ffunction-sections"
- CXXFLAGS="$CXXFLAGS -fdata-sections"
- CXXFLAGS="$CXXFLAGS -fmodulo-sched"
- CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
- CXXFLAGS="$CXXFLAGS -I$DEVKITPRO/libogc/include"
+ append_var CXXFLAGS "-mrvl"
+ append_var CXXFLAGS "-mcpu=750"
+ append_var CXXFLAGS "-meabi"
+ append_var CXXFLAGS "-mhard-float"
+ append_var CXXFLAGS "-ffunction-sections"
+ append_var CXXFLAGS "-fdata-sections"
+ append_var CXXFLAGS "-fmodulo-sched"
+ append_var CXXFLAGS "-fuse-cxa-atexit"
+ append_var CXXFLAGS "-I$DEVKITPRO/libogc/include"
# libogc is required to link the cc tests (includes _start())
- LDFLAGS="$LDFLAGS -mrvl"
- LDFLAGS="$LDFLAGS -mcpu=750"
- LDFLAGS="$LDFLAGS -L$DEVKITPRO/libogc/lib/wii"
- LDFLAGS="$LDFLAGS -logc"
+ append_var LDFLAGS "-mrvl"
+ append_var LDFLAGS "-mcpu=750"
+ append_var LDFLAGS "-L$DEVKITPRO/libogc/lib/wii"
+ append_var LDFLAGS "-logc"
if test "$_dynamic_modules" = "yes" ; then
# retarded toolchain patch forces --gc-sections, overwrite it
- LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
+ append_var LDFLAGS "-Wl,--no-gc-sections"
fi
;;
wince)
_optimization_level=-O3
- CXXFLAGS="$CXXFLAGS -fno-inline-functions"
- CXXFLAGS="$CXXFLAGS -march=armv4"
- CXXFLAGS="$CXXFLAGS -mtune=xscale"
- DEFINES="$DEFINES -D_WIN32_WCE=300"
- DEFINES="$DEFINES -D__ARM__"
- DEFINES="$DEFINES -D_ARM_"
- DEFINES="$DEFINES -DUNICODE"
- DEFINES="$DEFINES -DFPM_DEFAULT"
- DEFINES="$DEFINES -DNONSTANDARD_PORT"
- DEFINES="$DEFINES -DWRAP_MALLOC"
- DEFINES="$DEFINES -DWIN32"
- DEFINES="$DEFINES -Dcdecl="
- DEFINES="$DEFINES -D__cdecl__="
+ append_var CXXFLAGS "-fno-inline-functions"
+ append_var CXXFLAGS "-march=armv4"
+ append_var CXXFLAGS "-mtune=xscale"
+ append_var DEFINES "-D_WIN32_WCE=300"
+ append_var DEFINES "-D__ARM__"
+ append_var DEFINES "-D_ARM_"
+ append_var DEFINES "-DUNICODE"
+ append_var DEFINES "-DFPM_DEFAULT"
+ append_var DEFINES "-DNONSTANDARD_PORT"
+ append_var DEFINES "-DWRAP_MALLOC"
+ append_var DEFINES "-DWIN32"
+ append_var DEFINES "-Dcdecl="
+ append_var DEFINES "-D__cdecl__="
add_line_to_config_mk "WRAP_MALLOC = 1"
;;
esac
@@ -2298,10 +2498,10 @@ if test -n "$_host"; then
# Cross-compiling mode - add your target here if needed
echo "Cross-compiling to $_host"
case "$_host" in
- android | android-v7a)
+ android | android-arm | android-v7a | android-arm-v7a | android-mips | android-x86 | ouya)
# we link a .so as default
- LDFLAGS="$LDFLAGS -shared"
- LDFLAGS="$LDFLAGS -Wl,-Bsymbolic,--no-undefined"
+ append_var LDFLAGS "-shared"
+ append_var LDFLAGS "-Wl,-Bsymbolic,--no-undefined"
HOSTEXEPRE=lib
HOSTEXEEXT=.so
_backend="android"
@@ -2314,35 +2514,18 @@ if test -n "$_host"; then
arm-linux|arm*-linux-gnueabi|arm-*-linux)
;;
arm-riscos|linupy)
- DEFINES="$DEFINES -DLINUPY"
- ;;
- bada)
- _unix=yes
- _backend="bada"
- _port_mk="backends/platform/bada/bada.mk"
- if test "$_debug_build" = yes; then
- _arm_asm=no
- else
- _arm_asm=yes
- fi
- _taskbar=no
- _build_scalers=no
- _seq_midi=no
- _mt32emu=no
- _timidity=no
- _vkeybd=yes
+ append_var DEFINES "-DLINUPY"
;;
bfin*)
;;
caanoo)
- DEFINES="$DEFINES -DCAANOO"
+ append_var DEFINES "-DCAANOO"
if test "$_debug_build" = no; then
# Use -O3 on the Caanoo for non-debug builds.
_optimization_level=-O3
fi
- CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
- CXXFLAGS="$CXXFLAGS -mtune=arm926ej-s"
- ASFLAGS="$ASFLAGS"
+ append_var CXXFLAGS "-mcpu=arm926ej-s"
+ append_var CXXFLAGS "-mtune=arm926ej-s"
_backend="gph"
_build_hq_scalers=no
_savegame_timestamp=no
@@ -2357,12 +2540,11 @@ if test -n "$_host"; then
_strip=$_host-strip
;;
dingux)
- DEFINES="$DEFINES -DDINGUX"
- DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
- ASFLAGS="$ASFLAGS"
- CXXFLAGS="$CXXFLAGS -msoft-float"
- CXXFLAGS="$CXXFLAGS -mips32"
+ append_var DEFINES "-DDINGUX"
+ append_var DEFINES "-DDISABLE_DOSBOX_OPL"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
+ append_var CXXFLAGS "-msoft-float"
+ append_var CXXFLAGS "-mips32"
_backend="dingux"
_mt32emu=no
_optimization_level=-O3
@@ -2378,17 +2560,20 @@ if test -n "$_host"; then
_port_mk="backends/platform/dingux/dingux.mk"
;;
dreamcast)
- DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
- DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- if test "$_release_build" = yes; then
- DEFINES="$DEFINES -DNOSERIAL"
+ append_var DEFINES "-DDISABLE_DEFAULT_SAVEFILEMANAGER"
+ append_var DEFINES "-DDISABLE_TEXT_CONSOLE"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ # Enable serial debugging output only when --enable-debug is passed
+ if test "$_release_build" = yes -o "$_debug_build" != yes; then
+ append_var DEFINES "-DNOSERIAL"
fi
_optimization_level=-O3
- CXXFLAGS="$CXXFLAGS -funroll-loops"
- CXXFLAGS="$CXXFLAGS -fschedule-insns2"
- CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -fdelete-null-pointer-checks"
+ append_var CXXFLAGS "-funroll-loops"
+ append_var CXXFLAGS "-fschedule-insns2"
+ append_var CXXFLAGS "-fomit-frame-pointer"
+ append_var CXXFLAGS "-fdelete-null-pointer-checks"
+ # no-delayed-branch is a workaround for GCC bug #42841 - "SH: Assembler complains pcrel too far."
+ append_var CXXFLAGS "-fno-delayed-branch"
_backend="dc"
_build_scalers=no
_mad=yes
@@ -2397,16 +2582,16 @@ if test -n "$_host"; then
_port_mk="backends/platform/dc/dreamcast.mk"
;;
ds)
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
- DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
- DEFINES="$DEFINES -DDISABLE_FANCY_THEMES"
- DEFINES="$DEFINES -DDISABLE_SID"
- DEFINES="$DEFINES -DDISABLE_NES_APU"
- DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
- DEFINES="$DEFINES -DSTREAM_AUDIO_FROM_DISK"
- DEFINES="$DEFINES -DVECTOR_RENDERER_FORMAT=1555"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var DEFINES "-DDISABLE_DEFAULT_SAVEFILEMANAGER"
+ append_var DEFINES "-DDISABLE_DOSBOX_OPL"
+ append_var DEFINES "-DDISABLE_FANCY_THEMES"
+ append_var DEFINES "-DDISABLE_SID"
+ append_var DEFINES "-DDISABLE_NES_APU"
+ append_var DEFINES "-DDISABLE_TEXT_CONSOLE"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
+ append_var DEFINES "-DSTREAM_AUDIO_FROM_DISK"
+ append_var DEFINES "-DVECTOR_RENDERER_FORMAT=1555"
_backend="ds"
_build_scalers=no
_mt32emu=no
@@ -2426,11 +2611,29 @@ if test -n "$_host"; then
add_line_to_config_h "/* #define DEBUG_WII_GDB */"
add_line_to_config_h "#define USE_WII_DI"
;;
+ gcw0)
+ append_var DEFINES "-DDINGUX -DGCW0"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
+ append_var CXXFLAGS "-mips32"
+ _backend="dingux"
+ _mt32emu=no
+ _optimization_level=-O3
+ # Disable alsa midi to get the port build on OpenDingux toolchain
+ _alsa=no
+ _vkeybd=yes
+ _build_hq_scalers=no
+ _keymapper=yes
+ # Force disable vorbis on dingux, it has terrible performance compared to tremor
+ _vorbis=no
+ # Force disable seq on dingux, no way to use it and it would get enabled by default with configure
+ _seq_midi=no
+ _port_mk="backends/platform/dingux/dingux.mk"
+ ;;
gp2x)
- DEFINES="$DEFINES -DGP2X"
- CXXFLAGS="$CXXFLAGS -march=armv4t"
- ASFLAGS="$ASFLAGS -mfloat-abi=soft"
- LDFLAGS="$LDFLAGS -static"
+ append_var DEFINES "-DGP2X"
+ append_var CXXFLAGS "-march=armv4t"
+ append_var ASFLAGS "-mfloat-abi=soft"
+ append_var LDFLAGS "-static"
_backend="gph"
_build_hq_scalers=no
_savegame_timestamp=no
@@ -2441,10 +2644,10 @@ if test -n "$_host"; then
_port_mk="backends/platform/gph/gp2x-bundle.mk"
;;
gp2xwiz)
- DEFINES="$DEFINES -DGP2XWIZ"
- CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
- CXXFLAGS="$CXXFLAGS -mtune=arm926ej-s"
- ASFLAGS="$ASFLAGS -mfloat-abi=soft"
+ append_var DEFINES "-DGP2XWIZ"
+ append_var CXXFLAGS "-mcpu=arm926ej-s"
+ append_var CXXFLAGS "-mtune=arm926ej-s"
+ append_var ASFLAGS "-mfloat-abi=soft"
_backend="gph"
_build_hq_scalers=no
_savegame_timestamp=no
@@ -2455,7 +2658,8 @@ if test -n "$_host"; then
_port_mk="backends/platform/gph/gp2xwiz-bundle.mk"
;;
iphone)
- DEFINES="$DEFINES -DIPHONE"
+ append_var DEFINES "-DIPHONE"
+ append_var ASFLAGS "-arch armv6"
_backend="iphone"
_build_scalers=no
_mt32emu=no
@@ -2463,18 +2667,18 @@ if test -n "$_host"; then
_timidity=no
;;
m68k-atari-mint)
- DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
+ append_var DEFINES "-DSYSTEM_NOT_SUPPORTING_D_TYPE"
_ranlib=m68k-atari-mint-ranlib
_ar="m68k-atari-mint-ar cru"
_seq_midi=no
;;
maemo)
_optimization_level=-Os
- CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
- CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
- INCLUDES="$INCLUDES -I/usr/X11R6/include"
- LIBS="$LIBS -lX11"
- LIBS="$LIBS -L/usr/lib"
+ append_var CXXFLAGS "-mcpu=arm926ej-s"
+ append_var CXXFLAGS "-fomit-frame-pointer"
+ append_var INCLUDES "-I/usr/X11R6/include"
+ append_var LIBS "-lX11"
+ append_var LIBS "-L/usr/lib"
_backend="maemo"
_vkeybd=yes
@@ -2493,12 +2697,12 @@ if test -n "$_host"; then
_ranlib=$_host-ranlib
;;
mips-sgi*)
- LDFLAGS="$LDFLAGS -static-libgcc"
- LIBS="$LIBS -laudio"
+ append_var LDFLAGS "-static-libgcc"
+ append_var LIBS "-laudio"
;;
motoezx)
- DEFINES="$DEFINES -DMOTOEZX"
- ASFLAGS="$ASFLAGS -mfpu=vfp"
+ append_var DEFINES "-DMOTOEZX"
+ append_var ASFLAGS "-mfpu=vfp"
_backend="linuxmoto"
_build_hq_scalers=no
_mt32emu=no
@@ -2507,8 +2711,8 @@ if test -n "$_host"; then
_port_mk="backends/platform/linuxmoto/linuxmoto.mk"
;;
motomagx)
- DEFINES="$DEFINES -DMOTOMAGX"
- ASFLAGS="$ASFLAGS -mfpu=vfp"
+ append_var DEFINES "-DMOTOMAGX"
+ append_var ASFLAGS "-mfpu=vfp"
_backend="linuxmoto"
_build_hq_scalers=no
_mt32emu=no
@@ -2517,20 +2721,20 @@ if test -n "$_host"; then
_port_mk="backends/platform/linuxmoto/linuxmoto.mk"
;;
n64)
- CXXFLAGS="$CXXFLAGS -mno-extern-sdata"
- CXXFLAGS="$CXXFLAGS --param max-inline-insns-auto=20"
- CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -march=vr4300"
- CXXFLAGS="$CXXFLAGS -mtune=vr4300"
- CXXFLAGS="$CXXFLAGS -mhard-float"
- LDFLAGS="$LDFLAGS -march=vr4300"
- LDFLAGS="$LDFLAGS -mtune=vr4300"
- LDFLAGS="$LDFLAGS -nodefaultlibs"
- LDFLAGS="$LDFLAGS -nostartfiles"
- LDFLAGS="$LDFLAGS -mno-crt0"
- LDFLAGS="$LDFLAGS -L$N64SDK/hkz-libn64"
- LDFLAGS="$LDFLAGS -L$N64SDK/lib"
- LDFLAGS="$LDFLAGS -T n64ld_cpp.x -Xlinker -Map -Xlinker scummvm.map"
+ append_var CXXFLAGS "-mno-extern-sdata"
+ append_var CXXFLAGS "--param max-inline-insns-auto=20"
+ append_var CXXFLAGS "-fomit-frame-pointer"
+ append_var CXXFLAGS "-march=vr4300"
+ append_var CXXFLAGS "-mtune=vr4300"
+ append_var CXXFLAGS "-mhard-float"
+ append_var LDFLAGS "-march=vr4300"
+ append_var LDFLAGS "-mtune=vr4300"
+ append_var LDFLAGS "-nodefaultlibs"
+ append_var LDFLAGS "-nostartfiles"
+ append_var LDFLAGS "-mno-crt0"
+ append_var LDFLAGS "-L$N64SDK/hkz-libn64"
+ append_var LDFLAGS "-L$N64SDK/lib"
+ append_var LDFLAGS "-T n64ld_cpp.x -Xlinker -Map -Xlinker scummvm.map"
_backend="n64"
_mt32emu=no
_build_scalers=no
@@ -2548,16 +2752,16 @@ if test -n "$_host"; then
_port_mk="backends/platform/n64/n64.mk"
;;
neuros)
- DEFINES="$DEFINES -DNEUROS"
+ append_var DEFINES "-DNEUROS"
_backend='null'
_build_hq_scalers=no
_mt32emu=no
;;
openpandora)
- DEFINES="$DEFINES -DOPENPANDORA"
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
+ append_var DEFINES "-DOPENPANDORA"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
if test "$_release_build" = no; then
- DEFINES="$DEFINES -DOP_DEBUG"
+ append_var DEFINES "-DOP_DEBUG"
fi
# Use -O3 on the OpenPandora for optimized builds.
@@ -2566,12 +2770,12 @@ if test -n "$_host"; then
fi
define_in_config_if_yes yes 'USE_ARM_NEON_ASPECT_CORRECTOR'
- CXXFLAGS="$CXXFLAGS -march=armv7-a"
- CXXFLAGS="$CXXFLAGS -mtune=cortex-a8"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
- CXXFLAGS="$CXXFLAGS -mfpu=neon"
- CXXFLAGS="$CXXFLAGS -fsingle-precision-constant"
- ASFLAGS="$ASFLAGS -mfloat-abi=softfp"
+ append_var CXXFLAGS "-march=armv7-a"
+ append_var CXXFLAGS "-mtune=cortex-a8"
+ append_var CXXFLAGS "-mfloat-abi=softfp"
+ append_var CXXFLAGS "-mfpu=neon"
+ append_var CXXFLAGS "-fsingle-precision-constant"
+ append_var ASFLAGS "-mfloat-abi=softfp"
_backend="openpandora"
_build_hq_scalers=yes
_vkeybd=no
@@ -2580,9 +2784,12 @@ if test -n "$_host"; then
_port_mk="backends/platform/openpandora/op-bundle.mk"
;;
ppc-amigaos)
+ # PPC Linker requires this to fix relocation errors
+ append_var CXXFLAGS "-mlongcall"
+
# Only static builds link successfully on buildbot
LDFLAGS=`echo $LDFLAGS | sed 's/-use-dynld//'`
- LDFLAGS="$LDFLAGS -static"
+ append_var LDFLAGS "-static"
# toolchain binaries prefixed by host
_ranlib=$_host-ranlib
@@ -2590,13 +2797,17 @@ if test -n "$_host"; then
_ar="$_host-ar cru"
_as="$_host-as"
_windres=$_host-windres
+
+ _port_mk="backends/platform/sdl/amigaos/amigaos.mk"
;;
ps2)
- DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
- DEFINES="$DEFINES -DDISABLE_SID"
- DEFINES="$DEFINES -DDISABLE_NES_APU"
+ append_var DEFINES "-DDISABLE_TEXT_CONSOLE"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var DEFINES "-DDISABLE_DOSBOX_OPL"
+ append_var DEFINES "-DDISABLE_SID"
+ append_var DEFINES "-DDISABLE_NES_APU"
+ append_var CXXFLAGS "-fno-exceptions"
+ append_var CXXFLAGS "-fno-rtti"
_backend="ps2"
_build_scalers=no
_mt32emu=no
@@ -2604,30 +2815,37 @@ if test -n "$_host"; then
# This trick doesn't work for tremor right now, as the PS2 port the resulting library
# libtremor, while our code later on expects it to be called libvorbisidec.
# TODO: Enable tremor, e.g. by adding -ltremor or by renaming the lib.
+ # Disable this for older SDK as this breaks the build otherwise...
+ if test -z "$PS2SDK_OLD"; then
+ _tremor=yes
+ fi
_mad=yes
_zlib=yes
# HACK to fix compilation of C source files for now.
- add_line_to_config_mk 'CC = ee-gcc'
+ add_line_to_config_mk 'CC := ee-gcc'
+ add_line_to_config_mk 'CFLAGS := -std=c99 -W -Wno-unused-parameter -Wconversion -pedantic -G2 -s -O2 -Wuninitialized'
# HACK to fix linking for now. It seems ee-g++ does not handle linking correctly.
LD=ee-gcc
if test "$_debug_build" = yes; then
# TODO: Setup debug build properly
- DEFINES="$DEFINES -D__PS2_DEBUG__"
- #INCLUDES="$INCLUDES -I$(PS2GDB)/ee"
- #LDFLAGS="$LDFLAGS -L$(PS2GDB)/lib"
- LDFLAGS="$LDFLAGS -lps2gdbStub"
- LDFLAGS="$LDFLAGS -lps2ip"
- LDFLAGS="$LDFLAGS -ldebug"
+ append_var DEFINES "-D__PS2_DEBUG__"
+ #append_var INCLUDES "-I$(PS2GDB)/ee"
+ #append_var LDFLAGS "-L$(PS2GDB)/lib"
+ append_var LDFLAGS "-lps2gdbStub"
+ append_var LDFLAGS "-lps2ip"
+ append_var LDFLAGS "-ldebug"
else
# If not building for debug mode, strip binaries.
- CXXFLAGS="$CXXFLAGS -s"
+ append_var CXXFLAGS "-s"
fi
;;
ps3)
_mt32emu=no
_timidity=no
_vkeybd=yes
+ _eventrec=no
+ _port_mk="backends/platform/sdl/ps3/ps3.mk"
;;
psp)
_backend="psp"
@@ -2636,14 +2854,25 @@ if test -n "$_host"; then
_port_mk="backends/platform/psp/psp.mk"
;;
samsungtv)
- DEFINES="$DEFINES -DSAMSUNGTV"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- ASFLAGS="$ASFLAGS -mfpu=vfp"
+ append_var DEFINES "-DSAMSUNGTV"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var ASFLAGS "-mfpu=vfp"
HOSTEXEEXT=".so"
_backend="samsungtv"
_mt32emu=no
_vkeybd=yes
;;
+ tizen)
+ _unix=yes
+ _backend="tizen"
+ _port_mk="backends/platform/tizen/tizen.mk"
+ _arm_asm=yes
+ _build_scalers=no
+ _seq_midi=no
+ _mt32emu=no
+ _timidity=no
+ _vkeybd=yes
+ ;;
webos)
_backend="webos"
_port_mk="backends/platform/webos/webos.mk"
@@ -2671,7 +2900,7 @@ if test -n "$_host"; then
add_line_to_config_h "#define USE_WII_KBD"
;;
wince)
- LDFLAGS="$LDFLAGS -Wl,--stack,65536"
+ append_var LDFLAGS "-Wl,--stack,65536"
_tremolo=yes
_backend="wince"
_detectlang=yes
@@ -2689,148 +2918,140 @@ fi
#
case $_backend in
android)
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
- CXXFLAGS="$CXXFLAGS -Wa,--noexecstack"
- LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
- INCLUDES="$INCLUDES -I$ANDROID_NDK/sources/cxx-stl/system/include"
- ;;
- bada)
- # dirent.h not available. NONSTANDARD_PORT==ensure portdefs.h is included
- DEFINES="$DEFINES -DBADA -DDISABLE_STDIO_FILESTREAM -DNONSTANDARD_PORT"
- DEFINES="$DEFINES -DNO_STDERR_STDOUT"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/bada '
- INCLUDES="$INCLUDES "'-I$(BADA_SDK)/include'
- INCLUDES="$INCLUDES "'-I$(BADA_SDK_ROOT)/Include'
- if test "$_debug_build" = yes; then
- # debug using with the simulator
- CXXFLAGS="$CXXFLAGS -D_DEBUG -DSHP -DBUILD_DLL -fmessage-length=0"
- else
- # created a shared library for inclusion via the eclipse build
- CXXFLAGS="$CXXFLAGS -DSHP"
- CXXFLAGS="$CXXFLAGS -fpic"
- CXXFLAGS="$CXXFLAGS -fshort-wchar"
- CXXFLAGS="$CXXFLAGS -mcpu=cortex-a8"
- CXXFLAGS="$CXXFLAGS -mfpu=vfpv3"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=hard"
- CXXFLAGS="$CXXFLAGS -mlittle-endian"
- CXXFLAGS="$CXXFLAGS -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wno-psabi"
- CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
- CXXFLAGS="$CXXFLAGS -fno-short-enums"
- fi
- HOSTEXEPRE=lib
- HOSTEXEEXT=.a
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
+ append_var CXXFLAGS "-Wa,--noexecstack"
+ append_var LDFLAGS "-Wl,-z,noexecstack"
+ append_var INCLUDES "-I$ANDROID_NDK/sources/cxx-stl/system/include"
;;
dc)
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/dc'
- INCLUDES="$INCLUDES "'-isystem $(ronindir)/include'
- LDFLAGS="$LDFLAGS -Wl,-Ttext,0x8c010000"
- LDFLAGS="$LDFLAGS -nostartfiles"
- LDFLAGS="$LDFLAGS "'$(ronindir)/lib/crt0.o'
- LDFLAGS="$LDFLAGS "'-L$(ronindir)/lib'
- if test "$_release_build" = yes; then
- LIBS="$LIBS -lronin-noserial -lm"
+ append_var INCLUDES '-I$(srcdir)/backends/platform/dc'
+ append_var INCLUDES '-isystem $(ronindir)/include'
+ append_var LDFLAGS "-Wl,-Ttext,0x8c010000"
+ append_var LDFLAGS "-nostartfiles"
+ append_var LDFLAGS '$(ronindir)/lib/crt0.o'
+ append_var LDFLAGS '-L$(ronindir)/lib'
+ # Enable serial debugging output only when --enable-debug is passed
+ if test "$_release_build" = yes -o "$_debug_build" != yes; then
+ append_var LIBS "-lronin-noserial -lm"
else
- LIBS="$LIBS -lronin -lm"
+ append_var LIBS "-lronin -lm"
fi
;;
dingux)
- DEFINES="$DEFINES -DDINGUX"
+ append_var DEFINES "-DDINGUX"
;;
ds)
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/ds/arm9/source'
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/ds/commoninclude'
- INCLUDES="$INCLUDES "'-Ibackends/platform/ds/arm9/data'
+ append_var INCLUDES '-I$(srcdir)/backends/platform/ds/arm9/source'
+ append_var INCLUDES '-I$(srcdir)/backends/platform/ds/commoninclude'
+ append_var INCLUDES '-Ibackends/platform/ds/arm9/data'
;;
gph)
# On the GPH devices we want fancy themes but do not want the load/save thumbnail grid.
- DEFINES="$DEFINES -DDISABLE_SAVELOADCHOOSER_GRID"
- DEFINES="$DEFINES -DGPH_DEVICE"
- DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
+ append_var DEFINES "-DDISABLE_SAVELOADCHOOSER_GRID"
+ append_var DEFINES "-DGPH_DEVICE"
+ append_var DEFINES "-DREDUCE_MEMORY_USAGE"
if test "$_debug_build" = yes; then
- DEFINES="$DEFINES -DGPH_DEBUG"
+ append_var DEFINES "-DGPH_DEBUG"
fi
;;
iphone)
- LIBS="$LIBS -lobjc -framework UIKit -framework CoreGraphics -framework OpenGLES"
- LIBS="$LIBS -framework QuartzCore -framework GraphicsServices -framework CoreFoundation"
- LIBS="$LIBS -framework Foundation -framework AudioToolbox -framework CoreAudio"
+ append_var LIBS "-lobjc -framework UIKit -framework CoreGraphics -framework OpenGLES"
+ append_var LIBS "-framework QuartzCore -framework CoreFoundation -framework Foundation"
+ append_var LIBS "-framework AudioToolbox -framework CoreAudio"
;;
linuxmoto)
- DEFINES="$DEFINES -DLINUXMOTO"
+ append_var DEFINES "-DLINUXMOTO"
;;
maemo)
- DEFINES="$DEFINES -DMAEMO"
+ append_var DEFINES "-DMAEMO"
;;
n64)
- INCLUDES="$INCLUDES "'-I$(N64SDK)/include'
- INCLUDES="$INCLUDES "'-I$(N64SDK)/mips64/include'
- INCLUDES="$INCLUDES "'-I$(N64SDK)/hkz-libn64'
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/n64'
- LIBS="$LIBS -lpakfs -lframfs -ln64 -ln64utils -lromfs"
- LIBS="$LIBS -lm -lstdc++ -lz"
+ append_var INCLUDES '-I$(N64SDK)/include'
+ append_var INCLUDES '-I$(N64SDK)/mips64/include'
+ append_var INCLUDES '-I$(N64SDK)/hkz-libn64'
+ append_var INCLUDES '-I$(srcdir)/backends/platform/n64'
+ append_var LIBS "-lpakfs -lframfs -ln64 -ln64utils -lromfs"
+ append_var LIBS "-lm -lstdc++ -lz"
;;
null)
- DEFINES="$DEFINES -DUSE_NULL_DRIVER"
+ append_var DEFINES "-DUSE_NULL_DRIVER"
;;
openpandora)
;;
ps2)
- DEFINES="$DEFINES -D_EE"
- DEFINES="$DEFINES -DFORCE_RTL"
- INCLUDES="$INCLUDES -I$PS2SDK/ee/include"
- INCLUDES="$INCLUDES -I$PS2SDK/common/include"
- INCLUDES="$INCLUDES -I$PS2SDK/ports/include"
+ append_var DEFINES "-D_EE"
+ append_var DEFINES "-DFORCE_RTL"
+ append_var INCLUDES "-I$PS2SDK/ee/include"
+ append_var INCLUDES "-I$PS2SDK/common/include"
+ append_var INCLUDES "-I$PS2SDK/ports/include"
if test "$_dynamic_modules" = no ; then
- LDFLAGS="$LDFLAGS -mno-crt0"
- LDFLAGS="$LDFLAGS $PS2SDK/ee/startup/crt0.o"
- LDFLAGS="$LDFLAGS -T $PS2SDK/ee/startup/linkfile"
+ append_var LDFLAGS "-mno-crt0"
+ append_var LDFLAGS "$PS2SDK/ee/startup/crt0.o"
+ append_var LDFLAGS "-T $PS2SDK/ee/startup/linkfile"
fi
- LDFLAGS="$LDFLAGS -L$PS2SDK/ee/lib"
- LDFLAGS="$LDFLAGS -L$PS2SDK/ports/lib"
- LIBS="$LIBS -lmc -lpad -lmouse -lhdd -lpoweroff -lsjpcm"
- LIBS="$LIBS -lm -lc -lfileXio -lkernel -lstdc++"
+ append_var LDFLAGS "-L$PS2SDK/ee/lib"
+ append_var LDFLAGS "-L$PS2SDK/ports/lib"
+ append_var LIBS "-lmc -lpad -lmouse -lhdd -lpoweroff -lsjpcm"
+ append_var LIBS "-lm -lc -lfileXio -lkernel -lstdc++"
;;
psp)
- DEFINES="$DEFINES -D__PSP__"
- DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
- DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
- LIBS="$LIBS -lpng"
- LIBS="$LIBS -Wl,-Map,mapfile.txt"
+ append_var DEFINES "-D__PSP__"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var DEFINES "-DDISABLE_DOSBOX_OPL"
+ append_var LIBS "-lpng"
+ append_var LIBS "-Wl,-Map,mapfile.txt"
;;
samsungtv)
- DEFINES="$DEFINES -DSAMSUNGTV"
- LDFLAGS="$LDFLAGS -shared"
- LDFLAGS="$LDFLAGS -fpic"
+ append_var DEFINES "-DSAMSUNGTV"
+ append_var LDFLAGS "-shared"
+ append_var LDFLAGS "-fpic"
+ ;;
+ tizen)
+ # dirent.h not available. NONSTANDARD_PORT==ensure portdefs.h is included
+ append_var DEFINES "-DTIZEN -DDISABLE_STDIO_FILESTREAM -DNONSTANDARD_PORT"
+ append_var DEFINES "-DNO_STDERR_STDOUT"
+ append_var DEFINES "-DDISABLE_COMMAND_LINE"
+ append_var INCLUDES '-I$(srcdir)/backends/platform/tizen'
+ append_var INCLUDES '-I$(TIZEN_ROOTSTRAP)/usr/include'
+ append_var INCLUDES '-I$(TIZEN_ROOTSTRAP)/usr/include/osp'
+ if test "$_debug_build" = yes; then
+ append_var CXXFLAGS "-D_DEBUG -DBUILD_DLL -O0 -g3"
+ fi
+ # created a shared library for inclusion via the eclipse build
+ append_var CXXFLAGS "-Wno-psabi"
+ append_var CXXFLAGS "--sysroot=${TIZEN_ROOTSTRAP}"
+ append_var CXXFLAGS "-fmessage-length=0"
+ append_var CXXFLAGS "-fPIC"
+ HOSTEXEPRE=lib
+ HOSTEXEEXT=.a
;;
webos)
# There is no sdl-config in the WebOS PDK so we don't use find_sdlconfig here.
# The PDL library acts as the WebOS device toolchain, and is required to control the virtual keyboard among other OS-level events.
- LIBS="$LIBS -lSDL -lpdl"
- DEFINES="$DEFINES -DWEBOS"
- DEFINES="$DEFINES -DSDL_BACKEND"
+ append_var LIBS "-lSDL -lpdl"
+ append_var DEFINES "-DWEBOS"
+ append_var DEFINES "-DSDL_BACKEND"
add_line_to_config_mk "SDL_BACKEND = 1"
- MODULES="$MODULES backends/platform/sdl"
+ append_var MODULES "backends/platform/sdl"
;;
wii)
- DEFINES="$DEFINES -D__WII__"
- DEFINES="$DEFINES -DGEKKO"
+ append_var DEFINES "-D__WII__"
+ append_var DEFINES "-DGEKKO"
case $_host_os in
gamecube)
- LIBS="$LIBS -lgxflux -liso9660 -lfat -logc -ldb"
+ append_var LIBS "-lgxflux -liso9660 -lfat -logc -ldb"
;;
*)
- LIBS="$LIBS -lgxflux -ldi -liso9660 -ltinysmb -lfat -lwiiuse -lbte -logc -lwiikeyboard -ldb"
+ append_var LIBS "-lgxflux -ldi -liso9660 -ltinysmb -lfat -lwiiuse -lbte -logc -lwiikeyboard -ldb"
;;
esac
;;
wince)
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince'
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince/CEgui'
- INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince/CEkeys'
- LIBS="$LIBS -static -lSDL"
- DEFINES="$DEFINES -DSDL_BACKEND"
+ append_var INCLUDES '-I$(srcdir)/backends/platform/wince'
+ append_var INCLUDES '-I$(srcdir)/backends/platform/wince/CEgui'
+ append_var INCLUDES '-I$(srcdir)/backends/platform/wince/CEkeys'
+ append_var LIBS "-static -lSDL"
+ append_var DEFINES "-DSDL_BACKEND"
add_line_to_config_mk "SDL_BACKEND = 1"
;;
sdl)
@@ -2840,7 +3061,7 @@ case $_backend in
exit 1
;;
esac
-MODULES="$MODULES backends/platform/$_backend"
+append_var MODULES "backends/platform/$_backend"
#
# Setup SDL specifics for SDL based backends
@@ -2848,9 +3069,9 @@ MODULES="$MODULES backends/platform/$_backend"
case $_backend in
dingux | gph | linuxmoto | maemo | openpandora | samsungtv | sdl)
find_sdlconfig
- INCLUDES="$INCLUDES `$_sdlconfig --prefix="$_sdlpath" --cflags`"
- LIBS="$LIBS `$_sdlconfig --prefix="$_sdlpath" --libs`"
- DEFINES="$DEFINES -DSDL_BACKEND"
+ append_var INCLUDES "`$_sdlconfig --prefix="$_sdlpath" --cflags`"
+ append_var LIBS "`$_sdlconfig --prefix="$_sdlpath" --libs`"
+ append_var DEFINES "-DSDL_BACKEND"
add_line_to_config_mk "SDL_BACKEND = 1"
_sdlversion=`$_sdlconfig --version`
@@ -2858,6 +3079,9 @@ case $_backend in
1.3.*)
add_line_to_config_mk "USE_SDL13 = 1"
;;
+ 2.0.*)
+ add_line_to_config_mk "USE_SDL2 = 1"
+ ;;
*)
;;
esac
@@ -2869,7 +3093,7 @@ esac
# Enable 16bit support only for backends which support it
#
case $_backend in
- android | bada | dingux | dc | gph | iphone | maemo | openpandora | psp | samsungtv | sdl | webos | wii)
+ android | dingux | dc | gph | iphone | maemo | openpandora | psp | samsungtv | sdl | tizen | webos | wii)
if test "$_16bit" = auto ; then
_16bit=yes
else
@@ -2882,6 +3106,20 @@ case $_backend in
esac
#
+# Enable Event Recorder only for backends that support it
+#
+case $_backend in
+ sdl)
+ if test "$_eventrec" = auto ; then
+ _eventrec=yes
+ fi
+ ;;
+ *)
+ _eventrec=no
+ ;;
+esac
+
+#
# Disable savegame timestamp support for backends which don't have a reliable real time clock
#
case $_backend in
@@ -2933,7 +3171,7 @@ esac
echo $_posix
if test "$_posix" = yes ; then
- DEFINES="$DEFINES -DPOSIX"
+ append_var DEFINES "-DPOSIX"
add_line_to_config_mk 'POSIX = 1'
fi
@@ -2963,8 +3201,8 @@ fi
if test "$_optimizations" = yes ; then
# Enable optimizations. This also
# makes it possible to use -Wuninitialized, so let's do that.
- CXXFLAGS="$CXXFLAGS $_optimization_level"
- CXXFLAGS="$CXXFLAGS -Wuninitialized"
+ append_var CXXFLAGS "$_optimization_level"
+ append_var CXXFLAGS "-Wuninitialized"
fi
#
@@ -2980,8 +3218,8 @@ if test "$_dynamic_modules" = yes ; then
android)
_plugin_prefix="lib"
_plugin_suffix=".so"
- CXXFLAGS="$CXXFLAGS -fpic"
- LIBS="$LIBS -ldl"
+ append_var CXXFLAGS "-fpic"
+ append_var LIBS "-ldl"
# Work around an Android 2.0+ run-time linker bug:
# The linker doesn't actually look in previously
# loaded libraries when trying to resolve symbols -
@@ -3000,7 +3238,7 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
darwin*)
_plugin_prefix=""
_plugin_suffix=".plugin"
- LIBS="$LIBS -ldl"
+ append_var LIBS "-ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS += -bundle -bundle_loader $(EXECUTABLE) -exported_symbols_list "$(srcdir)/plugin.exp"
@@ -3020,9 +3258,9 @@ POST_OBJS_FLAGS := -Wl,--no-whole-archive
;;
ds)
_elf_loader=yes
- DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
- DEFINES="$DEFINES -DUNCACHED_PLUGINS"
- DEFINES="$DEFINES -DELF_NO_MEM_MANAGER"
+ append_var DEFINES "-DELF_LOADER_CXA_ATEXIT"
+ append_var DEFINES "-DUNCACHED_PLUGINS"
+ append_var DEFINES "-DELF_NO_MEM_MANAGER"
_mak_plugins='
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwork -mno-fpu
'
@@ -3030,7 +3268,7 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwo
freebsd*)
_plugin_prefix="lib"
_plugin_suffix=".so"
- CXXFLAGS="$CXXFLAGS -fPIC"
+ append_var CXXFLAGS "-fPIC"
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared
@@ -3040,8 +3278,8 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
;;
gamecube | wii)
_elf_loader=yes
- DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
- DEFINES="$DEFINES -DUNCACHED_PLUGINS"
+ append_var DEFINES "-DELF_LOADER_CXA_ATEXIT"
+ append_var DEFINES "-DUNCACHED_PLUGINS"
_mak_plugins='
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
'
@@ -3049,8 +3287,8 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
gph*)
_plugin_prefix=""
_plugin_suffix=".plugin"
- CXXFLAGS="$CXXFLAGS -fpic"
- LIBS="$LIBS -ldl"
+ append_var CXXFLAGS "-fpic"
+ append_var LIBS "-ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS += -shared
@@ -3061,8 +3299,8 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
irix*)
_plugin_prefix="lib"
_plugin_suffix=".so"
- CXXFLAGS="$CXXFLAGS -fpic"
- LIBS="$LIBS -ldl"
+ append_var CXXFLAGS "-fpic"
+ append_var LIBS "-ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared -static-libgcc
@@ -3074,8 +3312,8 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
linux* | gnu* | k*bsd*-gnu*)
_plugin_prefix="lib"
_plugin_suffix=".so"
- CXXFLAGS="$CXXFLAGS -fPIC"
- LIBS="$LIBS -ldl"
+ append_var CXXFLAGS "-fPIC"
+ append_var LIBS "-ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared
@@ -3094,7 +3332,7 @@ POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-im
'
;;
wince)
- DEFINES="$DEFINES -DUNCACHED_PLUGINS"
+ append_var DEFINES "-DUNCACHED_PLUGINS"
HOSTEXEEXT=".dll"
_plugin_prefix=""
_plugin_suffix=".plugin"
@@ -3107,14 +3345,15 @@ POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-im
;;
ps2)
_elf_loader=yes
+ append_var DEFINES "-DUNCACHED_PLUGINS"
_mak_plugins='
-LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/main_prog.ld
-PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/plugin.ld -lstdc++ -lc
+LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/main_prog.ld
+PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/plugin.ld -lstdc++ -lc
'
;;
psp)
_elf_loader=yes
- DEFINES="$DEFINES -DUNCACHED_PLUGINS"
+ append_var DEFINES "-DUNCACHED_PLUGINS"
_mak_plugins='
LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/main_prog.ld
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lstdc++ -lc
@@ -3123,8 +3362,8 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lstdc++ -lc
webos)
_plugin_prefix="lib"
_plugin_suffix=".so"
- CXXFLAGS="$CXXFLAGS -fpic"
- LIBS="$LIBS -ldl"
+ append_var CXXFLAGS "-fpic"
+ append_var LIBS "-ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared $(LDFLAGS)
@@ -3200,7 +3439,7 @@ define_in_config_if_yes "$_build_hq_scalers" 'USE_HQ_SCALERS'
cat > $TMPC << EOF
int main(void) { return 0; }
EOF
-cc_check -lm && LIBS="$LIBS -lm"
+cc_check -lm && append_var LIBS "-lm"
#
# Check for Ogg Vorbis
@@ -3216,8 +3455,8 @@ EOF
-lvorbisfile -lvorbis -logg && _vorbis=yes
fi
if test "$_vorbis" = yes ; then
- LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisfile -lvorbis -logg"
- INCLUDES="$INCLUDES $OGG_CFLAGS $VORBIS_CFLAGS"
+ append_var LIBS "$OGG_LIBS $VORBIS_LIBS -lvorbisfile -lvorbis -logg"
+ append_var INCLUDES "$OGG_CFLAGS $VORBIS_CFLAGS"
fi
define_in_config_if_yes "$_vorbis" 'USE_VORBIS'
echo "$_vorbis"
@@ -3244,11 +3483,13 @@ if test "$_tremor" = yes && test "$_vorbis" = no; then
add_line_to_config_h '#define USE_VORBIS'
if test "$_tremolo" = yes ; then
add_line_to_config_h '#define USE_TREMOLO'
- LIBS="$LIBS $TREMOR_LIBS -ltremolo"
+ append_var LIBS "$TREMOR_LIBS -ltremolo"
+ elif test "$_host" = ps2 ; then
+ LIBS="-ltremor $LIBS"
else
- LIBS="$LIBS $TREMOR_LIBS -lvorbisidec"
+ append_var LIBS "$TREMOR_LIBS -lvorbisidec"
fi
- INCLUDES="$INCLUDES $TREMOR_CFLAGS"
+ append_var INCLUDES "$TREMOR_CFLAGS"
else
if test "$_vorbis" = yes; then
_tremor="no (Ogg Vorbis/Tremor support is mutually exclusive)"
@@ -3278,11 +3519,11 @@ EOF
fi
if test "$_flac" = yes ; then
if test "$_vorbis" = yes ; then
- LIBS="$LIBS $FLAC_LIBS $OGG_LIBS -lFLAC -logg"
+ append_var LIBS "$FLAC_LIBS $OGG_LIBS -lFLAC -logg"
else
- LIBS="$LIBS $FLAC_LIBS -lFLAC"
+ append_var LIBS "$FLAC_LIBS -lFLAC"
fi
- INCLUDES="$INCLUDES $FLAC_CFLAGS"
+ append_var INCLUDES "$FLAC_CFLAGS"
fi
define_in_config_if_yes "$_flac" 'USE_FLAC'
echo "$_flac"
@@ -3300,8 +3541,8 @@ EOF
cc_check $MAD_CFLAGS $MAD_LIBS -lmad && _mad=yes
fi
if test "$_mad" = yes ; then
- LIBS="$LIBS $MAD_LIBS -lmad"
- INCLUDES="$INCLUDES $MAD_CFLAGS"
+ append_var LIBS "$MAD_LIBS -lmad"
+ append_var INCLUDES "$MAD_CFLAGS"
fi
define_in_config_if_yes "$_mad" 'USE_MAD'
echo "$_mad"
@@ -3319,13 +3560,39 @@ EOF
cc_check $ALSA_CFLAGS $ALSA_LIBS -lasound && _alsa=yes
fi
if test "$_alsa" = yes ; then
- LIBS="$LIBS $ALSA_LIBS -lasound"
- INCLUDES="$INCLUDES $ALSA_CFLAGS"
+ append_var LIBS "$ALSA_LIBS -lasound"
+ append_var INCLUDES "$ALSA_CFLAGS"
fi
-define_in_config_h_if_yes "$_alsa" 'USE_ALSA'
+define_in_config_if_yes "$_alsa" 'USE_ALSA'
echo "$_alsa"
#
+# Check for libjpeg
+#
+echocheck "libjpeg >= v6b"
+if test "$_jpeg" = auto ; then
+ _jpeg=no
+ cat > $TMPC << EOF
+#include <stdio.h>
+#include <jpeglib.h>
+int main(void) {
+#if JPEG_LIB_VERSION >= 62
+#else
+ syntax error
+#endif
+ return 0;
+}
+EOF
+ cc_check $JPEG_CFLAGS $JPEG_LIBS -ljpeg && _jpeg=yes
+fi
+if test "$_jpeg" = yes ; then
+ append_var LIBS "$JPEG_LIBS -ljpeg"
+ append_var INCLUDES "$JPEG_CFLAGS"
+fi
+define_in_config_if_yes "$_jpeg" 'USE_JPEG'
+echo "$_jpeg"
+
+#
# Check for PNG
#
echocheck "PNG >= 1.2.8"
@@ -3341,11 +3608,11 @@ int main(void) {
return 0;
}
EOF
- cc_check $PNG_CFLAGS $PNG_LIBS -lpng && _png=yes
+ cc_check $PNG_CFLAGS $PNG_LIBS -lpng -lz && _png=yes
fi
if test "$_png" = yes ; then
- LIBS="$LIBS $PNG_LIBS -lpng"
- INCLUDES="$INCLUDES $PNG_CFLAGS"
+ append_var LIBS "$PNG_LIBS -lpng -lz"
+ append_var INCLUDES "$PNG_CFLAGS"
fi
define_in_config_if_yes "$_png" 'USE_PNG'
echo "$_png"
@@ -3368,8 +3635,8 @@ EOF
cc_check $THEORADEC_CFLAGS $THEORADEC_LIBS -ltheoradec && _theoradec=yes
fi
if test "$_theoradec" = yes ; then
- LIBS="$LIBS $THEORADEC_LIBS -ltheoradec"
- INCLUDES="$INCLUDES $THEORADEC_CFLAGS"
+ append_var LIBS "$THEORADEC_LIBS -ltheoradec"
+ append_var INCLUDES "$THEORADEC_CFLAGS"
fi
define_in_config_if_yes "$_theoradec" 'USE_THEORADEC'
if test ! "$_theoradec" = notsupported ; then
@@ -3389,8 +3656,8 @@ EOF
cc_check $FAAD_CFLAGS $FAAD_LIBS -lfaad && _faad=yes
fi
if test "$_faad" = yes ; then
- LIBS="$LIBS $FAAD_LIBS -lfaad"
- INCLUDES="$INCLUDES $FAAD_CFLAGS"
+ append_var LIBS "$FAAD_LIBS -lfaad"
+ append_var INCLUDES "$FAAD_CFLAGS"
fi
define_in_config_if_yes "$_faad" 'USE_FAAD'
echo "$_faad"
@@ -3421,8 +3688,8 @@ EOF
cc_check $SNDIO_CFLAGS $SNDIO_LIBS -lsndio && _sndio=yes
fi
if test "$_sndio" = yes ; then
- LIBS="$LIBS $SNDIO_LIBS -lsndio"
- INCLUDES="$INCLUDES $SNDIO_CFLAGS"
+ append_var LIBS "$SNDIO_LIBS -lsndio"
+ append_var INCLUDES "$SNDIO_CFLAGS"
fi
define_in_config_h_if_yes "$_sndio" 'USE_SNDIO'
echo "$_sndio"
@@ -3454,13 +3721,59 @@ EOF
cc_check $ZLIB_CFLAGS $ZLIB_LIBS -lz && _zlib=yes
fi
if test "$_zlib" = yes ; then
- LIBS="$LIBS $ZLIB_LIBS -lz"
- INCLUDES="$INCLUDES $ZLIB_CFLAGS"
+ append_var LIBS "$ZLIB_LIBS -lz"
+ append_var INCLUDES "$ZLIB_CFLAGS"
fi
define_in_config_if_yes "$_zlib" 'USE_ZLIB'
echo "$_zlib"
#
+# Check for LibMPEG2
+#
+echocheck "libmpeg2 >= 0.4.0"
+if test "$_mpeg2" = auto ; then
+ _mpeg2=no
+ cat > $TMPC << EOF
+typedef signed $type_1_byte int8_t;
+typedef signed $type_2_byte int16_t;
+typedef signed $type_4_byte int32_t;
+
+typedef unsigned $type_1_byte uint8_t;
+typedef unsigned $type_2_byte uint16_t;
+typedef unsigned $type_4_byte uint32_t;
+
+extern "C" {
+#include <mpeg2dec/mpeg2.h>
+}
+
+int main(void) {
+ #if MPEG2_RELEASE < MPEG2_VERSION(0, 4, 0)
+ #error libmpeg2 version too low
+ #endif
+
+ /* mpeg2_state_t first appears in 0.4.0 */
+ mpeg2_state_t state;
+
+ return 0;
+}
+EOF
+
+ if test -n "$_host"; then
+ # don't execute while cross compiling
+ cc_check $MPEG2_CFLAGS $MPEG2_LIBS -lmpeg2 && _mpeg2=yes
+ else
+ cc_check_no_clean $MPEG2_CFLAGS $MPEG2_LIBS -lmpeg2 && $TMPO$HOSTEXEEXT && _mpeg2=yes
+ cc_check_clean
+ fi
+fi
+if test "$_mpeg2" = yes ; then
+ append_var INCLUDES "$MPEG2_CFLAGS"
+ append_var LIBS "$MPEG2_LIBS -lmpeg2"
+fi
+define_in_config_if_yes "$_mpeg2" 'USE_MPEG2'
+echo "$_mpeg2"
+
+#
# Check for Sparkle if updates support is enabled
#
echocheck "Sparkle"
@@ -3477,8 +3790,8 @@ EOF
cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes
fi
if test "$_sparkle" = yes ; then
- LIBS="$LIBS $SPARKLE_LIBS -framework Sparkle"
- INCLUDES="$INCLUDES $SPARKLE_CFLAGS"
+ append_var LIBS "$SPARKLE_LIBS -framework Sparkle"
+ append_var INCLUDES "$SPARKLE_CFLAGS"
fi
define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
fi
@@ -3499,13 +3812,13 @@ fi
if test "$_fluidsynth" = yes ; then
case $_host_os in
mingw*)
- LIBS="$LIBS $FLUIDSYNTH_LIBS -lfluidsynth -ldsound -lwinmm"
+ append_var LIBS "$FLUIDSYNTH_LIBS -lfluidsynth -ldsound -lwinmm"
;;
*)
- LIBS="$LIBS $FLUIDSYNTH_LIBS -lfluidsynth"
+ append_var LIBS "$FLUIDSYNTH_LIBS -lfluidsynth"
;;
esac
- INCLUDES="$INCLUDES $FLUIDSYNTH_CFLAGS"
+ append_var INCLUDES "$FLUIDSYNTH_CFLAGS"
fi
define_in_config_if_yes "$_fluidsynth" 'USE_FLUIDSYNTH'
echo "$_fluidsynth"
@@ -3541,8 +3854,27 @@ else
fi
if test "$_readline" = yes ; then
- LIBS="$LIBS $READLINE_LIBS $_READLINE_LIBS"
- INCLUDES="$INCLUDES $READLINE_CFLAGS"
+ append_var LIBS "$READLINE_LIBS $_READLINE_LIBS"
+ append_var INCLUDES "$READLINE_CFLAGS"
+
+ #
+ # Check the type of rl_completion_entry_function.
+ # It can be int(*)(const char *, int) or char *(*)(const char *, int).
+ #
+ cat > $TMPC << EOF
+#include <stdio.h>
+#include <readline/readline.h>
+#include <readline/history.h>
+
+int readline_completionFunction(const char *, int);
+
+int main(void) {
+ char *x = readline("");
+ rl_completion_entry_function = &readline_completionFunction;
+}
+EOF
+ cc_check -c && add_line_to_config_h '#define USE_READLINE_INT_COMPLETION'
+
fi
define_in_config_h_if_yes "$_readline" 'USE_READLINE'
@@ -3563,8 +3895,8 @@ if test "$_libunity" = auto ; then
;;
*)
# Unity has a lots of dependencies, update the libs and cflags var with them
- LIBUNITY_LIBS="$LIBUNITY_LIBS $(pkg-config --libs unity = 3.8.4 2>> "$TMPLOG")"
- LIBUNITY_CFLAGS="$LIBUNITY_CFLAGS $(pkg-config --cflags unity = 3.8.4 2>> "$TMPLOG")"
+ LIBUNITY_LIBS="$LIBUNITY_LIBS `pkg-config --libs 'unity > 3.8.1' 2>> "$TMPLOG"`"
+ LIBUNITY_CFLAGS="$LIBUNITY_CFLAGS `pkg-config --cflags 'unity > 3.8.1' 2>> "$TMPLOG"`"
_libunity=no
cat > $TMPC << EOF
#include <unity.h>
@@ -3578,10 +3910,14 @@ EOF
esac
fi
if test "$_libunity" = yes ; then
- LIBS="$LIBS $LIBUNITY_LIBS"
- INCLUDES="$INCLUDES $LIBUNITY_CFLAGS"
+ if test "$LIBUNITY_CFLAGS" = "" || test "$LIBUNITY_LIBS" = ""; then
+ LIBUNITY_LIBS="$LIBUNITY_LIBS `pkg-config --libs 'unity > 3.8.1' 2>> "$TMPLOG"`"
+ LIBUNITY_CFLAGS="$LIBUNITY_CFLAGS `pkg-config --cflags 'unity > 3.8.1' 2>> "$TMPLOG"`"
+ fi
+ append_var LIBS "$LIBUNITY_LIBS"
+ append_var INCLUDES "$LIBUNITY_CFLAGS"
fi
-define_in_config_h_if_yes "$_libunity" 'USE_TASKBAR_UNITY'
+define_in_config_h_if_yes "$_libunity" 'USE_UNITY'
fi
echo "$_libunity"
@@ -3617,8 +3953,8 @@ EOF
fi
if test "$_freetype2" = "yes"; then
- LIBS="$LIBS $FREETYPE2_LIBS"
- INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"
+ append_var LIBS "$FREETYPE2_LIBS"
+ append_var INCLUDES "$FREETYPE2_CFLAGS"
fi
fi
@@ -3642,8 +3978,8 @@ case $_backend in
_opengles=yes
OPENGL_LIBS="-lGLES_CM -lEGL -lX11"
OPENGL_CFLAGS="$OPENGL_LIBS"
- LIBS="$LIBS $OPENGL_LIBS"
- INCLUDES="$INCLUDES $OPENGL_CFLAGS"
+ append_var LIBS "$OPENGL_LIBS"
+ append_var INCLUDES "$OPENGL_CFLAGS"
fi
;;
esac
@@ -3715,13 +4051,13 @@ EOF
cc_check_clean
if test "$_opengl" = yes ; then
- LIBS="$LIBS $OPENGL_LIBS"
- INCLUDES="$INCLUDES $OPENGL_CFLAGS"
+ append_var LIBS "$OPENGL_LIBS"
+ append_var INCLUDES "$OPENGL_CFLAGS"
fi
fi
case $_host_os in
- bada)
+ tizen)
# components live in non-standard locations so just assume sane SDK
_opengl=yes
_opengles=yes
@@ -3777,16 +4113,16 @@ if test "$_have_x86" = yes ; then
else
case $_host_os in
darwin*)
- NASMFLAGS="$NASMFLAGS -f macho"
+ append_var NASMFLAGS "-f macho"
;;
mingw*)
- NASMFLAGS="$NASMFLAGS -f win32"
+ append_var NASMFLAGS "-f win32"
;;
os2-emx*)
- NASMFLAGS="$NASMFLAGS -f aout"
+ append_var NASMFLAGS "-f aout"
;;
*)
- NASMFLAGS="$NASMFLAGS -f elf"
+ append_var NASMFLAGS "-f elf"
;;
esac
_nasm=yes
@@ -3797,10 +4133,21 @@ fi
define_in_config_if_yes $_nasm 'USE_NASM'
#
-# Enable vkeybd / keymapper
+# Enable vkeybd / keymapper / event recorder
#
define_in_config_if_yes $_vkeybd 'ENABLE_VKEYBD'
define_in_config_if_yes $_keymapper 'ENABLE_KEYMAPPER'
+define_in_config_if_yes $_eventrec 'ENABLE_EVENTRECORDER'
+
+#
+# Check if the keymapper and the event recorder are enabled simultaneously
+#
+if test "$_keymapper" = yes ; then
+ if test "$_eventrec" = yes ; then
+ echo "ERROR: The keymapper and the event recorder cannot be enabled simultaneously currently, please disable one of the two"
+ exit 1
+ fi
+fi
# Check whether to build translation support
#
@@ -3832,24 +4179,31 @@ fi
# Check whether to build taskbar integration support
#
echo_n "Building taskbar integration support... "
-define_in_config_if_yes $_taskbar 'USE_TASKBAR'
-if test "$_taskbar" = yes; then
+if test "$_taskbar" = "no"; then
+ echo "no"
+else
case $_host_os in
mingw*)
- LIBS="$LIBS -lole32 -luuid"
+ append_var LIBS "-lole32 -luuid"
echo "win32"
+ _taskbar=yes
+ ;;
+ darwin*)
+ echo "osx"
+ _taskbar=yes
;;
*)
if test "$_libunity" = yes; then
echo "unity"
+ _taskbar=yes
else
- echo "$_taskbar"
+ echo "no"
+ _taskbar=no
fi
;;
esac
-else
- echo "$_taskbar"
fi
+define_in_config_if_yes $_taskbar 'USE_TASKBAR'
#
# Check whether to build Bink video support
@@ -3879,20 +4233,31 @@ fi
test "x$prefix" = xNONE && prefix=/usr/local
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-DEFINES="$DEFINES -DDATA_PATH=\\\"$datadir\\\""
+case $_host_os in
+ mingw*)
+ # Windows stores all the external data files in executable file.
+ ;;
+ *)
+ append_var DEFINES "-DDATA_PATH=\\\"$datadir\\\""
+ ;;
+esac
case $_backend in
openpandora)
# Add ../plugins as a path so plugins can be found when running from a .PND.
- DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"../plugins\\\""
+ append_var DEFINES "-DPLUGIN_DIRECTORY=\\\"../plugins\\\""
;;
maemo | webos)
# The WebOS and Maemo apps want the plugins in the "lib" directory
# without a scummvm sub directory.
- DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$libdir\\\""
+ append_var DEFINES "-DPLUGIN_DIRECTORY=\\\"$libdir\\\""
+ ;;
+ ps2)
+ # PS2 bogus dir: it actually depends on launch medium
+ append_var DEFINES "-DPLUGIN_DIRECTORY=\\\"host:plugins\\\""
;;
*)
- DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$libdir/scummvm\\\""
+ append_var DEFINES "-DPLUGIN_DIRECTORY=\\\"$libdir/scummvm\\\""
;;
esac
@@ -3901,9 +4266,9 @@ esac
# We need to do it here to prevent mess-ups with the tests e.g. on the PSP
#
if test "$_enable_prof" = yes ; then
- CXXFLAGS="$CXXFLAGS -pg"
- LDFLAGS="$LDFLAGS -pg"
- DEFINES="$DEFINES -DENABLE_PROFILING"
+ append_var CXXFLAGS "-pg"
+ append_var LDFLAGS "-pg"
+ append_var DEFINES "-DENABLE_PROFILING"
fi
echo_n "Backend... "
@@ -3946,7 +4311,11 @@ if test "$_vkeybd" = yes ; then
fi
if test "$_keymapper" = yes ; then
- echo ", keymapper"
+ echo_n ", keymapper"
+fi
+
+if test "$_eventrec" = yes ; then
+ echo ", event recorder"
else
echo
fi
@@ -3959,9 +4328,9 @@ case $_backend in
android)
# ssp at this point so the cxxtests link
if test "$_debug_build" = yes; then
- CXXFLAGS="$CXXFLAGS -fstack-protector"
+ append_var CXXFLAGS "-fstack-protector"
else
- CXXFLAGS="$CXXFLAGS -fno-stack-protector"
+ append_var CXXFLAGS "-fno-stack-protector"
fi
static_libs=''
@@ -3985,7 +4354,7 @@ case $_backend in
n64)
# Move some libs down here, otherwise some symbols requires by libvorbis aren't found
# during linking stage
- LIBS="$LIBS -lc -lgcc -lnosys"
+ append_var LIBS "-lc -lgcc -lnosys"
;;
esac
@@ -4053,8 +4422,18 @@ for engine in $_engines; do
fi
done
-# Prepare the information to be shown
+# Sort engines to place our headline engine at start...
+# No technical reason, just historical convention
+headline_engine=scumm
+_sorted_engines="${headline_engine}"
for engine in $_engines; do
+ if test "${engine}" != "${headline_engine}" ; then
+ _sorted_engines="${_sorted_engines} ${engine}"
+ fi
+done
+
+# Prepare the information to be shown
+for engine in $_sorted_engines; do
if test "`get_engine_sub $engine`" = "no" ; then
# It's a main engine
prepare_engine_build_strings $engine
@@ -4149,6 +4528,7 @@ $_def_64bit_type_unsigned
#else
$_def_64bit_type_unsigned
#endif
+#define HAVE_INT64
EOF
fi
@@ -4174,9 +4554,11 @@ WINDRES := $_windres
WINDRESFLAGS := $WINDRESFLAGS
STAGINGPATH=$_stagingpath
WIN32PATH=$_win32path
-AOS4PATH=$_aos4path
+AMIGAOSPATH=$_amigaospath
STATICLIBPATH=$_staticlibpath
+ABI := $ABI
+
BACKEND := $_backend
MODULES += $MODULES
MODULE_DIRS += $MODULE_DIRS
@@ -4212,6 +4594,7 @@ SAVED_CXXFLAGS := $SAVED_CXXFLAGS
SAVED_CPPFLAGS := $SAVED_CPPFLAGS
SAVED_ASFLAGS := $SAVED_ASFLAGS
SAVED_WINDRESFLAGS := $SAVED_WINDRESFLAGS
+SAVED_SDL_CONFIG := $SAVED_SDL_CONFIG
EOF
#
@@ -4236,3 +4619,59 @@ include \$(srcdir)/Makefile
EOF
fi
+
+# Ensure engines folder exists prior to trying to generate
+# files into it (used for out-of-tree-builds)
+mkdir -p engines
+
+echo "Creating engines/engines.mk"
+cat > engines/engines.mk << EOF
+# This file is automatically generated by configure
+# DO NOT EDIT MANUALLY
+# This file is being included by "Makefile.common"
+EOF
+
+for engine in $_sorted_engines; do
+ j=`echo $engine | tr '[:lower:]' '[:upper:]'`
+ if test "`get_engine_sub $engine`" = "no" ; then
+ # main engine
+ cat >> engines/engines.mk << EOF
+
+ifdef ENABLE_$j
+DEFINES += -DENABLE_$j=\$(ENABLE_$j)
+MODULES += engines/$engine
+EOF
+
+ for subeng in `get_engine_subengines $engine` ; do
+ k=`echo $subeng | tr '[:lower:]' '[:upper:]'`
+ cat >> engines/engines.mk << EOF
+
+ifdef ENABLE_$k
+DEFINES += -DENABLE_$k
+endif
+EOF
+ done
+
+ cat >> engines/engines.mk << EOF
+endif
+EOF
+ fi
+done
+
+echo "Creating engines/plugins_table.h"
+cat > engines/plugins_table.h << EOF
+/* This file is automatically generated by configure */
+/* DO NOT EDIT MANUALLY */
+// This file is being included by "base/plugins.cpp"
+EOF
+
+for engine in $_sorted_engines; do
+ if test "`get_engine_sub $engine`" = "no" ; then
+ j=`echo $engine | tr '[:lower:]' '[:upper:]'`
+ cat >> engines/plugins_table.h << EOF
+#if PLUGIN_ENABLED_STATIC($j)
+LINK_PLUGIN($j)
+#endif
+EOF
+ fi
+done