diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 189 |
1 files changed, 111 insertions, 78 deletions
@@ -62,7 +62,7 @@ get_var() { eval echo \$${1} } -# Add an engine: id name build subengines dependencies +# Add an engine: id name build subengines base-games dependencies add_engine() { _engines="${_engines} ${1}" if test "${3}" = "no" ; then @@ -72,9 +72,11 @@ add_engine() { set_var _engine_${1}_build "${3}" set_var _engine_${1}_build_default "${3}" set_var _engine_${1}_subengines "${4}" - set_var _engine_${1}_deps "${5}" + set_var _engine_${1}_base "${5}" + set_var _engine_${1}_deps "${6}" for sub in ${4}; do set_var _engine_${sub}_sub "yes" + set_var _engine_${sub}_parent "${1}" done } @@ -94,7 +96,7 @@ _srcdir=`dirname $0` # # Default settings # -# Default lib behaviour yes/no/auto +# Default lib behavior yes/no/auto _vorbis=auto _tremor=auto _tremolo=no @@ -117,7 +119,7 @@ _freetype2=auto _taskbar=yes _updates=no _libunity=auto -# Default option behaviour yes/no +# Default option behavior yes/no _debug_build=auto _release_build=auto _optimizations=auto @@ -509,6 +511,11 @@ get_engine_dependencies() { get_var _engine_$1_deps } +# Get the base engine game support description +get_engine_base() { + get_var _engine_$1_base +} + # Ask if this is a subengine get_engine_sub() { sub=`get_var _engine_$1_sub` @@ -518,6 +525,11 @@ get_engine_sub() { echo $sub } +# Get a subengine's parent (undefined for non-subengines) +get_subengine_parent() { + get_var _engine_$1_parent +} + # Enable *all* engines engine_enable_all() { for engine in $_engines; do @@ -545,9 +557,15 @@ engine_enable() { engine=`echo $eng | sed 's/-/_/g'` # Filter the parameter for the subengines - if test "`get_engine_sub ${engine}`" != "no" -a "$opt" != "yes" ; then - subengine_option_error ${engine} - return + if test "`get_engine_sub ${engine}`" != "no" ; then + if test "$opt" != "yes" ; then + subengine_option_error ${engine} + return + fi + parent=`get_subengine_parent ${engine}` + if test `get_engine_build ${parent}` = "no" ; then + set_var _engine_${parent}_build "yes" + fi fi if test "$opt" = "static" -o "$opt" = "dynamic" -o "$opt" = "yes" ; then @@ -583,7 +601,7 @@ check_engine_deps() { unmet_deps="" # Check whether the engine is enabled - if test `get_engine_build $1` = yes ; then + if test `get_engine_build $1` != "no" ; then # Collect unmet dependencies for dep in `get_engine_dependencies $1`; do if test `get_feature_state $dep` = "no"; then @@ -642,27 +660,37 @@ prepare_engine_build_strings() { # Get the string about building an engine get_engine_build_string() { + engine=$1 + request_status=$2 engine_string="" engine_build=`get_engine_build $1` - engine_build_default=`get_engine_build_default $1` + engine_build_default=`get_engine_build_default $engine` show=no + # Convert static/dynamic to yes to ease the check of subengines + if test $engine_build = no; then + subengine_filter=no + else + subengine_filter=yes + fi + # Check if the current engine should be shown for the current status - if test $engine_build = $2 ; then + if test $engine_build = $request_status ; then show=yes else # Test for disabled sub-engines - if test $2 = no ; then - for subeng in `get_engine_subengines $1` ; do + if test $request_status = no ; then + for subeng in `get_engine_subengines $engine` ; do if test `get_engine_build $subeng` = no ; then - engine_build=no + # In this case we to display _disabled_ subengines + subengine_filter=no show=yes fi done fi # Test for enabled wip sub-engines - if test $2 = wip ; then - for subeng in `get_engine_subengines $1` ; do + if test $request_status = wip ; then + for subeng in `get_engine_subengines $engine` ; do if test `get_engine_build $subeng` != no -a `get_engine_build_default $subeng` = no ; then show=yes fi @@ -670,85 +698,82 @@ get_engine_build_string() { fi fi - # Convert static/dynamic to yes to ease the check of subengines - if test $engine_build != no ; then - engine_build=yes - fi # Check if it is a wip engine - if test "$2" = "wip" -a "$engine_build" != "no" -a "$engine_build_default" = no; then + if test "$request_status" = "wip" -a "$engine_build" != "no" -a "$engine_build_default" = no; then show=yes fi # The engine should be shown, build the string if test $show = yes ; then - build_string_func=get_${1}_build_string - if ( type $build_string_func | grep function ) 2> /dev/null > /dev/null ; then - engine_string=`$build_string_func $1 $engine_build $2` - else - engine_string=`get_subengines_build_string $1 $engine_build "" $2` - fi - - engine_string="`get_engine_name $1` $engine_string" + engine_string=`get_subengines_build_string $engine $subengine_filter $request_status` + engine_string="`get_engine_name $engine` $engine_string" fi - echo $engine_string + echo "$engine_string" } # Get the string about building subengines get_subengines_build_string() { - all=yes parent_engine=$1 - subengine_string=$3 - parent_status=$4 + subengine_filter=$2 + request_status=$3 parent_engine_build_default=`get_engine_build_default $parent_engine` + subengine_string="" - 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 - subengine_string="$subengine_string [`get_engine_name $subeng`]" - else - all=no - fi + # If the base engine isn't built at all, no need to list subengines + # in any of the possible categories. + if test `get_engine_build $parent_engine` = no; then + return + fi - # 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 + all=yes + # If there are no subengines, never display "[all games]" (for brevity). + if test -z "`get_engine_subengines $parent_engine`"; then + all=no + fi + # If the base engine does not fit the category we're displaying here + # (WIP or Skipped), we should never show "[all games]" + if test "$request_status" = wip; then + if test $parent_engine_build_default = yes; then + all=no fi + fi + if test "$request_status" = no; then + # If we're here, the parent engine is built, so no need to check that. + all=no + fi - done - if test $2 != no ; then - if test -n "$subengine_string" ; then - if test $all = yes ; then - subengine_string="[all games]" - fi - fi + # In the static/dynamic categories, also display the engine's base games. + if test -n "`get_engine_subengines $parent_engine`" -a $request_status != no -a $request_status != wip; then + subengine_string="[`get_engine_base $parent_engine`]" fi - echo $subengine_string -} + for subeng in `get_engine_subengines $parent_engine` ; do + subengine_build=`get_engine_build $subeng` + subengine_build_default=`get_engine_build_default $subeng` -# Engine specific build strings -get_scumm_build_string() { - if test `get_engine_build $1` != no ; then - if test $2 != no -a "$3" != wip ; then - base="[v0-v6 games]" + # Display this subengine if it matches the filter, unless it is + # a stable subengine in the WIP request. + if test $subengine_build = $subengine_filter -a \! \( "$request_status" = wip -a "$subengine_build_default" = yes \) ; then + s="[`get_engine_name $subeng`]" + if test -n "$subengine_string"; then + subengine_string="$subengine_string $s" + else + subengine_string="$s" + fi + else + all=no fi - get_subengines_build_string $1 $2 "$base" $3 - fi -} + done -get_saga_build_string() { - if test `get_engine_build $1` != no ; then - if test $2 != no -a "$3" != wip; then - base="[ITE]" - fi - get_subengines_build_string $1 $2 "$base" $3 + # Summarize the full list, where applicable + if test $all = yes ; then + subengine_string="[all games]" fi + + echo "$subengine_string" } # @@ -2500,10 +2525,13 @@ if test -n "$_host"; then # Use -O3 on the OpenPandora for non-debug builds. _optimization_level=-O3 fi + define_in_config_if_yes yes 'USE_ARM_NEON_ASPECT_CORRECTOR' CXXFLAGS="$CXXFLAGS -march=armv7-a" CXXFLAGS="$CXXFLAGS -mtune=cortex-a8" + CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp" CXXFLAGS="$CXXFLAGS -mfpu=neon" - ASFLAGS="$ASFLAGS -mfloat-abi=soft" + CXXFLAGS="$CXXFLAGS -fsingle-precision-constant" + ASFLAGS="$ASFLAGS -mfloat-abi=softfp" _backend="openpandora" _build_hq_scalers=yes _vkeybd=no @@ -2952,7 +2980,7 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwo freebsd*) _plugin_prefix="lib" _plugin_suffix=".so" - CXXFLAGS="$CXXFLAGS -fpic" + CXXFLAGS="$CXXFLAGS -fPIC" _mak_plugins=' PLUGIN_EXTRA_DEPS = PLUGIN_LDFLAGS += -shared @@ -2996,7 +3024,7 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive linux*) _plugin_prefix="lib" _plugin_suffix=".so" - CXXFLAGS="$CXXFLAGS -fpic" + CXXFLAGS="$CXXFLAGS -fPIC" LIBS="$LIBS -ldl" _mak_plugins=' PLUGIN_EXTRA_DEPS = @@ -3956,9 +3984,6 @@ for engine in $_engines; do isbuilt=STATIC_PLUGIN fi fi - - # Prepare the information to be shown - prepare_engine_build_strings $engine else # It's a subengine, just say yes or no if test "`get_engine_build $engine`" = "no" ; then @@ -3977,6 +4002,14 @@ for engine in $_engines; do fi done +# Prepare the information to be shown +for engine in $_engines; do + if test "`get_engine_sub $engine`" = "no" ; then + # It's a main engine + prepare_engine_build_strings $engine + fi +done + # # Detection of WIP/unstable engines # @@ -4004,28 +4037,28 @@ fi echo if test -n "$_engines_built_static" ; then echo "Engines (builtin):" - echo $_engines_built_static | sed 's/@/\ + 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/@/\ + echo "$_engines_built_dynamic" | sed 's/@/\ /g s/#/ /g' fi if test -n "$_engines_skipped" ; then echo "Engines Skipped:" - echo $_engines_skipped | sed 's/@/\ + echo "$_engines_skipped" | sed 's/@/\ /g s/#/ /g' fi if test -n "$_engines_built_wip" ; then echo "WARNING: This ScummVM build contains the following UNSTABLE engines:" - echo $_engines_built_wip | sed 's/@/\ + echo "$_engines_built_wip" | sed 's/@/\ /g s/#/ /g' fi |