2002-08-24 14:18:40 +00:00
#!/bin/sh
#
2008-05-14 11:58:25 +00:00
# configure -- custom configure script for ScummVM.
2002-08-24 14:18:40 +00:00
#
2008-01-13 13:24:47 +00:00
# ScummVM is the legal property of its developers, whose names
# are too numerous to list here. Please refer to the COPYRIGHT
# file distributed with this source distribution.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
2002-08-24 14:18:40 +00:00
2007-11-06 17:23:33 +00:00
# Save the current environment variables for next runs
SAVED_CONFIGFLAGS=$@
SAVED_LDFLAGS=$LDFLAGS
SAVED_CXX=$CXX
SAVED_CXXFLAGS=$CXXFLAGS
SAVED_CPPFLAGS=$CPPFLAGS
2009-08-22 16:30:20 +00:00
SAVED_ASFLAGS=$ASFLAGS
2009-09-11 18:13:27 +00:00
SAVED_WINDRESFLAGS=$WINDRESFLAGS
2002-08-24 15:24:38 +00:00
2009-03-22 11:24:23 +00:00
# Use environment vars if set
2003-08-09 23:52:05 +00:00
CXXFLAGS="$CXXFLAGS $CPPFLAGS"
2005-10-11 11:27:18 +00:00
# Backslashes into forward slashes:
# The following OS/2 specific code is performed to deal with handling of backslashes by ksh.
# Borrowed from the Sane configure script
if test "$ac_emxsupport" != "no" -a "$ac_emxsupport" != "NO"; then
2007-11-01 21:03:16 +00:00
ac_save_IFS="$IFS"
IFS="\\"
ac_TEMP_PATH=
for ac_dir in $PATH; do
IFS=$ac_save_IFS
if test -z "$ac_TEMP_PATH"; then
ac_TEMP_PATH="$ac_dir"
else
ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir"
fi
done
PATH="$ac_TEMP_PATH"
export PATH
unset ac_TEMP_PATH
2005-10-11 11:27:18 +00:00
fi
2009-08-31 01:24:04 +00:00
set_var() {
eval ${1}='${2}'
}
get_var() {
eval echo \$${1}
}
2005-10-11 11:27:18 +00:00
2007-11-04 06:55:45 +00:00
# Add an engine: id name build subengines
add_engine() {
_engines="${_engines} ${1}"
2011-06-18 06:26:55 +00:00
if test "${3}" = "no" ; then
2011-04-19 03:06:15 +00:00
set_var _wip_engines "${_wip_engines} ${1}"
fi
2009-08-31 01:24:04 +00:00
set_var _engine_${1}_name "${2}"
set_var _engine_${1}_build "${3}"
2011-04-19 03:06:15 +00:00
set_var _engine_${1}_build_default "${3}"
2009-08-31 01:24:04 +00:00
set_var _engine_${1}_subengines "${4}"
2007-11-04 06:55:45 +00:00
for sub in ${4}; do
2009-08-31 01:24:04 +00:00
set_var _engine_${sub}_sub "yes"
2007-11-04 06:55:45 +00:00
done
}
add_engine scumm "SCUMM" yes "scumm_7_8 he"
add_engine scumm_7_8 "v7 & v8 games" yes
2007-12-28 06:33:20 +00:00
add_engine he "HE71+ games" yes
2007-11-04 06:55:45 +00:00
add_engine agi "AGI" yes
2009-08-12 02:24:03 +00:00
add_engine agos "AGOS" yes "agos2"
2009-08-11 14:42:44 +00:00
add_engine agos2 "AGOS 2 games" yes
2011-11-27 23:10:29 +00:00
add_engine cge "CGE" yes
2007-11-04 06:55:45 +00:00
add_engine cine "Cinematique evo 1" yes
2011-07-14 18:08:06 +00:00
add_engine composer "Magic Composer" no
2009-07-09 03:07:30 +00:00
add_engine cruise "Cinematique evo 2" yes
2009-11-28 01:03:26 +00:00
add_engine draci "Dragon History" yes
2008-05-02 11:22:40 +00:00
add_engine drascula "Drascula: The Vampire Strikes Back" yes
2011-06-05 09:38:05 +00:00
add_engine dreamweb "Dreamweb" no
2007-11-04 06:55:45 +00:00
add_engine gob "Gobli*ns" yes
2009-08-31 01:52:16 +00:00
add_engine groovie "Groovie" yes "groovie2"
add_engine groovie2 "Groovie 2 games" no
2011-04-17 13:39:05 +00:00
add_engine hugo "Hugo Trilogy" yes
2011-12-11 00:57:03 +00:00
add_engine kyra "Legend of Kyrandia" yes "lol eob"
2011-06-02 01:03:50 +00:00
add_engine lol "Lands of Lore" yes
2011-12-11 00:57:03 +00:00
add_engine eob "Eye of the Beholder" no
2010-10-18 19:18:06 +00:00
add_engine lastexpress "The Last Express" no
2007-11-04 06:55:45 +00:00
add_engine lure "Lure of the Temptress" yes
2009-03-07 20:33:29 +00:00
add_engine made "MADE" yes
2011-03-28 19:43:57 +00:00
add_engine mohawk "Mohawk" yes "cstime myst riven"
2011-12-26 17:37:43 +00:00
add_engine mortevielle "Mortevielle" no
2011-03-28 19:31:14 +00:00
add_engine cstime "Where in Time is Carmen Sandiego?" no
2011-03-28 19:43:57 +00:00
add_engine riven "Riven: The Sequel to Myst" no
2011-03-28 19:20:30 +00:00
add_engine myst "Myst" no
2007-11-04 06:55:45 +00:00
add_engine parallaction "Parallaction" yes
add_engine queen "Flight of the Amazon Queen" yes
2009-01-02 17:08:04 +00:00
add_engine saga "SAGA" yes "ihnm saga2"
2009-01-02 18:01:19 +00:00
add_engine ihnm "IHNM" yes
2009-01-02 20:42:36 +00:00
add_engine saga2 "SAGA 2 games" no
2009-07-24 20:21:49 +00:00
add_engine sci "SCI" yes "sci32"
2009-03-30 08:09:02 +00:00
add_engine sci32 "SCI32 games" no
2007-11-04 06:55:45 +00:00
add_engine sky "Beneath a Steel Sky" yes
2010-01-03 21:20:05 +00:00
add_engine sword1 "Broken Sword" yes
add_engine sword2 "Broken Sword II" yes
2010-10-12 21:12:50 +00:00
add_engine sword25 "Broken Sword 2.5" no
2009-12-15 09:03:04 +00:00
add_engine teenagent "Teen Agent" yes
2010-09-12 08:08:37 +00:00
add_engine testbed "TestBed: the Testing framework" no
2009-07-10 00:49:13 +00:00
add_engine tinsel "Tinsel" yes
2011-11-14 10:53:43 +00:00
add_engine toltecs "3 Skulls of the Toltecs" no
2011-02-03 01:47:41 +00:00
add_engine toon "Toonstruck" yes
2007-11-04 06:55:45 +00:00
add_engine touche "Touche: The Adventures of the Fifth Musketeer" yes
2011-11-16 21:02:54 +00:00
add_engine tsage "TsAGE" yes
2008-11-30 11:36:45 +00:00
add_engine tucker "Bud Tucker in Double Trouble" yes
2007-10-31 19:38:09 +00:00
2009-03-22 11:24:23 +00:00
#
# Default settings
#
# Default lib behaviour yes/no/auto
_vorbis=auto
_tremor=auto
2011-04-22 08:56:05 +00:00
_tremolo=no
2009-03-22 11:24:23 +00:00
_flac=auto
_mad=auto
_alsa=auto
2010-07-20 08:25:13 +00:00
_seq_midi=auto
2010-10-13 00:48:40 +00:00
_timidity=auto
2009-03-22 11:24:23 +00:00
_zlib=auto
2011-07-03 21:01:17 +00:00
_sparkle=auto
2011-12-15 01:02:30 +00:00
_png=no
2010-10-12 21:12:50 +00:00
_theoradec=auto
2011-04-09 19:27:23 +00:00
_faad=auto
2009-03-22 11:24:23 +00:00
_fluidsynth=auto
2010-11-28 17:42:05 +00:00
_opengl=auto
2010-12-02 12:44:36 +00:00
_opengles=auto
2009-08-21 09:43:30 +00:00
_readline=auto
2011-07-25 20:54:32 +00:00
_freetype2=auto
2011-04-29 15:54:09 +00:00
_taskbar=yes
2011-08-03 01:00:57 +00:00
_updates=no
2011-04-29 15:54:09 +00:00
_libunity=auto
2009-03-22 11:24:23 +00:00
# Default option behaviour yes/no
2009-10-13 18:50:46 +00:00
_debug_build=auto
_release_build=auto
2011-10-09 18:13:35 +00:00
_optimizations=auto
2011-05-26 09:02:46 +00:00
_verbose_build=no
2009-07-25 23:36:24 +00:00
_text_console=no
_mt32emu=yes
2009-03-22 11:24:23 +00:00
_build_scalers=yes
2010-05-09 11:00:17 +00:00
_build_hq_scalers=yes
2010-04-26 12:11:19 +00:00
_enable_prof=no
2010-08-17 13:51:36 +00:00
_global_constructors=no
2011-07-13 16:08:26 +00:00
_bink=yes
2009-03-22 11:24:23 +00:00
# Default vkeybd/keymapper options
_vkeybd=no
_keymapper=no
2010-06-15 10:44:51 +00:00
# GUI translation options
_translation=yes
2009-03-22 11:24:23 +00:00
# Default platform settings
_backend=sdl
2011-05-26 09:02:46 +00:00
_16bit=auto
2011-09-22 18:32:48 +00:00
_savegame_timestamp=auto
2008-05-06 03:11:01 +00:00
_dynamic_modules=no
2011-05-26 09:02:46 +00:00
_elf_loader=no
2008-05-06 03:00:26 +00:00
_plugins_default=static
2011-05-25 12:55:36 +00:00
_plugin_prefix=
_plugin_suffix=
2004-05-21 02:08:48 +00:00
_nasm=auto
2011-10-08 19:00:40 +00:00
_optimization_level=
_default_optimization_level=-O2
2009-03-22 11:24:23 +00:00
# Default commands
2003-05-18 09:54:28 +00:00
_ranlib=ranlib
2009-03-19 20:49:22 +00:00
_strip=strip
2004-07-27 12:16:03 +00:00
_ar="ar cru"
2009-08-22 16:30:20 +00:00
_as="as"
2007-03-18 22:56:56 +00:00
_windres=windres
2011-07-01 02:41:52 +00:00
_stagingpath="staging"
2011-06-29 16:14:36 +00:00
_win32path="c:/scummvm"
2008-04-20 19:48:04 +00:00
_aos4path="Games:ScummVM"
2009-03-19 20:49:22 +00:00
_staticlibpath=/sw
2003-05-26 05:18:40 +00:00
_sdlconfig=sdl-config
2011-07-25 20:54:32 +00:00
_freetypeconfig=freetype-config
2004-01-22 04:31:31 +00:00
_sdlpath="$PATH"
2011-07-25 20:54:32 +00:00
_freetypepath="$PATH"
2004-05-21 02:08:48 +00:00
_nasmpath="$PATH"
NASMFLAGS=""
NASM=""
2011-04-19 03:06:15 +00:00
_tainted_build=no
2011-05-26 09:02:46 +00:00
# The following variables are automatically detected, and should not
# be modified otherwise. Consider them read-only.
_posix=no
_endian=unknown
_need_memalign=yes
_have_x86=no
2010-05-09 20:42:18 +00:00
# Directories for installing ScummVM.
# This list is closely based on what GNU autoconf does,
# although the default value for datadir differs.
# Like GNU autoconf, we distinguish datadir and datarootdir
# to make it possible to change e.g. the location of the
# man pages independently of that of the engine data files,
# which are placed inside $datadir/scummvm
prefix=NONE
2010-10-11 19:50:17 +00:00
exec_prefix=NONE
2010-05-09 20:42:18 +00:00
bindir='${exec_prefix}/bin'
2010-10-11 19:50:17 +00:00
libdir='${exec_prefix}/lib'
2010-05-09 20:42:18 +00:00
datarootdir='${prefix}/share'
datadir='${datarootdir}/scummvm'
2010-10-11 19:50:17 +00:00
mandir='${datarootdir}/man'
2010-05-09 20:42:18 +00:00
docdir='${datarootdir}/doc/scummvm'
#localedir='${datarootdir}/locale'
2009-03-22 11:24:23 +00:00
# For cross compiling
_host=""
_host_cpu=""
_host_vendor=""
_host_os=""
_host_alias=""
2004-04-05 22:07:09 +00:00
2004-04-06 20:04:05 +00:00
_srcdir=`dirname $0`
2009-09-27 14:59:40 +00:00
_port_mk="ports.mk"
2004-04-06 20:04:05 +00:00
2010-09-09 14:01:48 +00:00
# Use temp files in the build directory
TMPO=./scummvm-conf
2004-09-19 09:57:24 +00:00
TMPC=${TMPO}.cpp
2008-07-15 10:47:24 +00:00
TMPLOG=config.log
2004-09-19 09:57:24 +00:00
2010-05-08 20:22:50 +00:00
cc_check_no_clean() {
2003-12-10 00:15:20 +00:00
echo >> "$TMPLOG"
cat "$TMPC" >> "$TMPLOG"
echo >> "$TMPLOG"
2011-11-03 02:05:07 +00:00
echo "$CXX $LDFLAGS $CXXFLAGS $TMPC -o $TMPO$HOSTEXEEXT $@" >> "$TMPLOG"
2009-03-23 17:40:46 +00:00
rm -f "$TMPO$HOSTEXEEXT"
2011-11-03 02:05:07 +00:00
( $CXX $LDFLAGS $CXXFLAGS "$TMPC" -o "$TMPO$HOSTEXEEXT" "$@" ) >> "$TMPLOG" 2>&1
2011-04-08 14:16:59 +00:00
TMPR="$?"
echo "return code: $TMPR" >> "$TMPLOG"
2003-12-10 00:15:20 +00:00
echo >> "$TMPLOG"
2011-04-08 14:16:59 +00:00
return "$TMPR"
2003-05-18 11:23:12 +00:00
}
2003-05-18 05:43:52 +00:00
2010-05-08 20:22:50 +00:00
cc_check_clean() {
rm -rf $TMPC $TMPO $TMPO.o $TMPO.dSYM $TMPO$HOSTEXEEXT "$@"
}
cc_check() {
cc_check_no_clean "$@"
2011-04-08 14:16:59 +00:00
TMPR="$?"
2010-05-08 20:22:50 +00:00
cc_check_clean
2011-04-08 14:16:59 +00:00
return "$TMPR"
2010-05-08 20:22:50 +00:00
}
2010-04-09 12:23:43 +00:00
cc_check_define() {
cat > $TMPC << EOF
int main(void) {
2010-04-09 12:46:13 +00:00
#ifndef $1
syntax error
2010-04-09 12:23:43 +00:00
#endif
return 0;
}
EOF
2010-04-09 15:47:49 +00:00
cc_check -c
2010-04-09 12:23:43 +00:00
return $?
}
gcc_get_define() {
2011-04-30 20:00:17 +00:00
echo "" | $CXX -dM -E - | fgrep "$1" | head -n1 | cut -d ' ' -f 3-
2010-04-09 12:23:43 +00:00
}
2009-03-22 11:24:23 +00:00
#
# Function to provide echo -n for bourne shells that don't have it
#
echo_n() {
printf "$@"
}
2009-03-19 21:42:50 +00:00
echocheck() {
2004-03-04 22:44:10 +00:00
echo_n "Checking for $@... "
2003-05-18 05:43:52 +00:00
}
2007-06-24 20:35:02 +00:00
# Add a line of data to config.mk.
add_line_to_config_mk() {
_config_mk_data="$_config_mk_data"'
'"$1"
}
2008-06-10 23:13:28 +00:00
# Add a line of data to config.h.
2007-06-24 20:35:02 +00:00
add_line_to_config_h() {
_config_h_data="$_config_h_data"'
'"$1"
}
2010-07-20 08:24:48 +00:00
# Conditionally add a line of data to config.h. Takes two parameters:
# The first one can be set to 'no' to "comment out" the line, i.e.
# make it ineffective, use 'yes' otherwise.
# The second param is the line to insert.
2007-06-24 20:35:02 +00:00
add_to_config_h_if_yes() {
if test "$1" = yes ; then
add_line_to_config_h "$2"
else
add_line_to_config_h "/* $2 */"
fi
}
# Conditionally add a line of data to config.mk. Takes two parameters:
# The first one can be set to 'no' to "comment out" the line, i.e.
# make it ineffective, use 'yes' otherwise.
# The second param is the line to insert.
add_to_config_mk_if_yes() {
if test "$1" = yes ; then
add_line_to_config_mk "$2"
else
add_line_to_config_mk "# $2"
fi
}
2010-07-20 08:24:48 +00:00
# Conditionally add a '#define' line to config.h. Takes two parameters:
# The first one can be set to 'yes' or 'no'. If 'yes' is used, then
# the line "#define $2" is added to config.h, otherwise "#undef $2".
define_in_config_h_if_yes() {
if test "$1" = yes ; then
add_line_to_config_h "#define $2"
2006-08-04 22:46:06 +00:00
else
2010-07-20 08:24:48 +00:00
add_line_to_config_h "#undef $2"
fi
}
# Conditionally add definitions to config.h and config.mk. Takes two parameters:
# The first one can be set to 'yes' or 'no'. If 'yes' is used, then
# the line "#define $2" is added to config.h and "$2 = 1" to config.mk.
# Otherwise "#undef $2" is added to config.h and "# $2 = 1" to config.mk
define_in_config_if_yes() {
if test "$1" = yes ; then
add_line_to_config_h "#define $2"
add_line_to_config_mk "$2 = 1"
else
add_line_to_config_h "#undef $2"
add_line_to_config_mk "# $2 = 1"
2006-08-04 22:46:06 +00:00
fi
}
2003-07-06 06:21:17 +00:00
#
# Determine sdl-config
#
2009-11-24 12:34:31 +00:00
# TODO: small bit of code to test sdl usability
2009-03-19 21:42:50 +00:00
find_sdlconfig() {
2004-04-05 22:07:09 +00:00
echo_n "Looking for sdl-config... "
2003-12-10 00:15:20 +00:00
sdlconfigs="$_sdlconfig:sdl-config:sdl11-config:sdl12-config"
_sdlconfig=
2008-01-27 19:47:41 +00:00
2005-10-11 11:27:18 +00:00
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="$SEPARATOR"
2004-01-22 04:31:31 +00:00
for path_dir in $_sdlpath; do
2006-02-20 15:16:26 +00:00
#reset separator to parse sdlconfigs
IFS=":"
2004-12-16 22:15:32 +00:00
for sdlconfig in $sdlconfigs; do
2008-03-23 11:46:55 +00:00
if test -f "$path_dir/$sdlconfig" ; then
2004-12-16 22:15:32 +00:00
_sdlconfig="$path_dir/$sdlconfig"
echo $_sdlconfig
2008-02-07 15:15:10 +00:00
# Save the prefix
_sdlpath=$path_dir
if test `basename $path_dir` = bin ; then
_sdlpath=`dirname $path_dir`
fi
2006-04-27 19:55:09 +00:00
# break at first sdl-config found in path
break 2
2004-12-16 22:15:32 +00:00
fi
done
2003-12-10 00:15:20 +00:00
done
2008-01-27 19:47:41 +00:00
2003-12-10 00:15:20 +00:00
IFS="$ac_save_ifs"
2008-01-27 19:47:41 +00:00
2003-12-10 00:15:20 +00:00
if test -z "$_sdlconfig"; then
2004-12-16 22:15:32 +00:00
echo "none found!"
exit 1
2003-12-10 00:15:20 +00:00
fi
2003-07-06 06:21:17 +00:00
}
2011-07-25 20:54:32 +00:00
#
# Determine freetype-config
#
find_freetypeconfig() {
echo_n "Looking for freetype-config... "
freetypeconfigs="$_freetypeconfig"
_freetypeconfig=
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="$SEPARATOR"
for path_dir in $_freetypepath; do
#reset separator to parse freetypeconfigs
IFS=":"
for freetypeconfig in $freetypeconfigs; do
if test -f "$path_dir/$freetypeconfig" ; then
_freetypeconfig="$path_dir/$freetypeconfig"
echo $_freetypeconfig
# Save the prefix
_freetypepath=$path_dir
if test `basename $path_dir` = bin ; then
_freetypepath=`dirname $path_dir`
fi
# break at first freetype-config found in path
break 2
fi
done
done
IFS="$ac_save_ifs"
if test -z "$_freetypeconfig"; then
echo "none found!"
fi
}
2009-03-23 17:40:46 +00:00
#
# Determine extension used for executables
#
get_system_exe_extension() {
case $1 in
arm-riscos)
_exeext=",ff8"
2010-10-12 02:18:11 +00:00
;;
2010-08-02 17:11:25 +00:00
dreamcast | ds | gamecube | n64 | ps2 | psp | wii)
2010-02-02 11:46:35 +00:00
_exeext=".elf"
2010-01-25 01:39:44 +00:00
;;
2010-09-26 20:23:58 +00:00
gph-linux)
_exeext=".gph"
2010-02-02 11:46:35 +00:00
;;
mingw* | *os2-emx | wince)
_exeext=".exe"
2009-03-23 17:40:46 +00:00
;;
*)
_exeext=""
;;
esac
}
2009-03-22 11:24:23 +00:00
2004-03-04 22:44:10 +00:00
#
2009-03-22 11:24:23 +00:00
# Generic options functions
2004-03-04 22:44:10 +00:00
#
2009-03-22 11:24:23 +00:00
# Show the configure help line for an option
option_help() {
2011-11-20 05:20:31 +00:00
if test "${3}" != "" ; then
tmpopt_prefix="${3}"
else
tmpopt_prefix="--"
fi
2009-07-02 21:37:13 +00:00
tmpopt=`echo $1 | sed 's/_/-/g'`
2011-11-20 05:20:31 +00:00
option=`echo "${tmpopt_prefix}${tmpopt} " | sed "s/\(.\{23\}\).*/\1/"`
2009-03-22 11:24:23 +00:00
echo " ${option} ${2}"
}
# Show an error about an unknown option
option_error() {
2011-11-26 16:40:00 +00:00
echo "error: unrecognized option: $ac_option
2009-03-22 11:24:23 +00:00
Try \`$0 --help' for more information." >&2
exit 1
2004-03-04 22:44:10 +00:00
}
2011-11-26 14:39:43 +00:00
# Show an error about an unknown engine
engine_option_error() {
2011-11-26 16:40:00 +00:00
echo "error: unrecognized engine: $1
2011-11-26 14:39:43 +00:00
Try \`$0 --help' for more information." >&2
exit 1
}
# Show an error about an invalid subengine option
subengine_option_error() {
echo "error: this option is invalid for the subengine $1: $ac_option
Try \`$0 --help' for more information." >&2
exit 1
}
2009-03-22 11:24:23 +00:00
2002-08-24 16:05:53 +00:00
#
2009-03-22 11:24:23 +00:00
# Engine handling functions
2002-08-24 16:05:53 +00:00
#
2004-05-21 02:08:48 +00:00
2007-10-31 19:38:09 +00:00
# Get the name of the engine
get_engine_name() {
2009-08-31 01:24:04 +00:00
get_var _engine_$1_name
2007-10-31 19:38:09 +00:00
}
# Will this engine be built?
get_engine_build() {
2009-08-31 01:24:04 +00:00
get_var _engine_$1_build
2007-10-31 19:38:09 +00:00
}
2011-04-19 03:06:15 +00:00
# Was this engine set to be built by default?
get_engine_build_default() {
get_var _engine_$1_build_default
}
2007-11-04 06:55:45 +00:00
# Get the subengines
get_engine_subengines() {
2009-08-31 01:24:04 +00:00
get_var _engine_$1_subengines
2007-11-04 06:55:45 +00:00
}
2007-10-31 19:38:09 +00:00
# Ask if this is a subengine
get_engine_sub() {
2009-08-31 01:24:04 +00:00
sub=`get_var _engine_$1_sub`
2007-11-04 06:55:45 +00:00
if test -z "$sub" ; then
2007-10-31 19:38:09 +00:00
sub=no
fi
echo $sub
}
2009-03-13 16:31:53 +00:00
# Enable *all* engines
engine_enable_all() {
for engine in $_engines; do
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "yes"
2009-03-13 16:31:53 +00:00
done
}
# Disable *all* engines
engine_disable_all() {
for engine in $_engines; do
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "no"
2009-03-13 16:31:53 +00:00
done
}
2007-10-31 19:38:09 +00:00
# Enable the given engine
engine_enable() {
2008-05-06 03:00:26 +00:00
# Get the parameter
2011-11-20 05:20:31 +00:00
if ( echo $1 | grep ':' ) 2> /dev/null > /dev/null ; then
eng=`echo $1 | cut -d ':' -f 1`
opt=`echo $1 | cut -d ':' -f 2`
2008-05-06 03:00:26 +00:00
else
eng=$1
opt=yes
fi
engine=`echo $eng | sed 's/-/_/g'`
2008-05-07 01:15:46 +00:00
# Filter the parameter for the subengines
if test "`get_engine_sub ${engine}`" != "no" -a "$opt" != "yes" ; then
2011-11-26 14:39:43 +00:00
subengine_option_error ${engine}
2008-05-07 01:15:46 +00:00
return
fi
2008-05-06 04:47:58 +00:00
if test "$opt" = "static" -o "$opt" = "dynamic" -o "$opt" = "yes" ; then
2008-06-09 02:36:34 +00:00
if test "`get_engine_name ${engine}`" != "" ; then
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "$opt"
2008-05-06 03:00:26 +00:00
else
2011-11-26 14:39:43 +00:00
engine_option_error ${engine}
2008-05-06 03:00:26 +00:00
fi
2007-10-31 19:38:09 +00:00
else
2008-05-06 03:00:26 +00:00
option_error
2007-10-31 19:38:09 +00:00
fi
}
# Disable the given engine
engine_disable() {
2008-05-07 01:15:46 +00:00
# Filter malformed options
if ( echo $1 | grep '=' ) 2> /dev/null > /dev/null ; then
option_error
return
fi
2007-10-31 19:38:09 +00:00
engine=`echo $1 | sed 's/-/_/g'`
2008-06-09 02:36:34 +00:00
if test "`get_engine_name ${engine}`" != "" ; then
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "no"
2007-10-31 19:38:09 +00:00
else
2011-11-26 14:39:43 +00:00
engine_option_error ${engine}
2007-10-31 19:38:09 +00:00
fi
}
# Show the configure help line for a given engine
show_engine_help() {
name=`get_engine_name $1`
2011-11-20 05:20:31 +00:00
option_help "${1}" "${name} engine" " "
2007-11-04 06:55:45 +00:00
for sub in `get_engine_subengines $1`; do
show_subengine_help $sub $1
done
2007-10-31 19:38:09 +00:00
}
2007-11-04 06:55:45 +00:00
# Show the configure help line for a given subengine
show_subengine_help() {
name=`get_engine_name $1`
parent=`get_engine_name $2`
2011-11-20 05:20:31 +00:00
option_help "${1}" "${name} in ${parent} engine" " "
2007-10-31 19:38:09 +00:00
}
2007-11-04 06:55:45 +00:00
# Prepare the strings about the engines to build
prepare_engine_build_strings() {
2008-05-06 03:00:26 +00:00
string=`get_engine_build_string $1 static`
if test -n "$string" ; then
_engines_built_static="${_engines_built_static}#$string@"
2007-11-04 06:55:45 +00:00
fi
2008-05-06 03:00:26 +00:00
string=`get_engine_build_string $1 dynamic`
if test -n "$string" ; then
_engines_built_dynamic="${_engines_built_dynamic}#$string@"
fi
string=`get_engine_build_string $1 no`
if test -n "$string" ; then
_engines_skipped="${_engines_skipped}#$string@"
2007-11-04 06:55:45 +00:00
fi
2011-04-19 03:06:15 +00:00
string=`get_engine_build_string $1 wip`
if test -n "$string" ; then
_engines_built_wip="${_engines_built_wip}#$string@"
fi
2007-11-04 06:55:45 +00:00
}
# Get the string about building an engine
get_engine_build_string() {
engine_string=""
2008-05-06 03:00:26 +00:00
engine_build=`get_engine_build $1`
2011-04-19 03:06:15 +00:00
engine_build_default=`get_engine_build_default $1`
2008-05-07 00:35:55 +00:00
show=no
# Check if the current engine should be shown for the current status
if test $engine_build = $2 ; then
show=yes
else
# Test for disabled sub-engines
2007-11-04 06:55:45 +00:00
if test $2 = no ; then
2008-05-07 00:35:55 +00:00
for subeng in `get_engine_subengines $1` ; do
if test `get_engine_build $subeng` = no ; then
engine_build=no
show=yes
fi
done
2007-10-31 19:38:09 +00:00
fi
2011-04-19 03:06:15 +00:00
# Test for enabled wip sub-engines
if test $2 = wip ; then
for subeng in `get_engine_subengines $1` ; do
if test `get_engine_build $subeng` != no -a `get_engine_build_default $subeng` = no ; then
show=yes
fi
done
fi
2008-05-07 00:35:55 +00:00
fi
# Convert static/dynamic to yes to ease the check of subengines
if test $engine_build != no ; then
engine_build=yes
fi
2011-04-19 03:06:15 +00:00
# Check if it is a wip engine
if test "$2" = "wip" -a "$engine_build" != "no" -a "$engine_build_default" = no; then
show=yes
fi
2008-05-07 00:35:55 +00:00
# The engine should be shown, build the string
if test $show = yes ; then
2007-11-04 06:55:45 +00:00
build_string_func=get_${1}_build_string
if ( type $build_string_func | grep function ) 2> /dev/null > /dev/null ; then
2011-04-19 03:06:15 +00:00
engine_string=`$build_string_func $1 $engine_build $2`
2007-11-04 06:55:45 +00:00
else
2011-04-19 03:06:15 +00:00
engine_string=`get_subengines_build_string $1 $engine_build "" $2`
2007-11-04 06:55:45 +00:00
fi
2007-10-31 19:38:09 +00:00
2008-05-07 00:35:55 +00:00
engine_string="`get_engine_name $1` $engine_string"
2007-11-04 06:55:45 +00:00
fi
2007-10-31 19:38:09 +00:00
2007-11-04 06:55:45 +00:00
echo $engine_string
}
2007-10-31 19:38:09 +00:00
2007-11-04 06:55:45 +00:00
# Get the string about building subengines
get_subengines_build_string() {
all=yes
2011-04-19 03:06:15 +00:00
parent_engine=$1
2007-11-04 06:55:45 +00:00
subengine_string=$3
2011-04-19 03:06:15 +00:00
parent_status=$4
parent_engine_build_default=`get_engine_build_default $parent_engine`
for subeng in `get_engine_subengines $parent_engine` ; do
subengine_build=`get_engine_build $subeng`
subengine_build_default=`get_engine_build_default $subeng`
if test \( $subengine_build = $2 -a "$parent_status" != wip \) -o \( "$parent_status" = wip -a $subengine_build != no -a "$subengine_build_default" = no \) ; then
2007-11-04 06:55:45 +00:00
subengine_string="$subengine_string [`get_engine_name $subeng`]"
2007-10-31 19:38:09 +00:00
else
2007-11-04 06:55:45 +00:00
all=no
2007-10-31 19:38:09 +00:00
fi
2011-04-19 03:06:15 +00:00
# handle engines that are on by default and have a single subengine that is off by default
if test "$parent_status" = wip ; then
if test $parent_engine_build_default = yes -a subengine ; then
all=no
fi
fi
2007-11-04 06:55:45 +00:00
done
2011-04-19 03:06:15 +00:00
2008-05-06 03:00:26 +00:00
if test $2 != no ; then
2007-11-04 06:55:45 +00:00
if test -n "$subengine_string" ; then
if test $all = yes ; then
subengine_string="[all games]"
fi
2007-10-31 19:38:09 +00:00
fi
2007-11-04 06:55:45 +00:00
fi
echo $subengine_string
}
2007-10-31 19:38:09 +00:00
2007-11-04 06:55:45 +00:00
# Engine specific build strings
get_scumm_build_string() {
2008-05-07 00:35:55 +00:00
if test `get_engine_build $1` != no ; then
2011-04-19 03:06:15 +00:00
if test $2 != no -a "$3" != wip ; then
2008-05-07 00:35:55 +00:00
base="[v0-v6 games]"
fi
2011-04-19 03:06:15 +00:00
get_subengines_build_string $1 $2 "$base" $3
2007-10-31 19:38:09 +00:00
fi
}
2009-01-02 18:01:19 +00:00
get_saga_build_string() {
if test `get_engine_build $1` != no ; then
2011-04-19 03:06:15 +00:00
if test $2 != no -a "$3" != wip; then
2009-01-02 18:01:19 +00:00
base="[ITE]"
fi
2011-04-19 03:06:15 +00:00
get_subengines_build_string $1 $2 "$base" $3
2009-01-02 18:01:19 +00:00
fi
}
2002-08-24 16:05:53 +00:00
#
# Greet user
#
echo "Running ScummVM configure..."
2003-06-02 21:22:54 +00:00
echo "Configure run on" `date` > $TMPLOG
2002-08-24 15:24:38 +00:00
#
# Check any parameters we received
#
2003-07-06 11:19:55 +00:00
# TODO:
# * Change --disable-mad / --enable-mad to the way it's done in autoconf:
# That is, --without-mad / --with-mad=/prefix/to/mad. Useful for people
# who have Mad/Vorbis/ALSA installed in a non-standard locations.
2002-08-24 15:24:38 +00:00
#
2003-05-18 05:43:52 +00:00
for parm in "$@" ; do
2007-11-01 21:03:16 +00:00
if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
for engine in $_engines; do
2007-11-04 06:55:45 +00:00
if test `get_engine_sub $engine` = no ; then
engines_help="$engines_help`show_engine_help $engine`
2007-10-31 19:38:09 +00:00
"
2007-11-04 06:55:45 +00:00
fi
2007-11-01 21:03:16 +00:00
done
cat << EOF
2003-05-18 05:43:52 +00:00
Usage: $0 [OPTIONS]...
Configuration:
2010-05-09 20:42:18 +00:00
-h, --help display this help and exit
2011-08-07 11:33:32 +00:00
--backend=BACKEND backend to build (android, bada, dc, dingux, ds, gp2x, gph,
2010-10-11 23:26:26 +00:00
iphone, linuxmoto, maemo, n64, null, openpandora, ps2,
2011-05-03 21:51:20 +00:00
psp, samsungtv, sdl, webos, wii, wince) [sdl]
2004-01-22 04:31:31 +00:00
2004-04-16 08:30:57 +00:00
Installation directories:
2010-05-09 20:42:18 +00:00
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`/usr/local/bin', \`/usr/local/lib' etc. You can specify
an installation prefix other than \`/usr/local' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--libdir=DIR object code libraries [EPREFIX/lib]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
2010-09-06 18:13:39 +00:00
--datadir=DIR read-only architecture-independent data
[DATAROOTDIR/scummvm]
2010-05-09 20:42:18 +00:00
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/scummvm]
2004-04-16 08:30:57 +00:00
2004-01-22 04:31:31 +00:00
Special configuration feature:
2010-05-09 20:42:18 +00:00
--host=HOST cross-compile to target HOST (arm-linux, ...)
2010-10-11 23:26:26 +00:00
special targets: android for Android
2011-08-07 11:33:32 +00:00
bada for Samsung BADA
2010-10-20 13:03:19 +00:00
caanoo for Caanoo
2010-10-11 23:26:26 +00:00
dingux for Dingux
dreamcast for Sega Dreamcast
ds for Nintendo DS
2010-05-09 20:42:18 +00:00
gamecube for Nintendo GameCube
2010-10-11 23:26:26 +00:00
gp2x for GP2X
gp2xwiz for GP2X Wiz
2010-05-09 20:42:18 +00:00
iphone for Apple iPhone
linupy for Yopy PDA
2011-07-05 06:52:42 +00:00
maemo for Nokia Maemo
2010-10-11 23:26:26 +00:00
motoezx for MotoEZX
motomagx for MotoMAGX
n64 for Nintendo 64
openpandora for OpenPandora
2010-05-09 20:42:18 +00:00
ps2 for PlayStation 2
2011-06-02 08:34:41 +00:00
ps3 for PlayStation 3
2010-05-09 20:42:18 +00:00
psp for PlayStation Portable
2010-10-11 23:26:26 +00:00
samsungtv for Samsung TV
2011-04-02 20:36:18 +00:00
webos for HP Palm WebOS
2010-05-09 20:42:18 +00:00
wii for Nintendo Wii
wince for Windows CE
2003-05-18 05:43:52 +00:00
2009-08-31 01:25:04 +00:00
Game engines:
2011-04-15 11:56:20 +00:00
--enable-all-engines enable all engines, including those which are
broken or unsupported
2009-03-13 16:31:53 +00:00
--disable-all-engines disable all engines
2011-11-20 05:20:31 +00:00
--enable-engine=<engine name>[,<engine name>...] enable engine(s) listed
--disable-engine=<engine name>[,<engine name>...] disable engine(s) listed
--enable-engine-static=<engine name>[,<engine name>...]
enable engine(s) listed as static builtin (when plugins are enabled)
--enable-engine-dynamic=<engine name>[,<engine name>...]
enable engine(s) listed as dynamic plugin (when plugins are enabled)
The values of <engine name> for these options are as follows:
2007-10-31 19:38:09 +00:00
$engines_help
2009-08-31 01:25:04 +00:00
Optional Features:
--disable-debug disable building with debugging symbols
--enable-Werror treat warnings as errors
2010-09-06 18:13:39 +00:00
--enable-release enable building in release mode (this activates
optimizations)
2011-10-07 22:45:56 +00:00
--enable-release-mode enable building in release mode (without optimizations)
2011-10-09 18:13:35 +00:00
--enable-optimizations enable optimizations
2010-03-24 23:19:42 +00:00
--enable-profiling enable profiling
2008-05-06 03:00:26 +00:00
--enable-plugins enable the support for dynamic plugins
--default-dynamic make plugins dynamic by default
2004-11-06 01:41:32 +00:00
--disable-mt32emu don't enable the integrated MT-32 emulator
2009-08-21 10:39:02 +00:00
--disable-16bit don't enable 16bit color support
2011-09-22 18:32:48 +00:00
--disable-savegame-timestamp don't use timestamps for blank savegame descriptions
2006-01-24 22:21:23 +00:00
--disable-scalers exclude scalers
2010-05-09 11:00:17 +00:00
--disable-hq-scalers exclude HQ2x and HQ3x scalers
2010-06-15 10:44:51 +00:00
--disable-translation don't build support for translated messages
2011-04-29 15:54:09 +00:00
--disable-taskbar don't build support for taskbar and launcher integration
2011-08-03 01:00:57 +00:00
--enable-updates build support for updates
2009-07-25 23:36:24 +00:00
--enable-text-console use text console instead of graphical console
2010-09-06 18:13:39 +00:00
--enable-verbose-build enable regular echoing of commands during build
process
2011-07-13 16:08:26 +00:00
--disable-bink don't build with Bink video support
2003-05-18 05:43:52 +00:00
Optional Libraries:
2004-04-16 08:30:57 +00:00
--with-alsa-prefix=DIR Prefix where alsa is installed (optional)
2003-08-08 09:02:49 +00:00
--disable-alsa disable ALSA midi sound support [autodetect]
2004-02-15 01:21:02 +00:00
2004-04-16 08:30:57 +00:00
--with-ogg-prefix=DIR Prefix where libogg is installed (optional)
--with-vorbis-prefix=DIR Prefix where libvorbis is installed (optional)
2003-08-08 09:02:49 +00:00
--disable-vorbis disable Ogg Vorbis support [autodetect]
2004-02-15 01:21:02 +00:00
2005-06-30 09:14:36 +00:00
--with-tremor-prefix=DIR Prefix where tremor is installed (optional)
2005-11-08 22:40:10 +00:00
--disable-tremor disable tremor support [autodetect]
2005-06-30 09:14:36 +00:00
2004-04-16 08:30:57 +00:00
--with-mad-prefix=DIR Prefix where libmad is installed (optional)
2003-08-08 09:02:49 +00:00
--disable-mad disable libmad (MP3) support [autodetect]
2005-11-08 22:40:10 +00:00
2004-04-16 08:30:57 +00:00
--with-flac-prefix=DIR Prefix where libFLAC is installed (optional)
2004-02-22 14:11:16 +00:00
--disable-flac disable FLAC support [autodetect]
2004-02-15 01:21:02 +00:00
2004-04-16 08:30:57 +00:00
--with-zlib-prefix=DIR Prefix where zlib is installed (optional)
2004-01-12 11:11:19 +00:00
--disable-zlib disable zlib (compression) support [autodetect]
2004-02-15 01:21:02 +00:00
2010-11-28 17:42:05 +00:00
--with-opengl-prefix=DIR Prefix where OpenGL (ES) is installed (optional)
--disable-opengl disable OpenGL (ES) support [autodetect]
2010-10-12 21:12:50 +00:00
--with-png-prefix=DIR Prefix where libpng is installed (optional)
--disable-png disable PNG decoder [autodetect]
2010-10-13 13:43:13 +00:00
--with-theoradec-prefix=DIR Prefix where libtheoradec is installed (optional)
2010-10-12 21:12:50 +00:00
--disable-theoradec disable Theora decoder [autodetect]
2011-04-09 19:27:23 +00:00
--with-faad-prefix=DIR Prefix where libfaad is installed (optional)
--disable-faad disable AAC decoder [autodetect]
2010-10-12 02:18:11 +00:00
--with-fluidsynth-prefix=DIR Prefix where libfluidsynth is
2010-09-06 18:13:39 +00:00
installed (optional)
2005-04-10 14:33:44 +00:00
--disable-fluidsynth disable fluidsynth MIDI driver [autodetect]
2011-07-03 21:01:17 +00:00
--with-sparkle-prefix=DIR Prefix where sparkle is installed (MacOSX only - optional)
--disable-sparkle disable sparkle automatic update support [MacOSX only - autodetect]
2010-09-06 18:13:39 +00:00
--with-sdl-prefix=DIR Prefix where the sdl-config script is
installed (optional)
2004-05-21 02:08:48 +00:00
2011-07-25 20:54:32 +00:00
--with-freetype-prefix=DIR Prefix where the freetype-config script is
installed (optional)
2004-05-21 02:08:48 +00:00
--with-nasm-prefix=DIR Prefix where nasm executable is installed (optional)
--disable-nasm disable assembly language optimizations [autodetect]
2004-02-13 00:53:56 +00:00
2009-07-25 23:36:24 +00:00
--with-readline-prefix=DIR Prefix where readline is installed (optional)
2009-08-22 15:11:50 +00:00
--disable-readline disable readline support in text console [autodetect]
2009-07-25 23:36:24 +00:00
2011-04-29 15:54:09 +00:00
--with-libunity-prefix=DIR Prefix where libunity is installed (optional)
--disable-libunity disable Unity launcher integration [autodetect]
2011-04-01 05:30:12 +00:00
2004-02-13 00:53:56 +00:00
Some influential environment variables:
2009-09-11 18:13:27 +00:00
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CPPFLAGS C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
ASFLAGS assembler flags
WINDRESFLAGS Windows resource compiler flags
2004-02-13 00:53:56 +00:00
2003-05-18 05:43:52 +00:00
EOF
2007-11-01 21:03:16 +00:00
exit 0
fi
2003-05-18 05:43:52 +00:00
done # for parm in ...
2003-05-26 05:18:40 +00:00
for ac_option in $@; do
2007-11-01 21:03:16 +00:00
case "$ac_option" in
2009-08-21 09:43:30 +00:00
--disable-16bit) _16bit=no ;;
2011-09-22 18:32:48 +00:00
--disable-savegame-timestamp) _savegame_timestamp=no ;;
2007-11-01 21:03:16 +00:00
--disable-scalers) _build_scalers=no ;;
2010-05-09 11:00:17 +00:00
--disable-hq-scalers) _build_hq_scalers=no ;;
2007-11-01 21:03:16 +00:00
--enable-alsa) _alsa=yes ;;
--disable-alsa) _alsa=no ;;
2010-10-11 19:50:17 +00:00
--enable-seq-midi) _seq_midi=yes ;;
--disable-seq-midi) _seq_midi=no ;;
2010-10-13 00:48:40 +00:00
--enable-timidity) _timidity=yes ;;
--disable-timidity) _timidity=no ;;
2007-11-01 21:03:16 +00:00
--enable-vorbis) _vorbis=yes ;;
--disable-vorbis) _vorbis=no ;;
--enable-tremor) _tremor=yes ;;
--disable-tremor) _tremor=no ;;
--enable-flac) _flac=yes ;;
--disable-flac) _flac=no ;;
--enable-mad) _mad=yes ;;
--disable-mad) _mad=no ;;
--enable-zlib) _zlib=yes ;;
--disable-zlib) _zlib=no ;;
2011-07-03 21:01:17 +00:00
--enable-sparkle) _sparkle=yes ;;
--disable-sparkle) _sparkle=no ;;
2007-11-01 21:03:16 +00:00
--enable-nasm) _nasm=yes ;;
--disable-nasm) _nasm=no ;;
2010-10-12 21:12:50 +00:00
--disable-png) _png=no ;;
--enable-png) _png=yes ;;
2010-10-13 13:36:55 +00:00
--disable-theoradec) _theoradec=no ;;
--enable-theoradec) _theoradec=yes ;;
2011-04-09 19:27:23 +00:00
--disable-faad) _faad=no ;;
--enable-faad) _faad=yes ;;
2007-11-01 21:03:16 +00:00
--disable-fluidsynth) _fluidsynth=no ;;
2009-07-25 23:36:24 +00:00
--enable-readline) _readline=yes ;;
--disable-readline) _readline=no ;;
2011-07-25 20:54:32 +00:00
--enable-freetype2) _freetype2=yes ;;
--disable-freetype2) _freetype2=no ;;
2011-04-29 15:54:09 +00:00
--enable-taskbar) _taskbar=yes ;;
--disable-taskbar) _taskbar=no ;;
2011-07-07 00:47:46 +00:00
--enable-updates) _updates=yes ;;
--disable-updates) _updates=no ;;
2011-04-29 15:54:09 +00:00
--enable-libunity) _libunity=yes ;;
--disable-libunity) _libunity=no ;;
2010-11-28 17:42:05 +00:00
--enable-opengl) _opengl=yes ;;
--disable-opengl) _opengl=no ;;
2011-07-13 16:08:26 +00:00
--enable-bink) _bink=yes ;;
--disable-bink) _bink=no ;;
2009-08-22 11:03:00 +00:00
--enable-verbose-build) _verbose_build=yes ;;
2008-05-06 03:11:01 +00:00
--enable-plugins) _dynamic_modules=yes ;;
2008-05-06 03:00:26 +00:00
--default-dynamic) _plugins_default=dynamic ;;
2007-11-01 21:03:16 +00:00
--enable-mt32emu) _mt32emu=yes ;;
--disable-mt32emu) _mt32emu=no ;;
2010-06-15 10:44:51 +00:00
--enable-translation) _translation=yes ;;
--disable-translation) _translation=no ;;
2008-09-30 13:51:01 +00:00
--enable-vkeybd) _vkeybd=yes ;;
--disable-vkeybd) _vkeybd=no ;;
--enable-keymapper) _keymapper=yes ;;
--disable-keymapper) _keymapper=no ;;
2009-07-25 23:36:24 +00:00
--enable-text-console) _text_console=yes ;;
--disable-text-console) _text_console=no ;;
2007-11-01 21:03:16 +00:00
--with-fluidsynth-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
FLUIDSYNTH_CFLAGS="-I$arg/include"
FLUIDSYNTH_LIBS="-L$arg/lib"
;;
--with-alsa-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
ALSA_CFLAGS="-I$arg/include"
ALSA_LIBS="-L$arg/lib"
;;
--with-ogg-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
OGG_CFLAGS="-I$arg/include"
OGG_LIBS="-L$arg/lib"
;;
--with-vorbis-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
VORBIS_CFLAGS="-I$arg/include"
VORBIS_LIBS="-L$arg/lib"
;;
--with-tremor-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
TREMOR_CFLAGS="-I$arg/include"
TREMOR_LIBS="-L$arg/lib"
;;
--with-flac-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
FLAC_CFLAGS="-I$arg/include"
FLAC_LIBS="-L$arg/lib"
;;
--with-mad-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
MAD_CFLAGS="-I$arg/include"
MAD_LIBS="-L$arg/lib"
;;
2010-10-12 21:12:50 +00:00
--with-png-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
PNG_CFLAGS="-I$arg/include"
PNG_LIBS="-L$arg/lib"
;;
--with-theoradec-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
THEORADEC_CFLAGS="-I$arg/include"
THEORADEC_LIBS="-L$arg/lib"
;;
2011-04-09 19:27:23 +00:00
--with-faad-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
FAAD_CFLAGS="-I$arg/include"
FAAD_LIBS="-L$arg/lib"
;;
2007-11-01 21:03:16 +00:00
--with-zlib-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
ZLIB_CFLAGS="-I$arg/include"
ZLIB_LIBS="-L$arg/lib"
;;
2011-07-03 21:01:17 +00:00
--with-sparkle-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
SPARKLE_CFLAGS="-F$arg"
SPARKLE_LIBS="-F$arg"
;;
2009-07-25 23:36:24 +00:00
--with-readline-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
READLINE_CFLAGS="-I$arg/include"
READLINE_LIBS="-L$arg/lib"
;;
2011-04-29 15:54:09 +00:00
--with-libunity-prefix=*)
2011-04-01 05:30:12 +00:00
arg=`echo $ac_option | cut -d '=' -f 2`
2011-04-29 15:54:09 +00:00
LIBUNITY_CFLAGS="-I$arg/include"
LIBUNITY_LIBS="-L$arg/lib"
2011-04-01 05:30:12 +00:00
;;
2010-11-28 17:42:05 +00:00
--with-opengl-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
OPENGL_CFLAGS="-I$arg/include"
OPENGL_LIBS="-L$arg/lib"
;;
2007-11-01 21:03:16 +00:00
--backend=*)
_backend=`echo $ac_option | cut -d '=' -f 2`
;;
--enable-debug)
2009-10-13 18:50:46 +00:00
_debug_build=yes
2007-11-01 21:03:16 +00:00
;;
--disable-debug)
2009-10-13 18:50:46 +00:00
_debug_build=no
2007-11-01 21:03:16 +00:00
;;
--enable-Werror)
CXXFLAGS="$CXXFLAGS -Werror"
;;
2011-10-07 22:45:56 +00:00
--enable-release-mode)
_release_build=yes
;;
--disable-release-mode)
_release_build=no
;;
2007-11-01 21:03:16 +00:00
--enable-release)
2009-10-13 18:50:46 +00:00
_release_build=yes
2011-10-09 18:13:35 +00:00
_optimizations=yes
2009-10-13 18:50:46 +00:00
;;
--disable-release)
_release_build=no
2011-10-09 18:13:35 +00:00
_optimizations=no
2011-10-07 22:45:56 +00:00
;;
2011-10-09 18:13:35 +00:00
--enable-optimizations)
_optimizations=yes
2011-10-07 22:45:56 +00:00
;;
2011-10-09 18:13:35 +00:00
--disable-optimizations)
_optimizations=no
2007-11-01 21:03:16 +00:00
;;
2008-07-09 02:19:57 +00:00
--enable-profiling)
2010-04-26 12:11:19 +00:00
_enable_prof=yes
2008-07-09 02:19:57 +00:00
;;
2007-11-01 21:03:16 +00:00
--with-sdl-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
_sdlpath="$arg:$arg/bin"
;;
2011-07-25 20:54:32 +00:00
--with-freetype2-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
_freetypepath="$arg:$arg/bin"
;;
2007-11-01 21:03:16 +00:00
--with-nasm-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
_nasmpath="$arg:$arg/bin"
;;
2009-03-19 20:53:33 +00:00
--with-staticlib-prefix=*)
_staticlibpath=`echo $ac_option | cut -d '=' -f 2`
;;
2007-11-01 21:03:16 +00:00
--host=*)
_host=`echo $ac_option | cut -d '=' -f 2`
;;
--prefix=*)
2010-05-09 20:42:18 +00:00
prefix=`echo $ac_option | cut -d '=' -f 2`
2007-11-01 21:03:16 +00:00
;;
2010-10-11 19:50:17 +00:00
--exec-prefix=*)
exec_prefix=`echo $ac_option | cut -d '=' -f 2`
;;
2007-11-01 21:03:16 +00:00
--bindir=*)
2010-05-09 20:42:18 +00:00
bindir=`echo $ac_option | cut -d '=' -f 2`
2007-11-01 21:03:16 +00:00
;;
2010-10-11 19:50:17 +00:00
--libdir=*)
libdir=`echo $ac_option | cut -d '=' -f 2`
2010-05-09 20:42:18 +00:00
;;
--datarootdir=*)
datarootdir=`echo $ac_option | cut -d '=' -f 2`
2007-11-01 21:03:16 +00:00
;;
--datadir=*)
2010-05-09 20:42:18 +00:00
datadir=`echo $ac_option | cut -d '=' -f 2`
2007-11-01 21:03:16 +00:00
;;
2010-10-11 19:50:17 +00:00
--mandir=*)
mandir=`echo $ac_option | cut -d '=' -f 2`
;;
--docdir=*)
docdir=`echo $ac_option | cut -d '=' -f 2`
2008-05-02 14:30:06 +00:00
;;
2009-03-13 16:31:53 +00:00
--enable-all-engines)
engine_enable_all
;;
--disable-all-engines)
engine_disable_all
;;
2011-11-26 12:15:05 +00:00
--enable-engine=* | --enable-engines=*)
2011-11-20 05:20:31 +00:00
for engine_name in `echo $ac_option | cut -d '=' -f 2- | tr ',' '\n'`; do
engine_enable "${engine_name}"
done
;;
2011-11-26 12:15:05 +00:00
--enable-engine-static=* | --enable-engines-static=*)
2011-11-20 05:20:31 +00:00
for engine_name in `echo $ac_option | cut -d '=' -f 2- | tr ',' '\n'`; do
engine_enable "${engine_name}:static"
done
2007-11-01 21:03:16 +00:00
;;
2011-11-26 12:15:05 +00:00
--enable-engine-dynamic=* | --enable-engines-dynamic=*)
2011-11-20 05:20:31 +00:00
for engine_name in `echo $ac_option | cut -d '=' -f 2- | tr ',' '\n'`; do
engine_enable "${engine_name}:dynamic"
done
;;
2011-11-26 12:15:05 +00:00
--disable-engine=* | --disable-engines=*)
2011-11-20 05:20:31 +00:00
for engine_name in `echo $ac_option | cut -d '=' -f 2 | tr ',' '\n'`; do
engine_disable ${engine_name}
done
2007-11-01 21:03:16 +00:00
;;
*)
2008-05-06 03:00:26 +00:00
option_error
2007-11-01 21:03:16 +00:00
;;
esac;
2002-08-24 15:24:38 +00:00
done;
2009-03-23 17:40:46 +00:00
guessed_host=`$_srcdir/config.guess`
get_system_exe_extension $guessed_host
NATIVEEXEEXT=$_exeext
2004-12-16 22:05:45 +00:00
case $_host in
2011-03-10 18:24:28 +00:00
android | android-v7a)
2010-08-02 17:11:25 +00:00
_host_os=android
_host_cpu=arm
2011-02-06 14:23:47 +00:00
_host_alias=arm-linux-androideabi
2010-08-02 17:11:25 +00:00
;;
2005-07-08 16:16:32 +00:00
arm-riscos)
2004-12-16 22:15:32 +00:00
_host_os=riscos
_host_cpu=arm
;;
2011-08-07 11:33:32 +00:00
bada)
_host_os=bada
2011-08-26 16:04:53 +00:00
if test "$_debug_build" = yes; then
_host_cpu=i686
_host_alias=i686-mingw32
else
_host_cpu=arm
_host_alias=arm-samsung-nucleuseabi
2011-08-07 11:33:32 +00:00
fi
;;
2010-08-26 11:28:30 +00:00
caanoo)
2010-09-20 19:33:58 +00:00
_host_os=gph-linux
2010-08-26 11:28:30 +00:00
_host_cpu=arm
_host_alias=arm-none-linux-gnueabi
;;
2010-08-19 12:43:37 +00:00
dingux)
_host_os=linux
_host_cpu=mipsel
_host_alias=mipsel-linux
;;
2010-02-02 11:46:35 +00:00
dreamcast)
_host_os=dreamcast
_host_cpu=sh
_host_alias=sh-elf
CXXFLAGS="$CXXFLAGS -ml -m4-single-only"
LDFLAGS="$LDFLAGS -ml -m4-single-only"
;;
2010-08-02 17:11:25 +00:00
ds)
_host_os=ds
_host_cpu=arm
_host_alias=arm-eabi
;;
2010-02-02 11:46:35 +00:00
gamecube)
_host_os=gamecube
2005-05-09 21:21:21 +00:00
_host_cpu=ppc
2010-02-02 11:46:35 +00:00
_host_alias=powerpc-gekko
2005-05-09 21:21:21 +00:00
;;
2010-02-02 11:46:35 +00:00
gp2x)
2010-09-20 19:33:58 +00:00
_host_os=gph-linux
2009-06-04 08:30:31 +00:00
_host_cpu=arm
_host_alias=arm-open2x-linux
2010-01-25 01:39:44 +00:00
;;
2010-02-02 11:46:35 +00:00
gp2xwiz)
2010-09-20 19:33:58 +00:00
_host_os=gph-linux
2006-10-06 19:01:39 +00:00
_host_cpu=arm
2009-03-27 14:12:42 +00:00
_host_alias=arm-open2x-linux
2006-10-06 19:01:39 +00:00
;;
2007-03-18 22:56:56 +00:00
i586-mingw32msvc)
_host_os=mingw32msvc
_host_cpu=i586
;;
2009-03-22 16:46:45 +00:00
iphone)
_host_os=iphone
_host_cpu=arm
2009-03-22 17:48:42 +00:00
_host_alias=arm-apple-darwin9
2009-03-22 16:46:45 +00:00
;;
2010-02-02 11:46:35 +00:00
linupy)
_host_os=linux
2009-07-28 22:42:08 +00:00
_host_cpu=arm
;;
2011-07-05 06:52:42 +00:00
maemo)
_host_os=maemo
_host_cpu=arm
_host_alias=arm-linux
# The prefix is always the same on Maemo so we hardcode the default
# here. It is still possible to define a custom prefix which is
# needed when packaging the app with a user-specific app ID.
test "x$prefix" = xNONE && prefix=/opt/scummvm
# Maemo apps are installed into app-specific directories. The
# default directory structure of ScummVM makes no sense here so we
# hardcode Maemo specific directories here.
datarootdir='${prefix}/share'
datadir=/opt/scummvm/share
docdir='${datarootdir}/doc/scummvm'
;;
2010-02-02 11:46:35 +00:00
motoezx)
2008-07-23 19:50:57 +00:00
_host_os=linux
_host_cpu=arm
2010-02-02 11:46:35 +00:00
_host_alias=arm-linux-gnu
2008-07-23 19:50:57 +00:00
;;
2010-02-02 11:46:35 +00:00
motomagx)
_host_os=linux
_host_cpu=arm
_host_alias=arm-linux-gnueabi
2009-07-30 18:27:50 +00:00
;;
2010-10-12 02:18:11 +00:00
n64)
2010-08-01 17:16:39 +00:00
_host_os=n64
_host_cpu=mips
_host_alias=mips64
;;
2010-02-02 11:46:35 +00:00
neuros)
_host_os=linux
_host_cpu=arm
;;
2010-09-06 17:35:27 +00:00
openpandora)
2010-09-20 19:33:58 +00:00
_host_os=linux
2010-09-06 17:35:27 +00:00
_host_cpu=arm
_host_alias=arm-angstrom-linux-gnueabi
;;
2010-02-02 11:46:35 +00:00
ppc-amigaos)
_host_os=amigaos
_host_cpu=ppc
2009-03-25 21:58:16 +00:00
;;
2009-10-08 20:59:53 +00:00
ps2)
_host_os=ps2
2009-10-09 11:38:13 +00:00
_host_cpu=mips64r5900el
2009-10-08 20:59:53 +00:00
_host_alias=ee
;;
2011-06-02 08:34:41 +00:00
ps3)
_host_os=ps3
_host_cpu=ppc
_host_alias=powerpc64-ps3-elf
2011-08-08 19:09:48 +00:00
2011-06-02 08:34:41 +00:00
# The prefix is always the same on PS3 so we hardcode the default
# here. It is still possible to define a custom prefix which is
# needed when packaging the app with a user-specific app ID.
test "x$prefix" = xNONE && prefix=/dev_hdd0/game/SCUM12000/USRDIR
2011-08-08 19:09:48 +00:00
# PS3 apps are installed into app-specific directories. The
2011-06-02 08:34:41 +00:00
# default directory structure of ScummVM makes no sense here so we
# hardcode PS3 specific directories here.
datarootdir='${prefix}/data'
datadir='${datarootdir}'
docdir='${prefix}/doc'
;;
2010-02-02 11:46:35 +00:00
psp)
_host_os=psp
_host_cpu=mipsallegrexel
_host_alias=psp
;;
samsungtv)
_host_os=linux
_host_cpu=arm
2010-03-24 16:40:35 +00:00
_host_alias=arm-linux-gnueabi
2010-02-02 11:46:35 +00:00
;;
2011-04-02 20:36:18 +00:00
webos)
_host_os=webos
_host_cpu=arm
_host_alias=arm-none-linux-gnueabi
2011-05-07 15:57:50 +00:00
# The prefix is always the same on WebOS so we hardcode the default
# here. It is still possible to define a custom prefix which is
# needed when packaging the app with a user-specific app ID.
2011-05-01 21:41:34 +00:00
test "x$prefix" = xNONE && prefix=/media/cryptofs/apps/usr/palm/applications/org.scummvm.scummvm
2011-08-08 19:09:48 +00:00
# WebOS apps are installed into app-specific directories. The
2011-05-07 15:57:50 +00:00
# default directory structure of ScummVM makes no sense here so we
# hardcode WebOS specific directories here.
2011-05-01 21:41:34 +00:00
datarootdir='${prefix}/data'
datadir='${datarootdir}'
docdir='${prefix}/doc'
2011-04-02 20:36:18 +00:00
;;
2010-02-02 11:46:35 +00:00
wii)
_host_os=wii
_host_cpu=ppc
_host_alias=powerpc-gekko
;;
wince)
_host_os=wince
_host_cpu=arm
2011-12-18 23:02:25 +00:00
_host_alias=arm-mingw32ce
2010-02-02 11:46:35 +00:00
;;
2004-12-16 22:05:45 +00:00
*)
2009-03-23 17:40:46 +00:00
if test -n "$_host"; then
2007-10-28 13:14:23 +00:00
guessed_host=`$_srcdir/config.sub $_host`
fi
2004-12-16 22:15:32 +00:00
_host_cpu=`echo $guessed_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
_host_vendor=`echo $guessed_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2009-03-19 21:42:50 +00:00
_host_os=`echo $guessed_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2004-12-16 22:15:32 +00:00
;;
2004-12-16 22:05:45 +00:00
esac
2004-01-22 04:31:31 +00:00
2009-03-18 21:07:28 +00:00
if test -z "$_host_alias"; then
_host_alias="$_host_cpu-$_host_os"
2009-08-22 16:30:20 +00:00
else
# if _host_alias was set, default to the standard GNU tools
_ranlib=$_host_alias-ranlib
_strip=$_host_alias-strip
_ar="$_host_alias-ar cru"
_as="$_host_alias-as"
_windres=$_host_alias-windres
2009-03-18 21:07:28 +00:00
fi
2009-10-13 18:50:46 +00:00
#
# Determine extra build flags for debug and/or release builds
#
2011-05-05 12:02:18 +00:00
case $_host in
caanoo | gp2x | gp2xwiz | openpandora | ps2)
if test "$_debug_build" = auto; then
# If you want to debug one of these platforms, use '--disable-release --enable-debug'
_debug_build=no
fi
if test "$_release_build" = auto; then
# Enable release build by default.
_release_build=yes
fi
2011-10-07 22:45:56 +00:00
2011-10-09 18:13:35 +00:00
if test "$_optimizations" = auto; then
# Enable optimizations by default.
_optimizations=yes
2011-10-07 22:45:56 +00:00
fi
2011-05-05 12:02:18 +00:00
;;
esac
2009-10-13 18:50:46 +00:00
if test "$_debug_build" != no; then
# debug mode not explicitly disabled -> compile with -g
CXXFLAGS="$CXXFLAGS -g"
fi
if test "$_release_build" = yes; then
2011-10-07 22:45:56 +00:00
# Add a define, which indicates we are doing
2010-06-24 22:33:49 +00:00
# an build for a release version.
2011-05-09 14:37:23 +00:00
DEFINES="$DEFINES -DRELEASE_BUILD"
2009-10-13 18:50:46 +00:00
fi
2004-04-08 22:54:22 +00:00
#
# Determine extension used for executables
#
2010-01-25 01:39:44 +00:00
get_system_exe_extension $_host_os
2011-02-06 14:29:22 +00:00
HOSTEXEPRE=
2009-03-23 17:40:46 +00:00
HOSTEXEEXT=$_exeext
2004-04-08 22:54:22 +00:00
2005-10-11 11:27:18 +00:00
#
# Determine separator used for $PATH
#
case $_host_os in
2010-10-18 17:42:24 +00:00
os2-emx*)
2006-02-20 15:16:26 +00:00
SEPARATOR=";"
;;
2010-10-18 17:42:24 +00:00
*)
2006-02-20 15:16:26 +00:00
SEPARATOR=":"
;;
2005-10-11 11:27:18 +00:00
esac
2009-03-19 18:56:54 +00:00
#
# Platform specific sanity checks
#
case $_host_os in
2010-08-02 17:11:25 +00:00
android)
if test -z "$ANDROID_SDK"; then
echo "Please set ANDROID_SDK in your environment. export ANDROID_SDK=<path to Android SDK>"
exit 1
fi
2011-02-06 14:23:47 +00:00
if test -z "$ANDROID_NDK"; then
echo "Please set ANDROID_NDK in your environment. export ANDROID_NDK=<path to Android NDK>"
exit 1
fi
2010-08-02 17:11:25 +00:00
;;
2011-08-07 11:33:32 +00:00
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
;;
2010-08-02 17:11:25 +00:00
ds | gamecube | wii)
2009-03-19 18:56:54 +00:00
if test -z "$DEVKITPRO"; then
echo "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to devkitPRO>"
exit 1
fi
;;
2010-08-03 00:03:04 +00:00
n64)
if test -z "$N64SDK"; then
echo "Please set N64SDK in your environment. export N64SDK=<path to n64 sdk>"
exit 1
fi
;;
2010-02-02 11:46:35 +00:00
ps2)
if test -z "$PS2SDK"; then
echo "Please set PS2SDK in your environment. export PS2SDK=<path to ps2 sdk>"
exit 1
fi
;;
2011-06-02 08:34:41 +00:00
ps3)
if test -z "$PS3DEV"; then
echo "Please set PS3DEV in your environment. export PS3DEV=<path to ps3 toolchain>"
exit 1
fi
;;
2009-03-25 21:58:16 +00:00
psp)
2011-05-05 12:14:21 +00:00
if test -z "$PSPDEV"; then
PSPDEV=`psp-config --pspdev-path`
fi
# TODO: Should we also insist on a valid PSPDEV value?
2009-10-09 12:10:08 +00:00
if test -z "$PSPSDK"; then
2011-05-05 12:14:21 +00:00
PSPSDK=`psp-config --pspsdk-path`
fi
if test -z "$PSPSDK"; then
echo "Please set PSPSDK in your environment. export PSPSDK=<path to psp sdk>"
2009-03-25 21:58:16 +00:00
exit 1
fi
;;
2011-04-02 20:36:18 +00:00
webos)
if test -z "$WEBOS_SDK"; then
echo "Please set WEBOS_SDK in your environment. export WEBOS_SDK=<path to WebOS SDK>"
exit 1
fi
if test -z "$WEBOS_PDK"; then
echo "Please set WEBOS_PDK in your environment. export WEBOS_PDK=<path to WebOS PDK>"
exit 1
fi
;;
2009-03-19 18:56:54 +00:00
*)
;;
esac
2002-08-24 15:24:38 +00:00
#
# Determine the C++ compiler
#
2004-04-05 22:07:09 +00:00
echo_n "Looking for C++ compiler... "
2009-03-19 21:42:50 +00:00
# Check whether the given command is a working C++ compiler
test_compiler() {
2010-05-08 20:22:50 +00:00
cat > tmp_cxx_compiler.cpp << EOF
2009-03-19 21:42:50 +00:00
class Foo { int a; };
int main(int argc, char **argv) {
Foo *a = new Foo(); delete a; return 0;
}
EOF
2010-05-08 20:22:50 +00:00
echo "testing compiler: $1" >> "$TMPLOG"
2009-03-19 21:42:50 +00:00
if test -n "$_host"; then
# In cross-compiling mode, we cannot run the result
2010-05-08 20:22:50 +00:00
eval "$1 $CXXFLAGS $LDFLAGS -o $TMPO.o -c tmp_cxx_compiler.cpp" 2> /dev/null && cc_check_clean tmp_cxx_compiler.cpp
2009-03-19 21:42:50 +00:00
else
2010-05-08 20:22:50 +00:00
eval "$1 $CXXFLAGS $LDFLAGS -o $TMPO$HOSTEXEEXT tmp_cxx_compiler.cpp" 2> /dev/null && eval "$TMPO$HOSTEXEEXT 2> /dev/null" && cc_check_clean tmp_cxx_compiler.cpp
2009-03-19 21:42:50 +00:00
fi
}
# Prepare a list of candidates for the C++ compiler
2009-03-23 15:47:45 +00:00
if test -n "$CXX" && test_compiler "$CXX"; then
# Use the compiler specified in CXX
echo $CXX
2004-01-22 04:31:31 +00:00
else
2009-03-23 15:47:45 +00:00
if test -n "$_host"; then
compilers="$_host_alias-g++ $_host_alias-c++ $_host-g++ $_host-c++"
else
compilers="g++ c++"
fi
# Iterate over all candidates, pick the first working one
CXX=
for compiler in $compilers; do
if test_compiler $compiler; then
2010-09-09 14:01:33 +00:00
echo "success testing compiler: $compiler" >> "$TMPLOG"
2009-03-23 15:47:45 +00:00
CXX=$compiler
echo $CXX
break
2010-07-01 23:12:28 +00:00
else
2010-09-09 14:01:33 +00:00
echo "failure testing compiler: $compiler" >> "$TMPLOG"
2009-03-23 15:47:45 +00:00
fi
done
2004-01-22 04:31:31 +00:00
fi
2006-10-15 00:49:36 +00:00
if test -z "$CXX"; then
2004-12-16 22:15:32 +00:00
echo "none found!"
exit 1
2002-08-24 15:24:38 +00:00
fi
2009-10-09 11:38:13 +00:00
# By default, use the C++ compiler as linker
LD=$CXX
2003-06-02 03:01:22 +00:00
#
# Determine the compiler version
2009-03-18 21:51:56 +00:00
#
2003-06-02 03:01:22 +00:00
echocheck "compiler version"
2011-02-10 01:05:48 +00:00
# We first check whether we have an Intel compiler here, since the Intel compiler
# can also fake itself as an gcc (to ease compatibility with common Linux etc.
# programs).
have_icc=no
cc_check_define __INTEL_COMPILER && have_icc=yes
if test "$have_icc" = yes; then
add_line_to_config_mk 'HAVE_ICC = 1'
# 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"
fi
2009-09-25 12:11:27 +00:00
have_gcc=no
2010-04-09 13:10:33 +00:00
cc_check_define __GNUC__ && have_gcc=yes
2010-04-09 12:23:43 +00:00
if test "$have_gcc" = yes; then
add_line_to_config_mk 'HAVE_GCC = 1'
_cxx_major=`gcc_get_define __GNUC__`
_cxx_minor=`gcc_get_define __GNUC_MINOR__`
cxx_version="`( $CXX -dumpversion ) 2>&1`"
if test -n "`gcc_get_define __clang__`"; then
add_line_to_config_mk 'HAVE_CLANG = 1'
fi
if test "$_cxx_major" -eq 2 && test "$_cxx_minor" -ge 95 || \
test "$_cxx_major" -gt 2 ; then
cxx_version="$cxx_version, ok"
cxx_verc_fail=no
else
cxx_version="$cxx_version, bad"
cxx_verc_fail=yes
fi
2011-02-10 01:05:48 +00:00
elif test "$have_icc" = yes; then
cxx_version="`( $CXX -dumpversion ) 2>/dev/null`"
_cxx_major="`echo "${cxx_version}" | sed -ne 's/\([0-9][0-9]*\)\..*/\1/gp'`"
_cxx_minor="`echo "${cxx_version}" | sed -ne 's/[0-9][0-9]*\.\([0-9][0-9]*\)/\1/gp'`"
cxx_version="ICC $cxx_version, ok"
2010-04-09 12:23:43 +00:00
else
# TODO: Big scary warning about unsupported compilers
2009-09-25 12:11:27 +00:00
cxx_version=`( $CXX -version ) 2>&1`
if test "$?" -eq 0; then
cxx_version="`echo "${cxx_version}" | sed -ne 's/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/gp'`"
if test -z "${cxx_version}"; then
cxx_version="not found"
cxx_verc_fail=yes
fi
echo non-gcc compiler version ${cxx_version}
else
cxx_version="not found"
cxx_verc_fail=yes
echo found non-gcc compiler version ${cxx_version}
fi
2003-06-02 03:01:22 +00:00
2009-09-25 12:11:27 +00:00
case $_host_os in
irix*)
case $cxx_version in
7.4.4*)
2010-04-22 15:30:26 +00:00
# We just assume this is SGI MIPSpro
2009-09-25 12:11:27 +00:00
_cxx_major=7
_cxx_minor=4
2010-04-22 15:30:26 +00:00
cxx_verc_fail=no
2009-09-25 12:11:27 +00:00
add_line_to_config_mk 'CXX_UPDATE_DEP_FLAG = -MDupdate "$(*D)/$(DEPDIR)/$(*F).d"'
2009-09-25 12:25:27 +00:00
add_line_to_config_mk '-include Makedepend'
2009-09-25 12:11:27 +00:00
;;
*)
cxx_version="$cxx_version, bad"
cxx_verc_fail=yes
;;
esac
;;
2010-01-25 01:39:44 +00:00
*)
2009-09-25 12:11:27 +00:00
cxx_version="$cxx_version, bad"
cxx_verc_fail=yes
;;
esac
fi
2003-06-02 03:01:22 +00:00
echo "$cxx_version"
2011-05-25 11:40:07 +00:00
#
2011-10-31 10:51:31 +00:00
# Bail out now if no useable compiler was found.
2011-05-25 11:40:07 +00:00
#
2003-06-02 03:01:22 +00:00
if test "$cxx_verc_fail" = yes ; then
echo
echo "The version of your compiler is not supported at this time"
2006-01-29 03:47:46 +00:00
echo "Please ensure you are using GCC >= 2.95"
2008-01-27 19:47:41 +00:00
exit 1
2003-06-02 03:01:22 +00:00
fi
2011-05-04 14:30:10 +00:00
#
2011-05-25 11:40:07 +00:00
# Setup compiler specific CXXFLAGS now that we know the compiler version.
# Foremost, this means enabling various warnings.
# In addition, we set CXX_UPDATE_DEP_FLAG for GCC >= 3.0 and for ICC.
2011-05-04 14:30:10 +00:00
#
if test "$have_gcc" = yes ; then
if test "$_cxx_major" -ge "3" ; then
case $_host_os in
# newlib-based system include files suppress non-C89 function
# declarations under __STRICT_ANSI__
2011-08-07 11:33:32 +00:00
amigaos* | android | bada | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | wii | wince )
2011-05-04 14:30:10 +00:00
;;
*)
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -ansi"
2011-05-04 14:30:10 +00:00
;;
esac
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -W -Wno-unused-parameter"
2011-05-04 14:30:10 +00:00
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"
else
CXXFLAGS="$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'
fi;
2011-05-25 11:40:07 +00:00
# By default, we add -pedantic to the CXXFLAGS to catch some potentially
# non-portable constructs, like use of GNU extensions.
# However, some platforms use GNU extensions in system header files, so
# for these we must not use -pedantic.
2011-05-04 14:30:10 +00:00
case $_host_os in
2012-01-21 15:05:17 +00:00
android | gamecube | psp | wii | webos)
2011-05-04 14:30:10 +00:00
;;
*)
2011-05-25 11:40:07 +00:00
# ICC does not support pedantic, while GCC and clang do.
2011-05-04 14:30:10 +00:00
if test "$have_icc" = no ; then
CXXFLAGS="$CXXFLAGS -pedantic"
fi
;;
esac
2011-05-25 11:40:07 +00:00
# If possible, we want to use -Wglobal-constructors
# However, not all compilers support that, so check whether the active one does.
echocheck "whether -Wglobal-constructors work"
cat > $TMPC << EOF
int main() { return 0; }
EOF
cc_check -Wglobal-constructors && _global_constructors=yes
if test "$_global_constructors" = yes; then
CXXFLAGS="$CXXFLAGS -Wglobal-constructors"
fi
echo $_global_constructors
2007-10-28 13:14:23 +00:00
#
# Check for endianness
#
echo_n "Checking endianness... "
2010-05-08 20:22:50 +00:00
cat > tmp_endianness_check.cpp << EOF
2011-05-04 14:30:10 +00:00
unsigned short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
unsigned short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
2007-10-28 13:14:23 +00:00
void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
2011-05-04 14:30:10 +00:00
unsigned short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
unsigned short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
2007-10-28 13:14:23 +00:00
void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
int main() { _ascii (); _ebcdic (); return 0; }
EOF
2010-05-08 20:22:50 +00:00
$CXX $CXXFLAGS -c -o $TMPO.o tmp_endianness_check.cpp
if strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
2007-10-28 13:14:23 +00:00
_endian=big
2011-05-26 09:03:00 +00:00
elif strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
2007-10-28 13:14:23 +00:00
_endian=little
fi
echo $_endian;
2010-05-08 20:22:50 +00:00
cc_check_clean tmp_endianness_check.cpp
2007-10-28 13:14:23 +00:00
2011-05-26 09:02:46 +00:00
case $_endian in
big)
add_line_to_config_h '#undef SCUMM_LITTLE_ENDIAN'
add_line_to_config_h '#define SCUMM_BIG_ENDIAN'
;;
little)
add_line_to_config_h '#define SCUMM_LITTLE_ENDIAN'
add_line_to_config_h '#undef SCUMM_BIG_ENDIAN'
;;
*)
exit 1
;;
esac
2009-03-22 11:24:23 +00:00
#
# Determine a data type with the given length
#
find_type_with_size() {
2012-01-10 15:11:10 +00:00
for datatype in int short char long "long long" unknown; do
2010-05-08 20:22:50 +00:00
cat > tmp_find_type_with_size.cpp << EOF
2009-03-22 11:24:23 +00:00
typedef $datatype ac__type_sizeof_;
int main() {
static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) == $1)];
test_array [0] = 0;
return 0;
}
EOF
2010-05-08 20:22:50 +00:00
if $CXX $CXXFLAGS -c -o $TMPO.o tmp_find_type_with_size.cpp 2>/dev/null ; then
break
else
if test "$datatype" = "unknown"; then
echo "couldn't find data type with $1 bytes"
exit 1
fi
continue
2009-03-22 11:24:23 +00:00
fi
done
2010-05-08 20:22:50 +00:00
cc_check_clean tmp_find_type_with_size.cpp
2009-03-22 11:24:23 +00:00
echo $datatype
}
2011-12-24 10:59:42 +00:00
#
# Check whether the system is 32-bit
#
pointer_is_32bit() {
2012-01-10 14:37:34 +00:00
cat > tmp_pointer_is_32bit.cpp << EOF
2011-12-24 10:59:42 +00:00
int main() {
2012-01-10 14:37:34 +00:00
static int test_array[1 - 2 * !(sizeof(void *) == 4)];
2012-01-10 14:38:42 +00:00
test_array[0] = 0;
return 0;
2011-12-24 10:59:42 +00:00
}
EOF
2012-01-10 14:37:34 +00:00
$CXX $CXXFLAGS -c -o $TMPO.o tmp_pointer_is_32bit.cpp 2>/dev/null
status=$?
cc_check_clean tmp_pointer_is_32bit.cpp
return $status
2011-12-24 10:59:42 +00:00
}
echo_n "Checking 64-bitness... "
pointer_is_32bit
if test $? -eq 0; then
2012-01-10 14:37:34 +00:00
type_ptr=int32
echo "no"
add_line_to_config_h "/* #define SCUMM_64BITS */"
2011-12-24 10:59:42 +00:00
else
2012-01-10 14:37:34 +00:00
type_ptr=int64
echo "yes"
add_line_to_config_h "#define SCUMM_64BITS"
2011-12-24 10:59:42 +00:00
fi
2007-10-28 13:14:23 +00:00
#
# Determine data type sizes
#
echo_n "Type with 1 byte... "
type_1_byte=`find_type_with_size 1`
2011-04-08 14:16:59 +00:00
TMPR="$?"
2007-10-28 13:14:23 +00:00
echo "$type_1_byte"
2011-04-08 14:16:59 +00:00
test $TMPR -eq 0 || exit 1 # check exit code of subshell
2008-01-27 19:47:41 +00:00
2007-10-28 13:14:23 +00:00
echo_n "Type with 2 bytes... "
type_2_byte=`find_type_with_size 2`
2011-04-08 14:16:59 +00:00
TMPR="$?"
2007-10-28 13:14:23 +00:00
echo "$type_2_byte"
2011-04-08 14:16:59 +00:00
test $TMPR -eq 0 || exit 1 # check exit code of subshell
2008-01-27 19:47:41 +00:00
2007-10-28 13:14:23 +00:00
echo_n "Type with 4 bytes... "
type_4_byte=`find_type_with_size 4`
2011-04-08 14:16:59 +00:00
TMPR="$?"
2007-10-28 13:14:23 +00:00
echo "$type_4_byte"
2011-04-08 14:16:59 +00:00
test $TMPR -eq 0 || exit 1 # check exit code of subshell
2008-01-27 19:47:41 +00:00
2011-12-24 10:59:42 +00:00
echo_n "Type with 8 bytes... "
type_8_byte=`find_type_with_size 8`
TMPR="$?"
echo "$type_8_byte"
if test $TMPR -eq 0; then
2012-01-10 14:37:34 +00:00
_def_64bit_type_signed="typedef signed $type_8_byte int64;"
_def_64bit_type_unsigned="typedef unsigned $type_8_byte uint64;"
2011-12-24 10:59:42 +00:00
fi
# force cleanup after check for 8 bytes type
cc_check_clean tmp_find_type_with_size.cpp
2011-05-26 09:02:46 +00:00
#
# Check whether memory alignment is required
#
# For some CPU types, unaligned memory access is either not supported at
# all (and so leads to a crash), requires a super-slow emulation via an
# exception handler, or just results in incorrect results.
# On the other hand, accessing data in a manner that works regardless of
# alignment can be a lot slower than regular access, so we don't want
# to use it if we don't have to.
#
# So we do the following: For CPU families where we know whether unaligned
# access is safe & fast, we enable / disable unaligned access accordingly.
# Otherwise, we just disable memory alignment.
#
# NOTE: In the past, for non-cross compiled builds, we would also run some code
# which would try to test whether unaligned access worked or not. But this test
# could not reliably determine whether unaligned access really worked in all
# situations (and across different implementations of the target CPU arch), nor
# whether it was fast (as opposed to slowly emulated by fault handlers). Hence,
# we do not use this approach anymore.
#
# NOTE: The only kinds of unaligned access we allow are for 2 byte and 4
# byte loads / stores. No promises are made for bigger sizes, such as 8
# or 16 byte loads, for which architectures may behave differently than
# for the smaller sizes.
echo_n "Alignment required... "
case $_host_cpu in
i[3-6]86 | x86_64 | ppc*)
# Unaligned access should work
_need_memalign=no
;;
alpha* | arm* | bfin* | hp* | mips* | sh* | sparc* | ia64 | nv1*)
# Unaligned access is not supported or extremely slow.
_need_memalign=yes
;;
*)
# Status of unaligned access is unknown, so assume the worst.
_need_memalign=yes
;;
esac
echo "$_need_memalign"
define_in_config_h_if_yes $_need_memalign 'SCUMM_NEED_ALIGNMENT'
#
2011-07-12 09:28:47 +00:00
# Check the CPU architecture
2011-05-26 09:02:46 +00:00
#
2011-07-12 09:28:47 +00:00
echo_n "Checking host CPU architecture... "
2011-05-26 09:02:46 +00:00
case $_host_cpu in
2011-07-12 09:28:47 +00:00
arm*)
echo "ARM"
define_in_config_if_yes yes 'USE_ARM_SCALER_ASM'
define_in_config_if_yes yes 'USE_ARM_SOUND_ASM'
define_in_config_if_yes yes 'USE_ARM_SMUSH_ASM'
define_in_config_if_yes yes 'USE_ARM_GFX_ASM'
define_in_config_if_yes yes 'USE_ARM_COSTUME_ASM'
2011-08-08 18:36:06 +00:00
2011-07-12 09:28:47 +00:00
DEFINES="$DEFINES -DARM_TARGET"
;;
i[3-6]86)
echo "x86"
2011-05-26 09:02:46 +00:00
_have_x86=yes
2011-07-12 09:28:47 +00:00
define_in_config_h_if_yes $_have_x86 'HAVE_X86'
2011-05-26 09:02:46 +00:00
;;
2011-07-12 09:28:47 +00:00
mips*)
echo "MIPS"
DEFINES="$DEFINES -DMIPS_TARGET"
2011-05-26 09:02:46 +00:00
;;
2011-07-12 09:28:47 +00:00
ppc*)
echo "PowerPC"
DEFINES="$DEFINES -DPPC_TARGET"
2011-05-26 09:02:46 +00:00
;;
2011-08-08 18:36:06 +00:00
x86_64)
echo "x86_64"
;;
2011-05-26 09:02:46 +00:00
*)
2011-07-12 09:28:47 +00:00
echo "unknown ($_host_cpu)"
2011-05-26 09:02:46 +00:00
;;
esac
2007-10-28 13:14:23 +00:00
#
# Determine build settings
#
echo_n "Checking hosttype... "
echo $_host_os
case $_host_os in
2010-02-02 11:46:35 +00:00
amigaos*)
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -use-dynld"
LDFLAGS="$LDFLAGS -L/sdk/local/newlib/lib"
2010-02-02 11:46:35 +00:00
# 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'
2010-11-28 17:41:33 +00:00
add_line_to_config_mk 'AMIGAOS = 1'
2009-05-16 12:35:48 +00:00
;;
2010-08-02 17:11:25 +00:00
android)
2011-03-10 18:24:28 +00:00
case $_host in
android)
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -march=armv5te"
CXXFLAGS="$CXXFLAGS -mtune=xscale"
CXXFLAGS="$CXXFLAGS -msoft-float"
2011-03-10 18:24:28 +00:00
;;
android-v7a)
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -march=armv7-a"
CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
CXXFLAGS="$CXXFLAGS -mfpu=vfp"
2011-03-10 18:24:28 +00:00
LDFLAGS="$LDFLAGS -Wl,--fix-cortex-a8"
;;
esac
2011-02-06 14:23:47 +00:00
CXXFLAGS="$CXXFLAGS --sysroot=$ANDROID_NDK/platforms/android-4/arch-arm"
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
CXXFLAGS="$CXXFLAGS -ffunction-sections"
CXXFLAGS="$CXXFLAGS -funwind-tables"
2011-03-10 19:11:15 +00:00
if test "$_debug_build" = yes; then
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
2011-03-10 19:11:15 +00:00
else
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
CXXFLAGS="$CXXFLAGS -fstrict-aliasing"
2011-02-22 21:13:44 +00:00
fi
2011-03-10 18:42:02 +00:00
CXXFLAGS="$CXXFLAGS -finline-limit=300"
2011-10-07 22:45:56 +00:00
_optimization_level=-Os
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -mthumb-interwork"
2011-05-05 14:26:05 +00:00
# FIXME: Why is the following in CXXFLAGS and not in DEFINES? Change or document this.
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5__"
CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5T__"
CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5E__"
CXXFLAGS="$CXXFLAGS -D__ARM_ARCH_5TE__"
2011-02-06 14:23:47 +00:00
# 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"
2011-02-22 21:13:44 +00:00
LDFLAGS="$LDFLAGS -mthumb-interwork"
2010-08-02 17:11:25 +00:00
add_line_to_config_mk "ANDROID_SDK = $ANDROID_SDK"
_seq_midi=no
;;
2011-08-07 11:33:32 +00:00
bada)
2011-08-26 16:04:53 +00:00
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"
2011-08-07 11:33:32 +00:00
2011-08-26 16:04:53 +00:00
# assume dependencies have been installed in cygwin's /usr/local
CYGWIN_USR_LOCAL="`cygpath -m /usr/local`"
2011-08-07 11:33:32 +00:00
LDFLAGS="$LDFLAGS -L${CYGWIN_USR_LOCAL}/lib"
CXXFLAGS="$CXXFLAGS -I${CYGWIN_USR_LOCAL}/include"
;;
2008-01-31 12:20:47 +00:00
beos*)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2008-02-26 16:55:58 +00:00
# Needs -lbind -lsocket for the timidity MIDI driver
2009-01-05 20:12:28 +00:00
LDFLAGS="-L/boot/home/config/lib"
CFLAGS="-I/boot/home/config/include"
CXXFLAGS="$CXXFLAGS -fhuge-objects"
2008-01-31 12:20:47 +00:00
LIBS="$LIBS -lbind -lsocket"
2010-07-20 08:25:13 +00:00
_seq_midi=no
2009-03-19 21:42:50 +00:00
;;
2010-02-02 11:46:35 +00:00
cygwin*)
echo ERROR: Cygwin building is not supported by ScummVM anymore. Consider using MinGW.
exit 1
;;
darwin*)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DMACOSX"
2010-02-02 11:46:35 +00:00
LIBS="$LIBS -framework AudioUnit -framework AudioToolbox -framework Carbon -framework CoreMIDI"
add_line_to_config_mk 'MACOSX = 1'
2011-08-26 16:41:09 +00:00
# Now we may have MacPorts or Fink installed
# Which put libraries and headers in non-standard places
# Checking them here
2012-01-20 23:12:26 +00:00
2011-08-26 16:41:09 +00:00
# MacPorts
# There is no way to get the prefix, so implementing a hack here
macport_version=`port version 2>/dev/null`
if test "$?" -eq 0; then
2011-10-21 12:10:38 +00:00
macport_version="`echo "${macport_version}" | sed -ne 's/Version: \([0-9]\.[0-9]\.[0-9]\)/\1/gp'`"
2011-08-26 16:41:09 +00:00
echo_n "You seem to be running MacPorts version ${macport_version}..."
2011-08-26 16:51:32 +00:00
macport_prefix=`which port`
# strip off /bin/port from /opt/local/bin/port
macport_prefix=`dirname ${macport_prefix}`
macport_prefix=`dirname ${macport_prefix}`
2011-08-26 16:41:09 +00:00
echo "adding ${macport_prefix} to paths"
LDFLAGS="-L${macport_prefix}/lib $LDFLAGS"
2011-08-26 16:51:32 +00:00
CXXFLAGS="-I${macport_prefix}/include $CXXFLAGS"
2011-08-26 16:41:09 +00:00
fi
2010-02-02 11:46:35 +00:00
;;
dreamcast)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D__DC__"
DEFINES="$DEFINES -DNONSTANDARD_PORT"
2010-02-02 11:46:35 +00:00
;;
2010-08-02 17:11:25 +00:00
ds)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D__DS__"
DEFINES="$DEFINES -DNDS"
DEFINES="$DEFINES -DARM9"
DEFINES="$DEFINES -DARM"
DEFINES="$DEFINES -DNONSTANDARD_PORT"
2011-05-26 12:03:39 +00:00
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"
2010-09-06 20:34:00 +00:00
CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -specs=ds_arm9.specs"
LDFLAGS="$LDFLAGS -mthumb-interwork"
LDFLAGS="$LDFLAGS -mno-fpu"
LDFLAGS="$LDFLAGS -Wl,-Map,map.txt"
2010-08-13 19:55:22 +00:00
if test "$_dynamic_modules" = no ; then
2011-03-10 18:42:02 +00:00
LDFLAGS="$LDFLAGS -Wl,--gc-sections"
else
2011-05-03 21:51:20 +00:00
LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
# TODO automate this required 2 step linking phase
# LDFLAGS="$LDFLAGS -Wl,--retain-symbols-file,ds.syms"
2010-08-15 08:15:28 +00:00
fi
2010-08-02 17:11:25 +00:00
LDFLAGS="$LDFLAGS -L$DEVKITPRO/libnds/lib"
LIBS="$LIBS -lnds9"
;;
2010-02-02 11:46:35 +00:00
freebsd*)
LDFLAGS="$LDFLAGS -L/usr/local/lib"
CXXFLAGS="$CXXFLAGS -I/usr/local/include"
;;
gamecube)
2011-10-07 22:45:56 +00:00
_optimization_level=-Os
2011-05-26 12:03:39 +00:00
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"
2010-09-15 07:44:24 +00:00
CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
2010-08-14 00:56:12 +00:00
CXXFLAGS="$CXXFLAGS -I$DEVKITPRO/libogc/include"
2010-06-15 18:42:08 +00:00
# libogc is required to link the cc tests (includes _start())
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -mogc"
LDFLAGS="$LDFLAGS -mcpu=750"
LDFLAGS="$LDFLAGS -L$DEVKITPRO/libogc/lib/cube"
LDFLAGS="$LDFLAGS -logc"
2010-09-05 12:49:29 +00:00
if test "$_dynamic_modules" = "yes" ; then
# retarded toolchain patch forces --gc-sections, overwrite it
LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
fi
2010-02-02 11:46:35 +00:00
;;
2009-01-05 20:12:28 +00:00
haiku*)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2009-01-05 20:12:28 +00:00
# Needs -lnetwork for the timidity MIDI driver
LIBS="$LIBS -lnetwork"
2010-07-20 08:25:13 +00:00
_seq_midi=no
2009-03-19 21:42:50 +00:00
;;
2007-10-28 13:14:23 +00:00
irix*)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DIRIX"
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2009-09-25 12:11:27 +00:00
LIBS="$LIBS -lmd -lfastm -lm"
2007-10-28 13:14:23 +00:00
_ranlib=:
;;
2010-02-02 11:46:35 +00:00
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)"
fi
2007-10-28 13:14:23 +00:00
;;
2011-07-05 06:52:42 +00:00
maemo)
DEFINES="$DEFINES -DMAEMO"
;;
2007-10-28 13:14:23 +00:00
mingw*)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DWIN32"
DEFINES="$DEFINES -D__USE_MINGW_ANSI_STDIO=0"
2011-07-01 05:11:52 +00:00
LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++"
2011-06-29 10:18:50 +00:00
LIBS="$LIBS -lmingw32 -lwinmm -lgdi32"
2011-04-21 22:29:18 +00:00
OBJS="$OBJS scummvmwinres.o"
2010-11-28 17:41:33 +00:00
add_line_to_config_mk 'WIN32 = 1'
2007-10-28 13:14:23 +00:00
;;
mint*)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2007-10-28 13:14:23 +00:00
;;
2010-08-01 17:16:39 +00:00
n64)
2011-05-05 14:26:05 +00:00
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"
2010-10-07 15:45:38 +00:00
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-08-01 17:16:39 +00:00
;;
2009-10-08 20:59:53 +00:00
ps2)
2009-11-18 16:09:38 +00:00
CXXFLAGS="$CXXFLAGS -G2"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D_EE"
DEFINES="$DEFINES -D__PLAYSTATION2__"
2009-10-08 20:59:53 +00:00
;;
2011-06-02 08:34:41 +00:00
ps3)
# Force use of SDL from the ps3 toolchain
_sdlpath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
2011-08-08 19:09:48 +00:00
2011-06-02 08:34:41 +00:00
DEFINES="$DEFINES -DPLAYSTATION3"
2011-06-25 13:17:03 +00:00
CXXFLAGS="$CXXFLAGS -mcpu=cell -mminimal-toc -I$PS3DEV/psl1ght/ppu/include -I$PS3DEV/portlibs/ppu/include"
2011-06-02 08:34:41 +00:00
LDFLAGS="$LDFLAGS -L$PS3DEV/psl1ght/ppu/lib -L$PS3DEV/portlibs/ppu/lib"
add_line_to_config_mk 'PLAYSTATION3 = 1'
add_line_to_config_h "#define PREFIX \"${prefix}\""
;;
2010-02-02 11:46:35 +00:00
psp)
2011-05-05 12:14:21 +00:00
if test -d "$PSPDEV/psp/lib"; then
LDFLAGS="$LDFLAGS -L$PSPDEV/psp/lib"
fi
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -L$PSPSDK/lib"
LDFLAGS="$LDFLAGS -specs=$_srcdir/backends/platform/psp/psp.spec"
2011-10-07 22:45:56 +00:00
_optimization_level=-O3
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -I$PSPSDK/include"
2011-05-05 14:26:05 +00:00
# FIXME: Why is the following in CXXFLAGS and not in DEFINES? Change or document this.
CXXFLAGS="$CXXFLAGS -D_PSP_FW_VERSION=150"
2010-02-02 11:46:35 +00:00
;;
solaris*)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DSOLARIS"
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2010-02-02 11:46:35 +00:00
# Needs -lbind -lsocket for the timidity MIDI driver
LIBS="$LIBS -lnsl -lsocket"
;;
2011-04-02 20:36:18 +00:00
webos)
2012-01-21 15:09:24 +00:00
CXXFLAGS="$CXXFLAGS --sysroot=$WEBOS_PDK/arm-gcc/sysroot"
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/include"
CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/include/SDL"
CXXFLAGS="$CXXFLAGS -I$WEBOS_PDK/device/usr/include"
2011-05-08 15:36:20 +00:00
# These compiler options are needed to support the Palm Pixi
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -mcpu=arm1136jf-s"
CXXFLAGS="$CXXFLAGS -mfpu=vfp "
2011-05-31 10:22:26 +00:00
CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -L$WEBOS_PDK/device/lib"
LDFLAGS="$LDFLAGS -L$WEBOS_PDK/device/usr/lib"
2011-04-02 20:36:18 +00:00
LDFLAGS="$LDFLAGS -Wl,--allow-shlib-undefined"
2011-04-10 22:20:26 +00:00
LDFLAGS="$LDFLAGS --sysroot=$WEBOS_PDK/arm-gcc/sysroot"
2011-04-02 20:36:18 +00:00
add_line_to_config_mk "WEBOS_SDK = $WEBOS_SDK"
_seq_midi=no
;;
2010-02-02 11:46:35 +00:00
wii)
2011-10-07 22:45:56 +00:00
_optimization_level=-Os
2011-05-26 12:03:39 +00:00
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"
2010-09-06 20:34:00 +00:00
CXXFLAGS="$CXXFLAGS -fuse-cxa-atexit"
2010-08-14 00:56:12 +00:00
CXXFLAGS="$CXXFLAGS -I$DEVKITPRO/libogc/include"
2010-06-15 18:30:30 +00:00
# libogc is required to link the cc tests (includes _start())
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -mrvl"
LDFLAGS="$LDFLAGS -mcpu=750"
LDFLAGS="$LDFLAGS -L$DEVKITPRO/libogc/lib/wii"
LDFLAGS="$LDFLAGS -logc"
2010-09-05 12:49:29 +00:00
if test "$_dynamic_modules" = "yes" ; then
# retarded toolchain patch forces --gc-sections, overwrite it
LDFLAGS="$LDFLAGS -Wl,--no-gc-sections"
fi
2010-02-02 11:46:35 +00:00
;;
2009-07-28 22:42:08 +00:00
wince)
2011-10-07 22:45:56 +00:00
_optimization_level=-O3
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -fno-inline-functions"
CXXFLAGS="$CXXFLAGS -march=armv4"
CXXFLAGS="$CXXFLAGS -mtune=xscale"
2011-05-05 14:26:05 +00:00
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"
2011-10-18 11:10:20 +00:00
DEFINES="$DEFINES -DWRAP_MALLOC"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DWIN32"
DEFINES="$DEFINES -Dcdecl="
DEFINES="$DEFINES -D__cdecl__="
2011-10-18 11:10:20 +00:00
add_line_to_config_mk "WRAP_MALLOC = 1"
2009-07-28 22:42:08 +00:00
;;
2011-05-05 14:14:28 +00:00
esac
2004-01-22 04:31:31 +00:00
if test -n "$_host"; then
2004-12-16 22:15:32 +00:00
# Cross-compiling mode - add your target here if needed
2010-04-09 14:30:10 +00:00
echo "Cross-compiling to $_host"
2004-12-16 22:15:32 +00:00
case "$_host" in
2011-03-10 18:24:28 +00:00
android | android-v7a)
2011-02-06 14:23:47 +00:00
# we link a .so as default
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -shared"
LDFLAGS="$LDFLAGS -Wl,-Bsymbolic,--no-undefined"
2011-02-06 14:23:47 +00:00
HOSTEXEPRE=lib
HOSTEXEEXT=.so
2010-08-02 17:11:25 +00:00
_backend="android"
_port_mk="backends/platform/android/android.mk"
2011-02-06 14:23:47 +00:00
_build_scalers=no
2010-08-02 17:11:25 +00:00
_seq_midi=no
2011-02-18 18:00:43 +00:00
_mt32emu=no
_timidity=no
2010-08-02 17:11:25 +00:00
;;
2010-02-23 21:01:05 +00:00
arm-linux|arm*-linux-gnueabi|arm-*-linux)
2005-10-26 17:39:23 +00:00
;;
2010-02-02 11:46:35 +00:00
arm-riscos|linupy)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DLINUPY"
2009-11-09 14:43:05 +00:00
;;
2011-08-07 11:33:32 +00:00
bada)
2011-08-26 16:04:53 +00:00
_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
2011-08-07 11:33:32 +00:00
_vkeybd=yes
2011-08-26 16:04:53 +00:00
;;
2010-02-02 11:46:35 +00:00
bfin*)
;;
2010-08-26 11:28:30 +00:00
caanoo)
2010-10-20 13:03:19 +00:00
# This uses the GPH backend.
DEFINES="$DEFINES -DGPH_DEVICE"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DCAANOO"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-09-20 19:33:58 +00:00
if test "$_debug_build" = yes; then
DEFINES="$DEFINES -DGPH_DEBUG"
else
# Use -O3 on the Caanoo for non-debug builds.
2011-10-07 22:45:56 +00:00
_optimization_level=-O3
2010-09-20 19:33:58 +00:00
fi
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
CXXFLAGS="$CXXFLAGS -mtune=arm926ej-s"
2010-08-26 11:28:30 +00:00
ASFLAGS="$ASFLAGS"
2010-09-09 09:55:07 +00:00
_backend="gph"
2010-08-26 11:28:30 +00:00
_build_hq_scalers=no
2011-09-22 18:32:48 +00:00
_savegame_timestamp=no
2010-08-26 11:28:30 +00:00
_vkeybd=yes
_seq_midi=no
2011-04-12 11:13:38 +00:00
_mt32emu=no
_timidity=no
2010-09-09 09:55:07 +00:00
_port_mk="backends/platform/gph/caanoo-bundle.mk"
2010-10-12 02:18:11 +00:00
;;
2010-02-02 11:46:35 +00:00
*darwin*)
_ranlib=$_host-ranlib
_strip=$_host-strip
;;
2010-08-19 12:43:37 +00:00
dingux)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DDINGUX"
DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-08-19 12:43:37 +00:00
ASFLAGS="$ASFLAGS"
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -msoft-float"
CXXFLAGS="$CXXFLAGS -mips32"
2010-08-19 12:43:37 +00:00
_backend="dingux"
_mt32emu=no
_vkeybd=yes
_build_hq_scalers=no
_keymapper=no
2010-08-19 15:13:03 +00:00
# Force disable vorbis on dingux, it has terrible performance compared to tremor
_vorbis=no
2010-08-20 05:06:07 +00:00
# Force disable seq on dingux, no way to use it and it would get enabled by default with configure
_seq_midi=no
2010-09-08 08:26:20 +00:00
_port_mk="backends/platform/dingux/dingux.mk"
2010-08-19 12:43:37 +00:00
;;
2010-02-02 11:46:35 +00:00
dreamcast)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
2011-06-01 16:17:01 +00:00
if test "$_release_build" = yes; then
DEFINES="$DEFINES -DNOSERIAL"
fi
2011-10-07 22:45:56 +00:00
_optimization_level=-O3
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -funroll-loops"
CXXFLAGS="$CXXFLAGS -fschedule-insns2"
CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
CXXFLAGS="$CXXFLAGS -fdelete-null-pointer-checks"
2010-02-02 11:46:35 +00:00
_backend="dc"
2010-08-02 17:12:34 +00:00
_build_scalers=no
_mad=yes
_zlib=yes
2010-04-16 13:03:26 +00:00
add_line_to_config_mk 'ronindir = /usr/local/ronin'
2010-04-16 10:59:23 +00:00
_port_mk="backends/platform/dc/dreamcast.mk"
2010-02-02 11:46:35 +00:00
;;
2010-08-02 17:11:25 +00:00
ds)
2010-09-04 22:19:20 +00:00
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
DEFINES="$DEFINES -DDISABLE_FANCY_THEMES"
2011-05-25 12:39:56 +00:00
DEFINES="$DEFINES -DDISABLE_SID"
DEFINES="$DEFINES -DDISABLE_NES_APU"
DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
DEFINES="$DEFINES -DSTREAM_AUDIO_FROM_DISK"
DEFINES="$DEFINES -DVECTOR_RENDERER_FORMAT=1555"
2010-08-02 17:11:25 +00:00
_backend="ds"
2010-08-02 17:12:34 +00:00
_build_scalers=no
_mt32emu=no
2010-08-02 17:11:25 +00:00
_port_mk="backends/platform/ds/ds.mk"
;;
2010-02-02 11:46:35 +00:00
gamecube)
_backend="wii"
2010-08-02 17:12:34 +00:00
_build_scalers=no
2011-07-09 14:30:23 +00:00
_vkeybd=yes
2010-08-02 17:12:34 +00:00
_mt32emu=no
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/wii/wii.mk"
add_line_to_config_mk 'GAMECUBE = 1'
2010-08-24 18:44:14 +00:00
add_line_to_config_h '#define AUDIO_REVERSE_STEREO'
2010-02-02 11:46:35 +00:00
add_line_to_config_h '#define GAMECUBE'
add_line_to_config_h "/* #define DEBUG_WII_USBGECKO */"
add_line_to_config_h "/* #define DEBUG_WII_MEMSTATS */"
add_line_to_config_h "/* #define DEBUG_WII_GDB */"
2010-08-14 00:56:12 +00:00
add_line_to_config_h "#define USE_WII_DI"
2009-08-22 12:35:49 +00:00
;;
2010-02-02 11:46:35 +00:00
gp2x)
2010-10-20 13:03:19 +00:00
# This uses the GPH backend.
2011-08-08 19:09:48 +00:00
DEFINES="$DEFINES -DGPH_DEVICE"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DGP2X"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-09-20 19:33:58 +00:00
if test "$_debug_build" = yes; then
DEFINES="$DEFINES -DGPH_DEBUG"
fi
2010-02-02 11:46:35 +00:00
CXXFLAGS="$CXXFLAGS -march=armv4t"
ASFLAGS="$ASFLAGS -mfloat-abi=soft"
LDFLAGS="$LDFLAGS -static"
2011-04-11 17:24:36 +00:00
_backend="gph"
2010-08-02 17:12:34 +00:00
_build_hq_scalers=no
2011-09-22 18:32:48 +00:00
_savegame_timestamp=no
2010-08-02 17:12:34 +00:00
_vkeybd=yes
2010-07-20 08:25:13 +00:00
_seq_midi=no
2011-04-12 11:13:38 +00:00
_mt32emu=no
_timidity=no
2011-04-11 17:24:36 +00:00
_port_mk="backends/platform/gph/gp2x-bundle.mk"
2009-03-18 23:17:54 +00:00
;;
2009-06-04 08:30:31 +00:00
gp2xwiz)
2010-10-20 13:03:19 +00:00
# This uses the GPH backend.
DEFINES="$DEFINES -DGPH_DEVICE"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DGP2XWIZ"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-09-20 19:33:58 +00:00
if test "$_debug_build" = yes; then
DEFINES="$DEFINES -DGPH_DEBUG"
fi
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
CXXFLAGS="$CXXFLAGS -mtune=arm926ej-s"
2009-11-05 13:47:17 +00:00
ASFLAGS="$ASFLAGS -mfloat-abi=soft"
2010-09-09 09:55:07 +00:00
_backend="gph"
2010-08-02 17:12:34 +00:00
_build_hq_scalers=no
2011-09-22 18:32:48 +00:00
_savegame_timestamp=no
2010-08-02 17:12:34 +00:00
_vkeybd=yes
2010-07-20 08:25:13 +00:00
_seq_midi=no
2011-04-12 11:13:38 +00:00
_mt32emu=no
_timidity=no
2010-09-09 09:55:07 +00:00
_port_mk="backends/platform/gph/gp2xwiz-bundle.mk"
2010-01-25 01:39:44 +00:00
;;
2010-02-02 11:46:35 +00:00
iphone)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DIPHONE"
2010-02-02 11:46:35 +00:00
_backend="iphone"
2012-02-26 00:31:22 +00:00
_build_scalers=no
_mt32emu=no
2010-07-20 08:25:13 +00:00
_seq_midi=no
2012-02-26 00:31:22 +00:00
_timidity=no
2005-05-09 21:21:21 +00:00
;;
2007-01-13 13:55:30 +00:00
m68k-atari-mint)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
2007-01-13 13:55:30 +00:00
_ranlib=m68k-atari-mint-ranlib
2007-12-19 14:03:53 +00:00
_ar="m68k-atari-mint-ar cru"
2010-07-20 08:25:13 +00:00
_seq_midi=no
2007-01-13 13:55:30 +00:00
;;
2011-07-05 06:52:42 +00:00
maemo)
2011-10-07 22:45:56 +00:00
_optimization_level=-Os
2011-07-05 06:52:42 +00:00
CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s"
CXXFLAGS="$CXXFLAGS -fomit-frame-pointer"
INCLUDES="$INCLUDES -I/usr/X11R6/include"
2011-12-03 03:26:40 +00:00
LIBS="$LIBS -lX11"
2011-07-05 06:52:42 +00:00
LIBS="$LIBS -L/usr/lib"
_backend="maemo"
2011-08-29 00:39:18 +00:00
_vkeybd=yes
2011-11-28 15:01:26 +00:00
_keymapper=yes
2011-07-05 06:52:42 +00:00
_build_hq_scalers=no
_mt32emu=no
_alsa=no
_mad=yes
_tremor=yes
_zlib=yes
;;
2008-02-07 15:23:27 +00:00
*mingw32*)
_sdlconfig=$_host-sdl-config
_windres=$_host-windres
_ar="$_host-ar cru"
_ranlib=$_host-ranlib
2007-11-13 08:06:15 +00:00
;;
2010-05-23 19:24:19 +00:00
mips-sgi*)
2010-10-13 12:45:14 +00:00
LDFLAGS="$LDFLAGS -static-libgcc"
LIBS="$LIBS -laudio"
2010-05-23 19:24:19 +00:00
;;
2010-02-02 11:46:35 +00:00
motoezx)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DMOTOEZX"
2010-02-02 11:46:35 +00:00
ASFLAGS="$ASFLAGS -mfpu=vfp"
_backend="linuxmoto"
2010-08-02 17:12:34 +00:00
_build_hq_scalers=no
_mt32emu=no
_vkeybd=yes
2010-07-20 08:25:13 +00:00
_seq_midi=no
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/linuxmoto/linuxmoto.mk"
2007-11-13 08:06:15 +00:00
;;
2010-02-02 11:46:35 +00:00
motomagx)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DMOTOMAGX"
2010-02-02 11:46:35 +00:00
ASFLAGS="$ASFLAGS -mfpu=vfp"
_backend="linuxmoto"
2010-08-02 17:12:34 +00:00
_build_hq_scalers=no
_mt32emu=no
_vkeybd=yes
2010-07-20 08:25:13 +00:00
_seq_midi=no
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/linuxmoto/linuxmoto.mk"
2009-03-19 18:56:54 +00:00
;;
2010-08-01 17:16:39 +00:00
n64)
2011-05-26 12:03:39 +00:00
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"
2010-08-01 17:16:39 +00:00
LDFLAGS="$LDFLAGS -T n64ld_cpp.x -Xlinker -Map -Xlinker scummvm.map"
_backend="n64"
_mt32emu=no
_build_scalers=no
2011-09-24 19:19:03 +00:00
_savegame_timestamp=no
2010-08-01 17:16:39 +00:00
_translation=no
_keymapper=no
_text_console=no
_vkeybd=yes
_dynamic_modules=no
_plugins_default=static
# Force use of libmad, libtremor and zlib
2010-11-07 12:09:53 +00:00
_mad=no
2010-08-01 17:16:39 +00:00
_tremor=yes
_zlib=yes
2010-09-08 18:04:38 +00:00
_port_mk="backends/platform/n64/n64.mk"
2010-08-01 17:16:39 +00:00
;;
2010-02-02 11:46:35 +00:00
neuros)
2010-07-20 08:25:13 +00:00
DEFINES="$DEFINES -DNEUROS"
2010-02-02 11:46:35 +00:00
_backend='null'
2010-08-02 17:12:34 +00:00
_build_hq_scalers=no
_mt32emu=no
2010-02-02 11:46:35 +00:00
;;
2010-09-06 17:35:27 +00:00
openpandora)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DOPENPANDORA"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2010-09-20 19:33:58 +00:00
if test "$_release_build" = no; then
DEFINES="$DEFINES -DOP_DEBUG"
else
# Use -O3 on the OpenPandora for non-debug builds.
2011-10-07 22:45:56 +00:00
_optimization_level=-O3
2010-09-20 19:33:58 +00:00
fi
2011-05-26 12:03:39 +00:00
CXXFLAGS="$CXXFLAGS -march=armv7-a"
CXXFLAGS="$CXXFLAGS -mtune=cortex-a8"
CXXFLAGS="$CXXFLAGS -mfpu=neon"
2010-09-06 17:35:27 +00:00
ASFLAGS="$ASFLAGS -mfloat-abi=soft"
_backend="openpandora"
_build_hq_scalers=yes
_vkeybd=no
2011-04-12 11:13:38 +00:00
_mt32emu=no
2010-09-06 17:35:27 +00:00
_seq_midi=no
_port_mk="backends/platform/openpandora/op-bundle.mk"
2010-10-12 02:18:11 +00:00
;;
2010-02-02 11:46:35 +00:00
ppc-amigaos)
2009-03-25 21:58:16 +00:00
;;
2009-10-08 20:59:53 +00:00
ps2)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
DEFINES="$DEFINES -DDISABLE_SID"
DEFINES="$DEFINES -DDISABLE_NES_APU"
2009-10-08 20:59:53 +00:00
_backend="ps2"
2010-08-02 17:12:34 +00:00
_build_scalers=no
_mt32emu=no
2009-10-09 12:28:11 +00:00
# HACK to enable mad & zlib (they are not properly detected due to linker issues).
2009-11-20 00:13:03 +00:00
# This trick doesn't work for tremor right now, as the PS2 port the resulting library
2009-10-09 12:28:11 +00:00
# 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.
2010-08-02 17:12:34 +00:00
_mad=yes
_zlib=yes
2009-10-09 11:38:13 +00:00
# HACK to fix compilation of C source files for now.
add_line_to_config_mk 'CC = ee-gcc'
# HACK to fix linking for now. It seems ee-g++ does not handle linking correctly.
LD=ee-gcc
2009-10-14 12:56:14 +00:00
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"
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -lps2gdbStub"
LDFLAGS="$LDFLAGS -lps2ip"
LDFLAGS="$LDFLAGS -ldebug"
2009-10-14 12:56:14 +00:00
else
# If not building for debug mode, strip binaries.
CXXFLAGS="$CXXFLAGS -s"
fi
2009-10-08 20:59:53 +00:00
;;
2011-06-02 08:34:41 +00:00
ps3)
_mt32emu=no
_timidity=no
2011-06-04 10:54:37 +00:00
_vkeybd=yes
2011-06-02 08:34:41 +00:00
;;
2010-02-02 11:46:35 +00:00
psp)
_backend="psp"
2010-08-02 17:12:34 +00:00
_build_scalers=no
_mt32emu=no
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/psp/psp.mk"
;;
samsungtv)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DSAMSUNGTV"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
2010-02-02 11:46:35 +00:00
ASFLAGS="$ASFLAGS -mfpu=vfp"
HOSTEXEEXT=".so"
_backend="samsungtv"
2010-08-02 17:12:34 +00:00
_mt32emu=no
_vkeybd=yes
2010-02-02 11:46:35 +00:00
;;
2011-04-02 22:01:26 +00:00
webos)
_backend="webos"
_port_mk="backends/platform/webos/webos.mk"
2011-09-24 19:12:27 +00:00
_build_scalers=yes
_build_hq_scalers=no
2011-04-02 22:01:26 +00:00
_timidity=no
_mt32emu=no
_seq_midi=no
2011-04-03 21:28:04 +00:00
_vkeybd=no
2011-04-06 20:43:21 +00:00
_keymapper=yes
2011-09-24 19:12:27 +00:00
add_line_to_config_mk "HOST_COMPILER = `uname`"
2011-04-02 22:01:26 +00:00
;;
2010-02-02 11:46:35 +00:00
wii)
_backend="wii"
2010-08-02 17:12:34 +00:00
_build_scalers=no
2011-07-09 14:30:23 +00:00
_vkeybd=yes
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/wii/wii.mk"
add_line_to_config_mk 'GAMECUBE = 0'
2010-08-24 18:44:14 +00:00
add_line_to_config_h '#define AUDIO_REVERSE_STEREO'
2010-02-02 11:46:35 +00:00
add_line_to_config_h "#define DEBUG_WII_USBGECKO"
add_line_to_config_h "/* #define DEBUG_WII_MEMSTATS */"
add_line_to_config_h "/* #define DEBUG_WII_GDB */"
add_line_to_config_h "#define USE_WII_DI"
add_line_to_config_h "#define USE_WII_SMB"
add_line_to_config_h "#define USE_WII_KBD"
;;
wince)
2011-04-27 22:40:54 +00:00
LDFLAGS="$LDFLAGS -Wl,--stack,65536"
2011-04-22 08:56:05 +00:00
_tremolo=yes
2010-02-02 11:46:35 +00:00
_backend="wince"
2011-06-13 02:39:38 +00:00
_detectlang=yes
2010-08-02 17:12:34 +00:00
_mt32emu=no
2010-02-02 11:46:35 +00:00
_port_mk="backends/platform/wince/wince.mk"
;;
2004-12-16 22:15:32 +00:00
*)
2009-10-19 17:47:25 +00:00
echo "WARNING: Unknown target, continuing with auto-detected values"
2004-12-16 22:15:32 +00:00
;;
esac
2011-05-05 11:43:30 +00:00
fi
2008-01-27 19:47:41 +00:00
2011-05-04 14:30:10 +00:00
#
# Backend related stuff
#
case $_backend in
android)
2011-06-15 17:09:50 +00:00
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
2011-05-04 14:30:10 +00:00
CXXFLAGS="$CXXFLAGS -Wa,--noexecstack"
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
2011-11-17 07:34:30 +00:00
INCLUDES="$INCLUDES -I$ANDROID_NDK/sources/cxx-stl/system/include"
2011-05-04 14:30:10 +00:00
;;
2011-10-31 10:51:31 +00:00
bada)
2011-08-26 16:04:53 +00:00
# dirent.h not available. NONSTANDARD_PORT==ensure portdefs.h is included
DEFINES="$DEFINES -DBADA -DDISABLE_STDIO_FILESTREAM -DNONSTANDARD_PORT"
DEFINES="$DEFINES -DNO_STDERR_STDOUT"
2011-08-07 11:33:32 +00:00
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
2011-08-26 16:04:53 +00:00
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
;;
2011-05-04 14:30:10 +00:00
dc)
2011-05-26 12:03:39 +00:00
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'
2011-06-01 16:17:01 +00:00
if test "$_release_build" = yes; then
LIBS="$LIBS -lronin-noserial -lm"
else
LIBS="$LIBS -lronin -lm"
fi
2011-05-04 14:30:10 +00:00
;;
dingux)
2011-05-04 21:19:22 +00:00
DEFINES="$DEFINES -DDINGUX"
2011-05-04 14:30:10 +00:00
;;
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'
;;
gp2x)
;;
gph)
;;
iphone)
2011-05-26 12:03:39 +00:00
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"
2011-05-04 14:30:10 +00:00
;;
linuxmoto)
2011-05-04 21:19:22 +00:00
DEFINES="$DEFINES -DLINUXMOTO"
2011-05-04 14:30:10 +00:00
;;
2011-07-05 06:52:42 +00:00
maemo)
DEFINES="$DEFINES -DMAEMO"
;;
2011-05-04 14:30:10 +00:00
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'
2011-05-26 12:03:39 +00:00
LIBS="$LIBS -lpakfs -lframfs -ln64 -ln64utils -lromfs"
2011-05-31 13:15:19 +00:00
LIBS="$LIBS -lm -lstdc++ -lz"
2011-05-04 14:30:10 +00:00
;;
null)
DEFINES="$DEFINES -DUSE_NULL_DRIVER"
;;
openpandora)
;;
ps2)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D_EE"
DEFINES="$DEFINES -DFORCE_RTL"
2011-05-26 12:03:39 +00:00
INCLUDES="$INCLUDES -I$PS2SDK/ee/include"
INCLUDES="$INCLUDES -I$PS2SDK/common/include"
INCLUDES="$INCLUDES -I$PS2SDK/ports/include"
2011-05-04 14:30:10 +00:00
if test "$_dynamic_modules" = no ; then
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -mno-crt0"
LDFLAGS="$LDFLAGS $PS2SDK/ee/startup/crt0.o"
LDFLAGS="$LDFLAGS -T $PS2SDK/ee/startup/linkfile"
2011-05-04 14:30:10 +00:00
fi
2011-05-26 12:03:39 +00:00
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++"
2011-05-04 14:30:10 +00:00
;;
psp)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D__PSP__"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
DEFINES="$DEFINES -DDISABLE_DOSBOX_OPL"
2011-05-26 12:03:39 +00:00
LIBS="$LIBS -lpng"
LIBS="$LIBS -Wl,-Map,mapfile.txt"
2011-05-04 14:30:10 +00:00
;;
samsungtv)
2011-05-04 21:19:22 +00:00
DEFINES="$DEFINES -DSAMSUNGTV"
2011-05-26 12:03:39 +00:00
LDFLAGS="$LDFLAGS -shared"
LDFLAGS="$LDFLAGS -fpic"
2011-05-04 14:30:10 +00:00
;;
webos)
# There is no sdl-config in the WebOS PDK so we don't use find_sdlconfig here.
2011-10-02 03:03:15 +00:00
# The PDL library acts as the WebOS device toolchain, and is required to control the virtual keyboard among other OS-level events.
2011-08-04 17:44:06 +00:00
LIBS="$LIBS -lSDL -lpdl"
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -DWEBOS"
2011-05-30 22:25:40 +00:00
DEFINES="$DEFINES -DSDL_BACKEND"
add_line_to_config_mk "SDL_BACKEND = 1"
2011-05-04 14:30:10 +00:00
MODULES="$MODULES backends/platform/sdl"
;;
wii)
2011-05-05 14:26:05 +00:00
DEFINES="$DEFINES -D__WII__"
DEFINES="$DEFINES -DGEKKO"
2011-05-04 14:30:10 +00:00
case $_host_os in
gamecube)
LIBS="$LIBS -lgxflux -liso9660 -lfat -logc -ldb"
;;
*)
LIBS="$LIBS -lgxflux -ldi -liso9660 -ltinysmb -lfat -lwiiuse -lbte -logc -lwiikeyboard -ldb"
;;
esac
;;
wince)
2011-05-26 12:03:39 +00:00
INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince'
INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince/CEgui'
INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/wince/CEkeys'
2011-05-04 14:30:10 +00:00
LIBS="$LIBS -static -lSDL"
DEFINES="$DEFINES -DSDL_BACKEND"
2011-05-30 22:25:40 +00:00
add_line_to_config_mk "SDL_BACKEND = 1"
2011-05-04 14:30:10 +00:00
;;
2011-05-04 21:19:22 +00:00
sdl)
;;
2011-05-04 14:30:10 +00:00
*)
echo "support for $_backend backend not implemented in configure script yet"
exit 1
;;
esac
MODULES="$MODULES backends/platform/$_backend"
2011-05-04 21:19:22 +00:00
#
# Setup SDL specifics for SDL based backends
#
case $_backend in
2011-07-05 06:52:42 +00:00
dingux | gp2x | gph | linuxmoto | maemo | openpandora | samsungtv | sdl)
2011-05-04 21:19:22 +00:00
find_sdlconfig
INCLUDES="$INCLUDES `$_sdlconfig --prefix="$_sdlpath" --cflags`"
LIBS="$LIBS `$_sdlconfig --prefix="$_sdlpath" --libs`"
DEFINES="$DEFINES -DSDL_BACKEND"
2011-05-30 22:25:40 +00:00
add_line_to_config_mk "SDL_BACKEND = 1"
2011-06-02 08:03:01 +00:00
_sdlversion=`$_sdlconfig --version`
case $_sdlversion in
1.3.*)
add_line_to_config_mk "USE_SDL13 = 1"
;;
*)
;;
esac
2011-05-04 21:19:22 +00:00
;;
esac
2009-08-21 17:19:06 +00:00
#
# Enable 16bit support only for backends which support it
#
case $_backend in
2012-02-26 00:29:56 +00:00
android | bada | dingux | dreamcast | gph | iphone | maemo | openpandora | psp | samsungtv | sdl | webos | wii)
2009-08-21 17:19:06 +00:00
if test "$_16bit" = auto ; then
_16bit=yes
else
_16bit=no
fi
;;
*)
_16bit=no
;;
esac
2011-09-22 18:32:48 +00:00
#
# Disable savegame timestamp support for backends which don't have a reliable real time clock
#
case $_backend in
2011-09-24 19:19:03 +00:00
gph | n64)
2011-09-22 18:32:48 +00:00
if test "$_savegame_timestamp" = auto ; then
_savegame_timestamp=no
else
_savegame_timestamp=yes
fi
;;
*)
if test "$_savegame_timestamp" = auto ; then
_savegame_timestamp=yes
else
_savegame_timestamp=no
fi
;;
esac
2009-08-21 17:19:06 +00:00
2007-06-24 20:35:02 +00:00
#
2011-05-26 09:02:46 +00:00
# Determine whether host is POSIX compliant, or at least POSIX
# compatible enough to support our POSIX code (including dlsym(),
# mkdir() and some other APIs).
#
# TODO: Instead of basing this on the host name, we should really base
# this on the presence of features (such as the dlsym and mkdir APIs).
2007-06-24 20:35:02 +00:00
#
2011-05-26 09:02:46 +00:00
echo_n "Checking if host is POSIX compliant... "
case $_host_os in
2011-06-02 08:34:41 +00:00
amigaos* | cygwin* | dreamcast | ds | gamecube | mingw* | n64 | ps2 | ps3 | psp | wii | wince)
2011-05-26 09:02:46 +00:00
_posix=no
2007-06-24 20:35:02 +00:00
;;
2011-07-05 06:52:42 +00:00
android | beos* | bsd* | darwin* | freebsd* | gph-linux | haiku* | hpux* | iphone | irix* | linux* | maemo | mint* | netbsd* | openbsd* | solaris* | sunos* | uclinux* | webos)
2011-05-26 09:02:46 +00:00
_posix=yes
;;
os2-emx*)
_posix=yes # FIXME: Really???
2007-06-24 20:35:02 +00:00
;;
*)
2011-05-26 09:02:46 +00:00
# given this is a shell script, we might assume some type of posix.
# However, the host system might be a totally different one, so
# we can assume nothing about it.
# Indeed, as mentioned further above, we really should test for the
# presences of relevant APIs on the host anyway...
_posix=no
2007-06-24 20:35:02 +00:00
;;
esac
2011-05-26 09:02:46 +00:00
echo $_posix
2007-06-24 20:35:02 +00:00
2011-05-05 13:38:54 +00:00
if test "$_posix" = yes ; then
DEFINES="$DEFINES -DPOSIX"
add_line_to_config_mk 'POSIX = 1'
2010-07-20 08:25:13 +00:00
fi
2009-08-22 11:03:00 +00:00
#
# Check whether to enable a verbose build
#
echo_n "Checking whether to have a verbose build... "
echo "$_verbose_build"
add_to_config_mk_if_yes "$_verbose_build" 'VERBOSE_BUILD = 1'
2007-06-24 20:35:02 +00:00
2011-10-08 19:00:40 +00:00
#
2011-10-09 18:13:35 +00:00
# If a specific optimization level was requested, enable optimizations
2011-10-08 19:00:40 +00:00
#
if test -n "$_optimization_level" ; then
# Ports will specify an optimization level and expect that to be enabled
2011-10-09 18:13:35 +00:00
if test "$_optimizations" != no ; then
_optimizations=yes
2011-10-08 19:00:40 +00:00
fi
else
_optimization_level=$_default_optimization_level
fi
2011-10-07 22:45:56 +00:00
#
2011-10-09 18:13:35 +00:00
# Check whether to enable optimizations
2011-10-07 22:45:56 +00:00
#
2011-10-09 18:13:35 +00:00
if test "$_optimizations" = yes ; then
2011-10-07 22:45:56 +00:00
# Enable optimizations. This also
# makes it possible to use -Wuninitialized, so let's do that.
CXXFLAGS="$CXXFLAGS $_optimization_level"
CXXFLAGS="$CXXFLAGS -Wuninitialized"
fi
2004-02-15 01:21:02 +00:00
#
# Check whether plugin support is requested and possible
#
2005-11-18 21:37:58 +00:00
echo_n "Checking whether building plugins was requested... "
2008-05-06 03:11:01 +00:00
echo "$_dynamic_modules"
2004-02-15 01:21:02 +00:00
_mak_plugins=
2005-11-18 21:37:58 +00:00
2008-05-06 03:11:01 +00:00
if test "$_dynamic_modules" = yes ; then
2007-11-01 21:03:16 +00:00
echo_n "Checking whether building plugins is supported... "
case $_host_os in
2011-02-06 14:23:47 +00:00
android)
2011-05-25 12:55:36 +00:00
_plugin_prefix="lib"
_plugin_suffix=".so"
2011-05-26 05:25:52 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
LIBS="$LIBS -ldl"
2011-02-06 14:23:47 +00:00
# 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 -
# effectively turning all dlopen(RTLD_GLOBAL) calls
# into dlopen(RTLD_LOCAL). It *does* look in
# DT_NEEDED libraries, so the workaround is to add an
# (otherwise unnecessary) dependency from plugins back
# to the main libscummvm.so.
_mak_plugins='
PLUGIN_EXTRA_DEPS = libscummvm.so
PLUGIN_LDFLAGS += $(LDFLAGS) -L. -lscummvm
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
'
;;
2010-02-02 11:46:35 +00:00
darwin*)
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".plugin"
2011-05-26 05:25:52 +00:00
LIBS="$LIBS -ldl"
2004-02-15 01:21:02 +00:00
_mak_plugins='
2010-02-02 11:46:35 +00:00
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS += -bundle -bundle_loader $(EXECUTABLE) -exported_symbols_list "$(srcdir)/plugin.exp"
PRE_OBJS_FLAGS := -all_load
POST_OBJS_FLAGS :=
'
;;
dreamcast)
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".plg"
2010-02-02 11:46:35 +00:00
_mak_plugins='
2011-01-07 16:25:05 +00:00
PLUGIN_EXTRA_DEPS = $(abspath $(srcdir)/backends/platform/dc/plugin.x $(srcdir)/backends/platform/dc/plugin.syms) $(EXECUTABLE) backends/platform/dc/plugin_head.o
2011-05-26 11:29:09 +00:00
PLUGIN_LDFLAGS = -ml -m4-single-only -nostartfiles -Wl,-q,-T$(srcdir)/backends/platform/dc/plugin.x,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/platform/dc/plugin.syms backends/platform/dc/plugin_head.o
2010-02-02 11:46:35 +00:00
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
2010-08-13 07:25:21 +00:00
'
;;
ds)
2010-09-15 07:43:16 +00:00
_elf_loader=yes
2011-07-12 09:28:47 +00:00
DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
DEFINES="$DEFINES -DUNCACHED_PLUGINS"
DEFINES="$DEFINES -DELF_NO_MEM_MANAGER"
2010-08-13 07:25:21 +00:00
_mak_plugins='
2010-09-15 07:43:16 +00:00
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwork -mno-fpu
2004-04-25 19:33:46 +00:00
'
2007-11-01 21:03:16 +00:00
;;
2004-04-25 19:33:46 +00:00
freebsd*)
2011-05-25 12:55:36 +00:00
_plugin_prefix="lib"
_plugin_suffix=".so"
2011-05-26 05:25:52 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
2004-04-25 19:33:46 +00:00
_mak_plugins='
2007-12-28 07:52:56 +00:00
PLUGIN_EXTRA_DEPS =
2004-04-25 19:33:46 +00:00
PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
2010-09-05 12:49:29 +00:00
'
;;
gamecube | wii)
2010-09-15 07:43:16 +00:00
_elf_loader=yes
2011-07-12 09:28:47 +00:00
DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
DEFINES="$DEFINES -DUNCACHED_PLUGINS"
2010-09-05 12:49:29 +00:00
_mak_plugins='
2010-09-15 07:43:16 +00:00
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
2010-08-17 11:40:48 +00:00
'
;;
2010-09-20 19:33:58 +00:00
gph*)
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".plugin"
2011-05-26 05:25:52 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
LIBS="$LIBS -ldl"
2004-02-15 01:21:02 +00:00
_mak_plugins='
2005-02-06 17:45:16 +00:00
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
2010-02-02 11:46:35 +00:00
PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
2004-02-15 01:21:02 +00:00
'
2007-11-01 21:03:16 +00:00
;;
2011-09-12 12:49:12 +00:00
irix*)
_plugin_prefix="lib"
_plugin_suffix=".so"
CXXFLAGS="$CXXFLAGS -fpic"
LIBS="$LIBS -ldl"
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared -static-libgcc
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
'
;;
2011-05-07 16:51:02 +00:00
linux*)
2011-05-25 12:55:36 +00:00
_plugin_prefix="lib"
_plugin_suffix=".so"
2011-05-26 05:25:52 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
LIBS="$LIBS -ldl"
2009-06-04 08:30:31 +00:00
_mak_plugins='
2010-02-02 11:46:35 +00:00
PLUGIN_EXTRA_DEPS =
2009-06-04 08:30:31 +00:00
PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
'
2010-01-25 01:39:44 +00:00
;;
2010-02-02 11:46:35 +00:00
*mingw32*)
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".dll"
2009-03-21 15:15:29 +00:00
_mak_plugins='
2010-02-02 11:46:35 +00:00
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS := -Wl,--enable-auto-import -shared ./libscummvm.a
2009-03-21 15:15:29 +00:00
PRE_OBJS_FLAGS := -Wl,--whole-archive
2010-02-02 11:46:35 +00:00
POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a
2011-04-27 22:40:54 +00:00
'
;;
wince)
DEFINES="$DEFINES -DUNCACHED_PLUGINS"
HOSTEXEEXT=".dll"
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".plugin"
2011-04-27 22:40:54 +00:00
_mak_plugins='
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS := -shared -lscummvm -L.
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a -shared
2009-10-09 12:10:08 +00:00
'
;;
2010-08-14 09:03:35 +00:00
ps2)
2010-09-15 07:43:16 +00:00
_elf_loader=yes
2010-08-14 09:03:35 +00:00
_mak_plugins='
2011-05-26 05:25:52 +00:00
LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/main_prog.ld
2010-09-15 07:43:16 +00:00
PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/plugin.ld -lstdc++ -lc
2009-10-09 12:10:08 +00:00
'
;;
psp)
2010-09-15 07:43:16 +00:00
_elf_loader=yes
2011-07-12 09:28:47 +00:00
DEFINES="$DEFINES -DUNCACHED_PLUGINS"
2009-10-09 12:10:08 +00:00
_mak_plugins='
2010-11-04 06:28:34 +00:00
LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/main_prog.ld
2010-11-01 06:31:09 +00:00
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lstdc++ -lc
2011-05-07 16:51:02 +00:00
'
;;
webos)
2011-05-25 12:55:36 +00:00
_plugin_prefix="lib"
_plugin_suffix=".so"
2011-05-26 05:25:52 +00:00
CXXFLAGS="$CXXFLAGS -fpic"
LIBS="$LIBS -ldl"
2011-05-07 16:51:02 +00:00
_mak_plugins='
PLUGIN_EXTRA_DEPS =
PLUGIN_LDFLAGS += -shared $(LDFLAGS)
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
POST_OBJS_FLAGS := -Wl,-no-whole-archive
2007-05-27 10:46:47 +00:00
'
;;
2004-02-15 01:21:02 +00:00
*)
2008-05-06 03:11:01 +00:00
_dynamic_modules=no
2005-02-06 17:21:31 +00:00
_mak_plugins=
2007-11-01 21:03:16 +00:00
;;
esac
2008-05-06 03:11:01 +00:00
echo "$_dynamic_modules"
2004-02-15 01:21:02 +00:00
fi
2010-09-15 07:43:16 +00:00
#
# Check whether integrated ELF loader support is requested
#
define_in_config_if_yes "$_elf_loader" 'USE_ELF_LOADER'
if test "$_elf_loader" = yes; then
2011-05-25 12:55:36 +00:00
_plugin_prefix=""
_plugin_suffix=".plg"
2010-09-15 07:43:16 +00:00
_mak_plugins='
PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
2010-09-15 07:44:08 +00:00
PLUGIN_LDFLAGS = -nostartfiles backends/plugins/elf/version.o -Wl,-q,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms
2010-09-15 07:43:16 +00:00
PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive
'"$_mak_plugins"
fi
2004-11-06 01:41:32 +00:00
2011-05-25 12:55:36 +00:00
#
# Set up some common plugin settings in config.h and config.mk, if enabled
#
2011-05-30 22:35:27 +00:00
define_in_config_if_yes "$_dynamic_modules" 'DYNAMIC_MODULES'
2011-05-25 12:55:36 +00:00
if test "$_dynamic_modules" = yes ; then
add_line_to_config_h "#define PLUGIN_PREFIX \"$_plugin_prefix\""
add_line_to_config_h "#define PLUGIN_SUFFIX \"$_plugin_suffix\""
add_line_to_config_mk "PLUGIN_PREFIX := $_plugin_prefix"
add_line_to_config_mk "PLUGIN_SUFFIX := $_plugin_suffix"
fi
2004-11-06 01:41:32 +00:00
#
# Check whether integrated MT-32 emulator support is requested
#
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_mt32emu" 'USE_MT32EMU'
2004-11-06 01:41:32 +00:00
2009-08-21 09:43:30 +00:00
#
# Check whether 16bit color support is requested
#
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_16bit" 'USE_RGB_COLOR'
2009-08-21 09:43:30 +00:00
2011-09-22 18:32:48 +00:00
#
2011-09-30 20:03:26 +00:00
# Check whether save games use the current time as default description
2011-09-22 18:32:48 +00:00
#
define_in_config_if_yes "$_savegame_timestamp" 'USE_SAVEGAME_TIMESTAMP'
2009-03-18 21:51:56 +00:00
#
# Check whether to enable the (hq) scalers
#
2010-05-09 11:00:17 +00:00
if test "$_build_scalers" = no ; then
2010-05-10 17:25:12 +00:00
_build_hq_scalers=no
2010-05-09 11:00:17 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_build_scalers" 'USE_SCALERS'
2010-05-09 11:00:17 +00:00
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_build_hq_scalers" 'USE_HQ_SCALERS'
2009-03-18 21:51:56 +00:00
2008-01-31 12:20:47 +00:00
#
# Check for math lib
#
2008-02-07 15:53:26 +00:00
cat > $TMPC << EOF
int main(void) { return 0; }
EOF
2010-07-05 01:00:59 +00:00
cc_check -lm && LIBS="$LIBS -lm"
2008-01-31 12:20:47 +00:00
2004-02-15 01:21:02 +00:00
#
# Check for Ogg Vorbis
#
2003-05-18 05:43:52 +00:00
echocheck "Ogg Vorbis"
if test "$_vorbis" = auto ; then
2004-12-16 22:15:32 +00:00
_vorbis=no
cat > $TMPC << EOF
2003-05-18 05:43:52 +00:00
#include <vorbis/codec.h>
int main(void) { vorbis_packet_blocksize(0,0); return 0; }
EOF
2010-04-09 14:23:30 +00:00
cc_check $OGG_CFLAGS $OGG_LIBS $VORBIS_CFLAGS $VORBIS_LIBS \
2008-01-31 12:20:47 +00:00
-lvorbisfile -lvorbis -logg && _vorbis=yes
2003-05-18 05:43:52 +00:00
fi
if test "$_vorbis" = yes ; then
2004-12-16 22:15:32 +00:00
LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisfile -lvorbis -logg"
INCLUDES="$INCLUDES $OGG_CFLAGS $VORBIS_CFLAGS"
2003-05-18 05:43:52 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_vorbis" 'USE_VORBIS'
2003-05-18 05:43:52 +00:00
echo "$_vorbis"
2005-06-30 09:14:36 +00:00
#
# Check for Tremor
#
echocheck "Tremor"
2011-04-22 08:56:05 +00:00
if test "$_tremolo" = yes ; then
_tremor=yes
fi
2005-06-30 09:14:36 +00:00
if test "$_tremor" = auto ; then
2007-11-01 21:03:16 +00:00
_tremor=no
cat > $TMPC << EOF
2005-06-30 09:14:36 +00:00
#include <tremor/ivorbiscodec.h>
2009-03-19 18:36:45 +00:00
int main(void) { vorbis_info_init(0); return 0; }
2005-06-30 09:14:36 +00:00
EOF
2010-04-09 14:23:30 +00:00
cc_check $TREMOR_CFLAGS $TREMOR_LIBS -lvorbisidec && \
2007-11-01 21:03:16 +00:00
_tremor=yes
2005-06-30 09:14:36 +00:00
fi
if test "$_tremor" = yes && test "$_vorbis" = no; then
2010-07-20 08:24:48 +00:00
add_line_to_config_h '#define USE_TREMOR'
add_line_to_config_h '#define USE_VORBIS'
2011-04-22 08:56:05 +00:00
if test "$_tremolo" = yes ; then
add_line_to_config_h '#define USE_TREMOLO'
LIBS="$LIBS $TREMOR_LIBS -ltremolo"
else
LIBS="$LIBS $TREMOR_LIBS -lvorbisidec"
fi
2007-04-28 13:43:51 +00:00
INCLUDES="$INCLUDES $TREMOR_CFLAGS"
2005-06-30 09:14:36 +00:00
else
2007-04-28 13:43:51 +00:00
if test "$_vorbis" = yes; then
_tremor="no (Ogg Vorbis/Tremor support is mutually exclusive)"
fi
2010-07-20 08:24:48 +00:00
add_line_to_config_h '#undef USE_TREMOR'
2005-06-30 09:14:36 +00:00
fi
2008-04-08 03:05:31 +00:00
add_to_config_mk_if_yes "$_tremor" 'USE_TREMOR = 1'
2005-06-30 09:14:36 +00:00
echo "$_tremor"
2006-08-05 10:51:15 +00:00
#
# Check for FLAC
#
2004-02-23 16:41:05 +00:00
echocheck "FLAC >= 1.0.1"
2004-02-22 14:11:16 +00:00
if test "$_flac" = auto ; then
2004-12-16 22:15:32 +00:00
_flac=no
cat > $TMPC << EOF
2006-10-28 13:21:43 +00:00
#include <FLAC/format.h>
int main(void) { return FLAC__STREAM_SYNC_LEN >> 30; /* guaranteed to be 0 */ }
2004-02-22 14:11:16 +00:00
EOF
2009-03-19 18:47:01 +00:00
if test "$_vorbis" = yes ; then
2010-04-09 14:23:30 +00:00
cc_check $FLAC_CFLAGS $FLAC_LIBS $OGG_CFLAGS $OGG_LIBS \
2009-03-19 18:47:01 +00:00
-lFLAC -logg && _flac=yes
else
2010-04-09 14:23:30 +00:00
cc_check $FLAC_CFLAGS $FLAC_LIBS \
2009-03-19 18:47:01 +00:00
-lFLAC && _flac=yes
fi
2004-02-22 14:11:16 +00:00
fi
if test "$_flac" = yes ; then
2008-01-11 23:01:20 +00:00
if test "$_vorbis" = yes ; then
2008-01-11 22:44:28 +00:00
LIBS="$LIBS $FLAC_LIBS $OGG_LIBS -lFLAC -logg"
else
LIBS="$LIBS $FLAC_LIBS -lFLAC"
fi
2004-12-16 22:15:32 +00:00
INCLUDES="$INCLUDES $FLAC_CFLAGS"
2004-02-22 14:11:16 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_flac" 'USE_FLAC'
2004-02-22 14:11:16 +00:00
echo "$_flac"
2004-02-15 01:21:02 +00:00
#
# Check for MAD (MP3 library)
#
2003-05-18 05:43:52 +00:00
echocheck "MAD"
if test "$_mad" = auto ; then
2004-12-16 22:15:32 +00:00
_mad=no
cat > $TMPC << EOF
2003-05-18 05:43:52 +00:00
#include <mad.h>
2009-03-19 21:42:50 +00:00
int main(void) { return 0; }
2003-05-18 05:43:52 +00:00
EOF
2010-04-09 14:23:30 +00:00
cc_check $MAD_CFLAGS $MAD_LIBS -lmad && _mad=yes
2003-05-18 05:43:52 +00:00
fi
if test "$_mad" = yes ; then
2004-12-16 22:15:32 +00:00
LIBS="$LIBS $MAD_LIBS -lmad"
INCLUDES="$INCLUDES $MAD_CFLAGS"
2003-05-18 05:43:52 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_mad" 'USE_MAD'
2003-05-18 05:43:52 +00:00
echo "$_mad"
2004-02-15 01:21:02 +00:00
#
# Check for ALSA
#
2004-02-15 00:43:10 +00:00
echocheck "ALSA >= 0.9"
2003-05-18 05:43:52 +00:00
if test "$_alsa" = auto ; then
2004-12-16 22:15:32 +00:00
_alsa=no
cat > $TMPC << EOF
2003-05-18 05:43:52 +00:00
#include <alsa/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
EOF
2010-04-09 14:23:30 +00:00
cc_check $ALSA_CFLAGS $ALSA_LIBS -lasound && _alsa=yes
2003-05-18 05:43:52 +00:00
fi
if test "$_alsa" = yes ; then
2004-12-16 22:15:32 +00:00
LIBS="$LIBS $ALSA_LIBS -lasound"
INCLUDES="$INCLUDES $ALSA_CFLAGS"
2003-05-18 05:43:52 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_h_if_yes "$_alsa" 'USE_ALSA'
2003-05-18 05:43:52 +00:00
echo "$_alsa"
2010-10-12 21:12:50 +00:00
#
# Check for PNG
#
echocheck "PNG >= 1.2.8"
if test "$_png" = auto ; then
_png=no
cat > $TMPC << EOF
#include <png.h>
2010-10-13 10:50:45 +00:00
int main(void) {
#if PNG_LIBPNG_VER >= 10208
#else
syntax error
#endif
return 0;
}
2010-10-12 21:12:50 +00:00
EOF
2010-10-13 10:50:45 +00:00
cc_check $PNG_CFLAGS $PNG_LIBS -lpng && _png=yes
2010-10-12 21:12:50 +00:00
fi
if test "$_png" = yes ; then
LIBS="$LIBS $PNG_LIBS -lpng"
INCLUDES="$INCLUDES $PNG_CFLAGS"
fi
2010-10-15 03:33:54 +00:00
define_in_config_if_yes "$_png" 'USE_PNG'
2010-10-12 21:12:50 +00:00
echo "$_png"
#
# Check for Theora Decoder
#
echocheck "libtheoradec >= 1.0"
if test "$_vorbis" = no ; then
echo "skipping. no vorbis"
_theoradec=notsupported
fi
if test "$_theoradec" = auto ; then
_theoradec=no
cat > $TMPC << EOF
#include <theora/theoradec.h>
#include <vorbis/codec.h>
int main(void) { th_ycbcr_buffer yuv; th_decode_ycbcr_out(NULL, yuv); }
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"
fi
2010-10-13 15:00:51 +00:00
define_in_config_if_yes "$_theoradec" 'USE_THEORADEC'
2010-10-12 21:12:50 +00:00
if test ! "$_theoradec" = notsupported ; then
echo "$_theoradec"
fi
2011-04-09 19:27:23 +00:00
#
# Check for the AAC decoder
#
echocheck "libfaad"
if test "$_faad" = auto ; then
_faad=no
cat > $TMPC << EOF
#include <neaacdec.h>
int main(void) { NeAACDecGetCapabilities(); return 0; }
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"
fi
define_in_config_if_yes "$_faad" 'USE_FAAD'
echo "$_faad"
2010-07-20 08:24:48 +00:00
#
# Check for SEQ MIDI
#
echocheck "SEQ MIDI"
2010-07-20 08:25:13 +00:00
if test "$_seq_midi" = auto ; then
2010-07-20 08:24:48 +00:00
# TODO: Test for /dev/sequencer presence? Or maybe just for /dev ?
2011-05-05 13:38:54 +00:00
# For now, we just always enable it when "posix" mode is on (backends
2010-07-20 08:25:13 +00:00
# that do not want it can disable it by setting _seq_midi=no).
2011-05-05 13:38:54 +00:00
_seq_midi="$_posix"
2010-07-20 08:24:48 +00:00
fi
2010-07-20 08:25:13 +00:00
define_in_config_h_if_yes "$_seq_midi" 'USE_SEQ_MIDI'
echo "$_seq_midi"
2010-07-20 08:24:48 +00:00
2010-10-13 00:48:40 +00:00
#
# Check for TiMidity(++)
#
echocheck "TiMidity"
if test "$_timidity" = auto ; then
# TODO: Is there a good possibility of auto detecting whether we
# should include TiMidity support? It can only be used on Unix
# currently so we use that as "detection" for now.
2011-05-05 13:38:54 +00:00
_timidity="$_posix"
2010-10-13 00:48:40 +00:00
fi
define_in_config_h_if_yes "$_timidity" 'USE_TIMIDITY'
echo "$_timidity"
2004-02-15 01:21:02 +00:00
#
# Check for ZLib
#
2003-12-10 00:15:20 +00:00
echocheck "zlib"
if test "$_zlib" = auto ; then
2004-12-16 22:15:32 +00:00
_zlib=no
cat > $TMPC << EOF
2003-12-10 00:15:20 +00:00
#include <string.h>
#include <zlib.h>
int main(void) { return strcmp(ZLIB_VERSION, zlibVersion()); }
EOF
2010-04-09 14:23:30 +00:00
cc_check $ZLIB_CFLAGS $ZLIB_LIBS -lz && _zlib=yes
2003-12-10 00:15:20 +00:00
fi
if test "$_zlib" = yes ; then
2004-12-16 22:15:32 +00:00
LIBS="$LIBS $ZLIB_LIBS -lz"
INCLUDES="$INCLUDES $ZLIB_CFLAGS"
2003-12-10 00:15:20 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_if_yes "$_zlib" 'USE_ZLIB'
2003-12-10 00:15:20 +00:00
echo "$_zlib"
2011-05-13 17:35:39 +00:00
if test `get_engine_build sword25` = yes && test ! "$_zlib" = yes ; then
echo "...disabling Broken Sword 2.5 engine. ZLib is required"
engine_disable sword25
fi
2011-07-03 21:01:17 +00:00
#
2011-07-07 00:47:46 +00:00
# Check for Sparkle if updates support is enabled
2011-07-03 21:01:17 +00:00
#
echocheck "Sparkle"
2011-07-07 00:47:46 +00:00
if test "$_updates" = no; then
_sparkle=no
else
2011-07-03 21:01:17 +00:00
if test "$_sparkle" = auto ; then
_sparkle=no
cat > $TMPC << EOF
#include <Cocoa/Cocoa.h>
#include <Sparkle/Sparkle.h>
int main(void) { SUUpdater *updater = [SUUpdater sharedUpdater]; return 0; }
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"
fi
define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
2011-07-07 00:47:46 +00:00
fi
2011-07-03 21:01:17 +00:00
echo "$_sparkle"
2005-04-10 14:33:44 +00:00
#
# Check for libfluidsynth
#
echocheck "libfluidsynth"
if test "$_fluidsynth" = auto ; then
_fluidsynth=no
cat > $TMPC << EOF
#include <fluidsynth.h>
int main(void) { return 0; }
EOF
2010-04-09 14:23:30 +00:00
cc_check $FLUIDSYNTH_CFLAGS $FLUIDSYNTH_LIBS -lfluidsynth && _fluidsynth=yes
2005-04-10 14:33:44 +00:00
fi
if test "$_fluidsynth" = yes ; then
2009-03-30 03:44:26 +00:00
case $_host_os in
2009-03-30 09:10:28 +00:00
mingw*)
2009-03-30 03:44:26 +00:00
LIBS="$LIBS $FLUIDSYNTH_LIBS -lfluidsynth -ldsound -lwinmm"
;;
*)
2009-05-31 23:23:25 +00:00
LIBS="$LIBS $FLUIDSYNTH_LIBS -lfluidsynth"
2009-03-30 03:44:26 +00:00
;;
esac
2006-08-04 22:59:49 +00:00
INCLUDES="$INCLUDES $FLUIDSYNTH_CFLAGS"
2005-04-10 14:33:44 +00:00
fi
2010-07-20 08:24:48 +00:00
define_in_config_h_if_yes "$_fluidsynth" 'USE_FLUIDSYNTH'
2005-04-10 14:33:44 +00:00
echo "$_fluidsynth"
2009-07-25 23:36:24 +00:00
#
# Check for readline if text_console is enabled
#
echocheck "readline"
if test "$_text_console" = yes ; then
2009-09-30 11:21:09 +00:00
_READLINE_LIBS="-lreadline"
2009-07-25 23:36:24 +00:00
if test "$_readline" = auto ; then
_readline=no
cat > $TMPC << EOF
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
int main(void) {
char *x = readline("");
}
EOF
2010-07-20 10:00:18 +00:00
cc_check_no_clean $READLINE_CFLAGS $READLINE_LIBS $_READLINE_LIBS && _readline=yes
2009-09-30 11:21:09 +00:00
if test "$_readline" = no ; then
_READLINE_LIBS="-lreadline -ltermcap"
2010-07-20 10:00:18 +00:00
cc_check_no_clean $READLINE_CFLAGS $READLINE_LIBS $_READLINE_LIBS && _readline=yes
2009-09-30 11:21:09 +00:00
fi
2009-07-25 23:36:24 +00:00
fi
2010-07-20 10:00:18 +00:00
cc_check_clean
2009-07-25 23:36:24 +00:00
echo "$_readline"
else
_readline=no
echo "skipping (text console disabled)"
fi
if test "$_readline" = yes ; then
2009-09-30 11:21:09 +00:00
LIBS="$LIBS $READLINE_LIBS $_READLINE_LIBS"
2009-07-25 23:36:24 +00:00
INCLUDES="$INCLUDES $READLINE_CFLAGS"
fi
2010-07-20 08:24:48 +00:00
define_in_config_h_if_yes "$_readline" 'USE_READLINE'
2009-07-25 23:36:24 +00:00
2011-05-05 15:32:31 +00:00
define_in_config_h_if_yes "$_text_console" 'USE_TEXT_CONSOLE_FOR_DEBUGGER'
2009-07-25 23:36:24 +00:00
2011-04-01 05:30:12 +00:00
#
# Check for Unity if taskbar integration is enabled
#
2011-04-29 15:54:09 +00:00
echocheck "libunity"
if test "$_unix" = no || test "$_taskbar" = no; then
_libunity=no
2011-04-28 22:10:26 +00:00
else
2011-04-29 15:54:09 +00:00
if test "$_libunity" = auto ; then
2011-06-16 15:57:06 +00:00
case $_host_os in
mingw*)
# pkgconfig and unity are not supported on mingw
_libunity=no
;;
*)
# Unity has a lots of dependencies, update the libs and cflags var with them
2011-06-22 23:06:30 +00:00
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")"
2011-06-16 15:57:06 +00:00
_libunity=no
cat > $TMPC << EOF
2011-04-01 05:30:12 +00:00
#include <unity.h>
2011-04-29 15:33:18 +00:00
int main(void) {
unity_launcher_entry_get_for_desktop_id("scummvm.desktop");
return 0;
}
2011-04-01 05:30:12 +00:00
EOF
2011-06-22 23:06:30 +00:00
cc_check $LIBUNITY_CFLAGS $LIBUNITY_LIBS && _libunity=yes
2011-06-16 15:57:06 +00:00
;;
esac
2011-04-01 05:30:12 +00:00
fi
2011-04-29 15:54:09 +00:00
if test "$_libunity" = yes ; then
2011-06-22 23:06:30 +00:00
LIBS="$LIBS $LIBUNITY_LIBS"
2011-04-29 15:54:09 +00:00
INCLUDES="$INCLUDES $LIBUNITY_CFLAGS"
2011-04-01 05:30:12 +00:00
fi
2011-04-29 15:54:09 +00:00
define_in_config_h_if_yes "$_libunity" 'USE_TASKBAR_UNITY'
2011-04-28 22:10:26 +00:00
fi
2011-04-29 15:54:09 +00:00
echo "$_libunity"
2011-04-01 05:30:12 +00:00
2011-07-25 20:54:32 +00:00
#
# Check for FreeType2 to be present
#
if test "$_freetype2" != "no"; then
# Look for the freetype-config script
find_freetypeconfig
if test -z "$_freetypeconfig"; then
_freetype2=no
else
FREETYPE2_LIBS=`$_freetypeconfig --prefix="$_freetypepath" --libs`
FREETYPE2_CFLAGS=`$_freetypeconfig --prefix="$_freetypepath" --cflags`
if test "$_freetype2" = "auto"; then
_freetype2=no
cat > $TMPC << EOF
#include <ft2build.h>
#include FT_FREETYPE_H
int main(int argc, char *argv[]) {
FT_Library library;
FT_Error error = FT_Init_FreeType(&library);
FT_Done_FreeType(library);
}
EOF
cc_check $FREETYPE2_CFLAGS $FREETYPE2_LIBS && _freetype2=yes
fi
if test "$_freetype2" = "yes"; then
LIBS="$LIBS $FREETYPE2_LIBS"
INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"
fi
fi
fi
echocheck "FreeType2"
echo "$_freetype2"
2012-03-21 05:36:40 +00:00
define_in_config_if_yes "$_freetype2" "USE_FREETYPE2"
2011-07-25 20:54:32 +00:00
2010-11-28 17:42:05 +00:00
#
# Check for OpenGL (ES)
#
2010-12-02 12:44:36 +00:00
echocheck "OpenGL"
2010-11-28 17:42:05 +00:00
if test "$_opengl" = auto ; then
_opengl=no
if test "$_backend" = "sdl" ; then
2010-11-29 20:07:09 +00:00
# Try different header filenames
# 1) GL/gl.h This is usually used on POSIX and Windows systems
# 2) OpenGL/gl.h This is used on Mac OS X
2010-12-02 12:44:36 +00:00
# 3) GLES/gl.h This is used for OpenGL ES 1.x
for i in "GL/gl.h" "OpenGL/gl.h" "GLES/gl.h"; do
# Test the current header for OpenGL
2010-11-29 20:07:09 +00:00
cat > $TMPC << EOF
#include <$i>
2010-11-28 17:42:05 +00:00
int main(void) { return GL_VERSION_1_1; }
EOF
2010-11-29 20:07:09 +00:00
cc_check $DEFINES $OPENGL_CFLAGS $OPENGL_LIBS && _opengl=yes && break
2010-12-02 12:44:36 +00:00
# Test the current header for OpenGL ES
cat > $TMPC << EOF
#include <$i>
int main(void) { return GL_OES_VERSION_1_1; }
EOF
cc_check $DEFINES $OPENGL_CFLAGS $OPENGL_LIBS && _opengl=yes && _opengles=yes && break
2010-11-29 20:07:09 +00:00
done
2010-11-28 17:42:05 +00:00
fi
fi
if test "$_opengl" = yes ; then
2010-11-29 20:07:09 +00:00
# Our simple test case
cat > $TMPC << EOF
int main(void) { return 0; }
EOF
_opengl=no
# Try different library names
2010-12-02 12:44:36 +00:00
if test "$_opengles" = "yes" ; then
# 1) GLES_CM This is usually used for OpenGL ES 1.1 (Common profile)
# 2) GLESv1_CM This is used by the Windows Mali OpenGL ES 1.1 Emulator
# 3) glesv1 This is used by the Linux Mali OpenGL ES 1.1 Emulator
_opengles=no
for lib in "-lGLES_CM" "-lGLESv1_CM" "-lglesv1"; do
if cc_check_no_clean $DEFINES $OPENGL_CFLAGS $OPENGL_LIBS $lib
then
_opengl=yes
_opengles=yes
OPENGL_LIBS="$OPENGL_LIBS $lib"
break
fi
done
else
# 1) -framework OpenGL This is used on Mac OS X
# 2) GL This is usually used on POSIX systems
# 3) opengl32 This is used on Windows
#
# We try "-framework OpenGL" first here to assure it will always be
# picked up by the configure script on Mac OS X, even when a libGL
# exists.
for lib in "-framework OpenGL" "-lGL" "-lopengl32"; do
if cc_check_no_clean $DEFINES $OPENGL_CFLAGS $OPENGL_LIBS $lib
then
_opengl=yes
OPENGL_LIBS="$OPENGL_LIBS $lib"
break
fi
done
fi
2010-11-29 20:07:09 +00:00
cc_check_clean
if test "$_opengl" = yes ; then
LIBS="$LIBS $OPENGL_LIBS"
INCLUDES="$INCLUDES $OPENGL_CFLAGS"
fi
2010-11-28 17:42:05 +00:00
fi
2011-08-07 11:33:32 +00:00
case $_host_os in
bada)
2011-08-26 16:04:53 +00:00
# components live in non-standard locations so just assume sane SDK
_opengl=yes
_opengles=yes
;;
2011-08-07 11:33:32 +00:00
esac
2010-12-02 12:44:36 +00:00
if test "$_opengles" = "yes" ; then
echo "yes (OpenGL ES)"
else
echo "$_opengl"
fi
2010-11-28 17:42:05 +00:00
2010-11-29 20:07:09 +00:00
define_in_config_if_yes "$_opengl" "USE_OPENGL"
2010-12-02 12:44:36 +00:00
define_in_config_if_yes "$_opengles" "USE_GLES"
2010-11-28 17:42:05 +00:00
2011-05-05 10:19:47 +00:00
2004-05-21 02:08:48 +00:00
#
# Check for nasm
#
2005-01-06 15:50:41 +00:00
if test "$_have_x86" = yes ; then
2009-03-19 21:42:50 +00:00
echocheck "nasm"
if test "$_nasm" = no ; then
echo "disabled"
2009-03-22 21:12:15 +00:00
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$SEPARATOR
2009-03-19 21:42:50 +00:00
2009-03-22 21:12:15 +00:00
for path_dir in $_nasmpath; do
2009-03-23 17:40:46 +00:00
if test -x "$path_dir/nasm$NATIVEEXEEXT" ; then
NASM="$path_dir/nasm$NATIVEEXEEXT"
2010-05-09 13:31:34 +00:00
NASMFLAGS="-O1 -g"
2009-03-22 21:12:15 +00:00
echo $NASM
break
fi
done
2009-03-19 21:42:50 +00:00
2010-05-09 13:31:34 +00:00
# fallback to the nasm compatible yasm
if test x$NASM = x -o x$NASM = x'"$NASM"'; then
for path_dir in $_nasmpath; do
if test -x "$path_dir/yasm$NATIVEEXEEXT" ; then
NASM="$path_dir/yasm$NATIVEEXEEXT"
NASMFLAGS="-a x86 -m x86"
echo $NASM
break
fi
done
fi
2009-03-22 21:12:15 +00:00
IFS="$ac_save_ifs"
2009-03-19 21:42:50 +00:00
2009-03-22 21:12:15 +00:00
if test x$NASM = x -o x$NASM = x'"$NASM"'; then
echo "not found"
_nasm=no
else
case $_host_os in
2010-10-11 23:26:26 +00:00
darwin*)
NASMFLAGS="$NASMFLAGS -f macho"
2009-03-22 21:12:15 +00:00
;;
2009-03-30 09:10:28 +00:00
mingw*)
2010-05-09 13:31:34 +00:00
NASMFLAGS="$NASMFLAGS -f win32"
2009-03-22 21:12:15 +00:00
;;
2010-10-11 23:26:26 +00:00
os2-emx*)
NASMFLAGS="$NASMFLAGS -f aout"
2009-03-22 21:12:15 +00:00
;;
*)
2010-05-09 13:31:34 +00:00
NASMFLAGS="$NASMFLAGS -f elf"
2009-03-22 21:12:15 +00:00
;;
esac
_nasm=yes
fi
2009-03-19 21:42:50 +00:00
fi
2005-01-06 15:50:41 +00:00
fi
2004-05-21 02:08:48 +00:00
2010-07-20 08:24:48 +00:00
define_in_config_if_yes $_nasm 'USE_NASM'
2004-05-21 02:08:48 +00:00
2008-09-30 13:51:01 +00:00
#
2009-03-19 21:42:50 +00:00
# Enable vkeybd / keymapper
2008-09-30 13:51:01 +00:00
#
2011-05-30 22:35:27 +00:00
define_in_config_if_yes $_vkeybd 'ENABLE_VKEYBD'
define_in_config_if_yes $_keymapper 'ENABLE_KEYMAPPER'
2008-09-30 13:51:01 +00:00
2010-06-15 10:44:51 +00:00
# Check whether to build translation support
#
echo_n "Building translation support... "
2010-07-20 08:24:48 +00:00
define_in_config_if_yes $_translation 'USE_TRANSLATION'
2010-06-15 10:44:51 +00:00
if test "$_translation" = no ; then
echo "no"
else
echo_n "yes ("
2011-06-13 02:39:38 +00:00
if test "$_detectlang" != yes ; then
cat > $TMPC << EOF
2010-06-15 10:44:51 +00:00
#include <locale.h>
int main(void) { setlocale(LC_ALL, ""); return 0; }
EOF
2011-06-13 02:39:38 +00:00
_detectlang=no
cc_check $LDFLAGS $CXXFLAGS && _detectlang=yes
fi
2010-06-15 10:44:51 +00:00
2010-07-20 08:24:48 +00:00
define_in_config_h_if_yes $_detectlang 'USE_DETECTLANG'
2010-06-15 10:44:51 +00:00
if test "$_detectlang" = yes ; then
2010-07-01 16:26:00 +00:00
echo "with runtime language detection)"
2010-06-15 10:44:51 +00:00
else
echo "without runtime language detection)"
fi
fi
2011-04-29 15:54:09 +00:00
#
# Check whether to build taskbar integration support
#
echo_n "Building taskbar integration support... "
define_in_config_if_yes $_taskbar 'USE_TASKBAR'
2011-06-16 16:30:40 +00:00
if test "$_taskbar" = yes; then
case $_host_os in
mingw*)
LIBS="$LIBS -lole32 -luuid"
echo "win32"
;;
*)
2011-06-22 23:06:30 +00:00
if test "$_libunity" = yes; then
2011-06-16 16:30:40 +00:00
echo "unity"
else
echo "$_taskbar"
fi
;;
esac
else
echo "$_taskbar"
fi
2011-04-29 15:54:09 +00:00
2011-07-13 16:08:26 +00:00
#
# Check whether to build Bink video support
#
echo_n "Building Bink video support... "
define_in_config_if_yes $_bink 'USE_BINK'
echo "$_bink"
2011-07-07 00:47:46 +00:00
#
# Check whether to build updates support
#
echo_n "Building updates support... "
define_in_config_if_yes $_updates 'USE_UPDATES'
if test "$_updates" = yes; then
if test "$_sparkle" = yes; then
echo "Sparkle"
else
echo "$_updates"
fi
else
echo "$_updates"
fi
2004-04-16 08:30:57 +00:00
#
2009-03-22 11:24:23 +00:00
# Figure out installation directories
2004-04-16 08:30:57 +00:00
#
2010-05-09 20:42:18 +00:00
test "x$prefix" = xNONE && prefix=/usr/local
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
2006-08-18 21:55:11 +00:00
2010-05-09 20:42:18 +00:00
DEFINES="$DEFINES -DDATA_PATH=\\\"$datadir\\\""
2006-08-18 21:55:11 +00:00
2010-10-20 13:03:19 +00:00
case $_backend in
openpandora)
# Add ../plugins as a path so plugins can be found when running from a .PND.
DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"../plugins\\\""
;;
2011-07-05 06:52:42 +00:00
maemo | webos)
# The WebOS and Maemo apps want the plugins in the "lib" directory
2011-05-07 15:57:50 +00:00
# without a scummvm sub directory.
2011-05-01 21:41:34 +00:00
DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$libdir\\\""
;;
2010-10-20 13:03:19 +00:00
*)
DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$libdir/scummvm\\\""
;;
esac
2004-04-16 08:30:57 +00:00
2010-04-26 12:11:19 +00:00
#
# Set variables for profiling.
# 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"
fi
2009-01-21 16:15:07 +00:00
echo_n "Backend... "
echo_n "$_backend"
2011-06-22 18:01:53 +00:00
if test "$_backend" = "sdl" -a -n "$_sdlversion"; then
echo_n " ($_sdlversion)"
fi
2009-01-21 16:15:07 +00:00
if test "$_nasm" = yes ; then
echo_n ", assembly routines"
fi
2009-08-21 09:43:30 +00:00
if test "$_16bit" = yes ; then
echo_n ", 16bit color"
fi
2011-09-22 18:32:48 +00:00
if test "$_savegame_timestamp" = yes ; then
echo_n ", savegame timestamp"
fi
2010-05-09 11:00:17 +00:00
if test "$_build_scalers" = yes ; then
2010-05-10 17:25:12 +00:00
if test "$_build_hq_scalers" = yes ; then
echo_n ", HQ scalers"
else
echo_n ", scalers"
fi
2009-01-21 16:15:07 +00:00
fi
if test "$_mt32emu" = yes ; then
echo_n ", MT-32 emu"
fi
2009-07-25 23:36:24 +00:00
if test "$_text_console" = yes ; then
echo_n ", text console"
fi
2009-01-21 16:15:07 +00:00
if test "$_vkeybd" = yes ; then
echo_n ", virtual keyboard"
fi
if test "$_keymapper" = yes ; then
echo ", keymapper"
else
echo
fi
2011-05-05 12:21:17 +00:00
#
# Some last-minute backend specific stuff, executed
# after all of CXXFLAGS, LDFLAGS, LIBS etc. have been setup
#
case $_backend in
android)
2011-06-15 17:09:50 +00:00
# ssp at this point so the cxxtests link
if test "$_debug_build" = yes; then
CXXFLAGS="$CXXFLAGS -fstack-protector"
else
CXXFLAGS="$CXXFLAGS -fno-stack-protector"
fi
2011-05-05 12:21:17 +00:00
static_libs=''
system_libs=''
for lib in $LIBS; do
case $lib in
2011-05-26 06:25:28 +00:00
-lz|-lm|-ldl)
2011-05-05 12:21:17 +00:00
system_libs="$system_libs $lib"
;;
*)
static_libs="$static_libs $lib"
;;
esac
done
# -lgcc is carefully placed here - we want to catch
# all toolchain symbols in *our* libraries rather
# than pick up anything unhygenic from the Android libs.
LIBS="-Wl,-Bstatic $static_libs -Wl,-Bdynamic -lgcc $system_libs -llog -lGLESv1_CM"
;;
2011-05-31 13:15:19 +00:00
n64)
2011-08-08 19:09:48 +00:00
# Move some libs down here, otherwise some symbols requires by libvorbis aren't found
2011-05-31 13:15:19 +00:00
# during linking stage
LIBS="$LIBS -lc -lgcc -lnosys"
;;
2011-05-05 12:21:17 +00:00
esac
2004-02-15 01:21:02 +00:00
#
2008-05-06 03:00:26 +00:00
# Engine selection
2004-02-15 01:21:02 +00:00
#
2008-05-06 03:00:26 +00:00
_engines_built_static=""
_engines_built_dynamic=""
2007-10-31 19:38:09 +00:00
_engines_skipped=""
2007-10-29 21:40:38 +00:00
2011-08-08 11:38:29 +00:00
# Show a message if looping over engines takes longer than 5 secs
sh -c "
touch config.gnomes
sleep 5
2011-08-08 19:09:48 +00:00
if test -f config.gnomes; then
2011-08-08 11:38:29 +00:00
printf 'Employing little gnomes...'
rm -f config.gnomes
fi" 2>/dev/null &
2007-10-31 19:38:09 +00:00
for engine in $_engines; do
if test "`get_engine_sub $engine`" = "no" ; then
2008-05-06 03:00:26 +00:00
# It's a main engine
if test `get_engine_build $engine` = no ; then
isbuilt=no
else
# If dynamic plugins aren't supported, mark
# all the engines as static
2008-05-06 03:11:01 +00:00
if test $_dynamic_modules = no ; then
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "static"
2008-05-06 03:00:26 +00:00
else
# If it wasn't explicitly marked as static or
# dynamic, use the configured default
if test `get_engine_build $engine` = yes ; then
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "${_plugins_default}"
2008-05-06 03:00:26 +00:00
fi
fi
# Prepare the defines
if test `get_engine_build $engine` = dynamic ; then
isbuilt=DYNAMIC_PLUGIN
else
2009-08-31 01:24:04 +00:00
set_var _engine_${engine}_build "static"
2008-05-06 03:00:26 +00:00
isbuilt=STATIC_PLUGIN
fi
fi
# Prepare the information to be shown
2007-11-04 06:55:45 +00:00
prepare_engine_build_strings $engine
2008-05-06 03:00:26 +00:00
else
# It's a subengine, just say yes or no
if test "`get_engine_build $engine`" = "no" ; then
isbuilt=no
else
isbuilt=1
fi
fi
# Save the settings
2008-07-23 19:50:57 +00:00
defname="ENABLE_`echo $engine | tr '[a-z]' '[A-Z]'`"
2008-05-06 03:00:26 +00:00
if test "$isbuilt" = "no" ; then
add_line_to_config_mk "# $defname"
else
add_line_to_config_mk "$defname = $isbuilt"
2004-12-16 22:15:32 +00:00
fi
2007-10-31 19:38:09 +00:00
done
2011-04-19 03:06:15 +00:00
#
# Detection of WIP/unstable engines
#
for engine in $_engines; do
engine_build=`get_engine_build $engine`
engine_build_default=`get_engine_build_default $engine`
if test $engine_build != no -a $engine_build_default = no ; then
set_var _tainted_build "yes"
fi
done
add_to_config_h_if_yes `get_var _tainted_build` '#define TAINTED_BUILD'
2011-08-08 11:38:29 +00:00
# Complete the message on slow systems
if test -f config.gnomes ; then
# Kill does not work well here as it produces nasty 'Killed' message
rm -rf config.gnomes
else
echo " work is done"
fi
2008-05-06 03:00:26 +00:00
#
# Show which engines ("frontends") are to be built
#
2007-10-31 19:38:09 +00:00
echo
2008-05-06 03:00:26 +00:00
if test -n "$_engines_built_static" ; then
echo "Engines (builtin):"
echo $_engines_built_static | sed 's/@/\
/g
s/#/ /g'
fi
if test -n "$_engines_built_dynamic" ; then
echo "Engines (plugins):"
echo $_engines_built_dynamic | sed 's/@/\
2007-10-31 19:38:09 +00:00
/g
s/#/ /g'
2003-07-28 02:12:59 +00:00
fi
2007-10-31 19:38:09 +00:00
2007-11-04 06:55:45 +00:00
if test -n "$_engines_skipped" ; then
2007-10-31 19:38:09 +00:00
echo "Engines Skipped:"
echo $_engines_skipped | sed 's/@/\
/g
s/#/ /g'
2006-11-03 21:23:07 +00:00
fi
2006-05-23 23:51:59 +00:00
2011-04-19 03:06:15 +00:00
if test -n "$_engines_built_wip" ; then
echo "WARNING: This ScummVM build contains the following UNSTABLE engines:"
echo $_engines_built_wip | sed 's/@/\
/g
s/#/ /g'
fi
2003-07-06 02:40:02 +00:00
2003-07-06 06:21:17 +00:00
echo
2003-05-20 10:15:38 +00:00
echo "Creating config.h"
cat > config.h << EOF
/* This file is automatically generated by configure */
/* DO NOT EDIT MANUALLY */
#ifndef CONFIG_H
#define CONFIG_H
2007-06-24 20:35:02 +00:00
$_config_h_data
2004-01-22 04:31:31 +00:00
2003-05-20 10:15:38 +00:00
/* Data types */
typedef unsigned $type_1_byte byte;
typedef unsigned int uint;
typedef unsigned $type_1_byte uint8;
typedef unsigned $type_2_byte uint16;
typedef unsigned $type_4_byte uint32;
typedef signed $type_1_byte int8;
typedef signed $type_2_byte int16;
typedef signed $type_4_byte int32;
2012-01-25 20:13:43 +00:00
EOF
if test -n "$_def_64bit_type_unsigned" ; then
cat >> config.h << EOF
2003-05-20 10:15:38 +00:00
2011-12-24 10:59:42 +00:00
/* 64-bit stuff */
$_def_64bit_type_signed
#if defined(__APPLE__) && !defined(__ppc__)
#ifndef _UINT64
#define _UINT64
$_def_64bit_type_unsigned
#endif
#else
$_def_64bit_type_unsigned
#endif
2012-01-25 20:13:43 +00:00
EOF
fi
cat >> config.h << EOF
2011-12-24 10:59:42 +00:00
2003-05-20 10:15:38 +00:00
#endif /* CONFIG_H */
EOF
2006-06-24 08:48:11 +00:00
echo "Creating config.mk"
cat > config.mk << EOF
2003-05-18 09:54:28 +00:00
# -------- Generated by configure -----------
2003-05-20 10:24:24 +00:00
CXX := $CXX
2005-04-14 06:59:46 +00:00
CXXFLAGS := $CXXFLAGS
2009-10-09 11:38:13 +00:00
LD := $LD
2003-12-05 23:14:01 +00:00
LIBS += $LIBS
2003-05-20 10:24:24 +00:00
RANLIB := $_ranlib
2009-03-19 20:49:22 +00:00
STRIP := $_strip
2004-07-27 12:16:03 +00:00
AR := $_ar
2009-08-22 12:35:49 +00:00
AS := $_as
2009-08-22 16:30:20 +00:00
ASFLAGS := $ASFLAGS
2007-03-18 22:56:56 +00:00
WINDRES := $_windres
2009-09-11 18:13:27 +00:00
WINDRESFLAGS := $WINDRESFLAGS
2011-07-01 02:41:52 +00:00
STAGINGPATH=$_stagingpath
2004-07-27 12:16:03 +00:00
WIN32PATH=$_win32path
2006-04-14 01:11:10 +00:00
AOS4PATH=$_aos4path
2009-03-19 20:49:22 +00:00
STATICLIBPATH=$_staticlibpath
2004-07-27 12:16:03 +00:00
2003-05-26 05:18:40 +00:00
BACKEND := $_backend
2003-07-06 02:40:02 +00:00
MODULES += $MODULES
2003-09-17 21:53:13 +00:00
MODULE_DIRS += $MODULE_DIRS
2011-02-06 14:29:22 +00:00
EXEPRE := $HOSTEXEPRE
2009-03-23 17:40:46 +00:00
EXEEXT := $HOSTEXEEXT
2004-05-21 02:08:48 +00:00
NASM := $NASM
NASMFLAGS := $NASMFLAGS
2003-08-02 09:21:34 +00:00
2010-05-09 20:42:18 +00:00
prefix = $prefix
exec_prefix = $exec_prefix
bindir = $bindir
2010-10-11 19:50:17 +00:00
libdir = $libdir
2010-05-09 20:42:18 +00:00
datarootdir = $datarootdir
datadir = $datadir
mandir = $mandir
2010-10-11 19:50:17 +00:00
docdir = $docdir
2004-04-16 08:30:57 +00:00
2006-08-04 22:46:06 +00:00
$_config_mk_data
2005-05-14 22:56:41 +00:00
2003-07-06 02:40:02 +00:00
INCLUDES += $INCLUDES
OBJS += $OBJS
DEFINES += $DEFINES
2003-07-06 05:50:49 +00:00
LDFLAGS += $LDFLAGS
2007-11-06 17:23:33 +00:00
2007-12-02 12:11:59 +00:00
$_mak_plugins
2009-09-27 14:59:40 +00:00
port_mk = $_port_mk
2009-09-11 18:13:27 +00:00
SAVED_CONFIGFLAGS := $SAVED_CONFIGFLAGS
SAVED_LDFLAGS := $SAVED_LDFLAGS
SAVED_CXX := $SAVED_CXX
SAVED_CXXFLAGS := $SAVED_CXXFLAGS
SAVED_CPPFLAGS := $SAVED_CPPFLAGS
SAVED_ASFLAGS := $SAVED_ASFLAGS
SAVED_WINDRESFLAGS := $SAVED_WINDRESFLAGS
2003-05-18 09:54:28 +00:00
EOF
2004-02-21 15:55:26 +00:00
#
# Create a custom Makefile when building outside the source tree
# TODO: Add a better check than just looking for 'Makefile'
#
2009-12-26 17:46:22 +00:00
if test ! -f Makefile.common ; then
2004-02-21 15:55:26 +00:00
echo "Creating Makefile"
cat > Makefile << EOF
# -------- Generated by configure -----------
srcdir = $_srcdir
vpath %.h \$(srcdir)
2007-12-01 17:56:24 +00:00
vpath %.cpp \$(srcdir)
vpath %.c \$(srcdir)
vpath %.m \$(srcdir)
2009-12-26 13:35:57 +00:00
vpath %.mm \$(srcdir)
2007-11-30 17:59:02 +00:00
vpath %.asm \$(srcdir)
2007-12-01 17:56:24 +00:00
vpath %.s \$(srcdir)
2009-03-18 23:38:25 +00:00
vpath %.S \$(srcdir)
2004-02-21 15:55:26 +00:00
include \$(srcdir)/Makefile
EOF
fi