# setting options to "yes" or "no" will make that choice default,
# "" means "autodetect".
-platform_list="generic pandora maemo caanoo"
+platform_list="generic pandora maemo caanoo libretro"
platform="generic"
-sound_driver_list="oss alsa none"
+builtin_gpu_list="peops unai neon"
+builtin_gpu=""
+sound_driver_list="oss alsa sdl libretro none"
sound_driver="alsa"
+plugins="plugins/spunull/spunull.so \
+plugins/dfxvideo/gpu_peops.so plugins/gpu_unai/gpu_unai.so"
ram_fixed="no"
drc_cache_base="no"
have_armv6=""
drc_cache_base="yes"
optimize_arm926ej="yes"
;;
+ libretro)
+ sound_driver="libretro"
+ ;;
*)
echo "unsupported platform: $platform"
exit 1
;;
--platform=*) set_platform "$optarg"
;;
+ --gpu=*) builtin_gpu="$optarg"
+ ;;
--sound-driver=*) sound_driver="$optarg"
;;
--enable-neon) have_arm_neon="yes"
echo " --help print this message"
echo " --platform=NAME target platform [$platform]"
echo " available: $platform_list"
+ echo " --gpu=NAME builtin gpu plugin [guessed]"
+ echo " available: $builtin_gpu_list"
echo " --sound-driver=NAME sound output driver [$sound_driver]"
echo " available: $sound_driver_list"
echo " --enable-neon"
exit 1
fi
+if [ "x$builtin_gpu" != "x" ]; then
+ case "$builtin_gpu" in
+ peops|unai|neon)
+ ;;
+ *)
+ echo "unsupported builtin gpu plugin: $builtin_gpu"
+ exit 1
+ ;;
+ esac
+fi
+
case "$sound_driver" in
-oss|alsa|none)
+oss|alsa|sdl|libretro|none)
;;
*)
echo "unsupported sound driver: $sound_driver"
fi
fi
+ if [ "x$builtin_gpu" = "x" ]; then
+ if [ "$have_arm_neon" = "yes" ]; then
+ builtin_gpu="neon"
+ elif [ "$have_armv7" != "yes" ]; then
+ # pre-ARMv7 hardware is usually not fast enough for peops
+ builtin_gpu="unai"
+ else
+ builtin_gpu="peops"
+ fi
+ fi
+
# set mfpu and mfloat-abi if they are not set
if [ "$have_arm_neon" = "yes" ]; then
echo "$CFLAGS" | grep -q -- '-mfpu=' || CFLAGS="$CFLAGS -mfpu=neon"
echo "$ASFLAGS" | grep -q -- '-mfloat-abi=' || ASFLAGS="$ASFLAGS -mfloat-abi=softfp"
fi
+ # must disable -mthumb as recompiler can't handle it
+ if check_define __thumb__; then
+ CFLAGS="$CFLAGS -mno-thumb"
+ fi
+
if [ "$have_armv7" = "yes" ]; then
ASFLAGS="$ASFLAGS --defsym HAVE_ARMV7=1"
else
enable_dynarec="no"
fi
+if [ "x$builtin_gpu" = "x" ]; then
+ builtin_gpu="peops"
+fi
+
if [ "$ARCH" = "x86_64" ]; then
# currently we are full of 32bit assumptions,
# at least savestate compatibility will break without these
CFLAGS="$CFLAGS -DRAM_FIXED"
fi
-if [ "$platform" = "generic" ]; then
+case "$platform" in
+generic)
generic_cflags=`sdl-config --cflags`
generic_ldlibs=`sdl-config --libs`
CFLAGS="$CFLAGS $generic_cflags"
LDFLAGS="$LDFLAGS $generic_ldlibs"
-elif [ "$platform" = "maemo" ]; then
+ ;;
+maemo)
maemo_cflags=`pkg-config --cflags hildon-1`
maemo_ldlibs=`pkg-config --libs hildon-1`
CFLAGS="$CFLAGS -DMAEMO -DMAEMO_CHANGES $maemo_cflags"
LDFLAGS="$LDFLAGS $maemo_ldlibs"
-fi
+ ;;
+libretro)
+ CFLAGS="$CFLAGS -fPIC"
+ LDFLAGS="$LDFLAGS -shared"
+ ;;
+esac
# check for tslib (only headers needed)
if [ "x$have_tslib" = "x" ]; then
fi
fi
+# check for GLES headers
+cat > $TMPC <<EOF
+#include <GLES/gl.h>
+#include <GLES/glext.h>
+#include <EGL/egl.h>
+void *test(void) {
+ return eglGetDisplay( (EGLNativeDisplayType)0 );
+}
+EOF
+if compile_object; then
+ plugins="$plugins plugins/gpu-gles/gpu_gles.so"
+fi
+
+if [ "$have_arm_neon" = "yes" -a "$builtin_gpu" != "neon" ]; then
+ plugins="$plugins plugins/gpu_neon/gpu_neon.so"
+fi
+
+# short plugin list for display
+for p in $plugins; do
+ p1=`basename $p`
+ plugins_short="$p1 $plugins_short"
+done
+
# set things that failed to autodetect to "no"
test "x$have_armv6" != "x" || have_armv6="no"
test "x$have_armv7" != "x" || have_armv7="no"
echo "architecture $ARCH"
echo "platform $platform"
+echo "built-in GPU $builtin_gpu"
echo "sound driver $sound_driver"
+echo "plugins $plugins_short"
echo "C compiler $CC"
echo "C compiler flags $CFLAGS"
echo "linker flags $LDFLAGS"
echo "PLUGIN_CFLAGS += $PLUGIN_CFLAGS" >> $config_mak
echo >> $config_mak
+if [ "$platform" = "libretro" ]; then
+ echo "TARGET = libretro.so" >> $config_mak
+fi
echo "ARCH = $ARCH" >> $config_mak
echo "PLATFORM = $platform" >> $config_mak
-case "$sound_driver" in
-oss)
- echo "USE_OSS = 1" >> $config_mak
- ;;
-alsa)
- echo "USE_ALSA = 1" >> $config_mak
- ;;
-none)
- echo "USE_NO_SOUND = 1" >> $config_mak
- ;;
-esac
+echo "BUILTIN_GPU = $builtin_gpu" >> $config_mak
+echo "SOUND_DRIVER = $sound_driver" >> $config_mak
+if [ "$ARCH" = "arm" ]; then
+ echo "PLUGINS = $plugins" >> $config_mak
+else
+ echo -n "PLUGINS =" >> $config_mak
+ for p in $plugins; do
+ echo -n " ${p}.${ARCH}" >> $config_mak
+ done
+ echo >> $config_mak
+fi
if [ "$have_armv6" = "yes" ]; then
echo "HAVE_ARMV6 = 1" >> $config_mak
fi
echo "DRC_CACHE_BASE = 1" >> $config_mak
fi
+# use pandora's skin (for now)
+test -e skin || ln -s frontend/pandora/skin skin
+
# vim:shiftwidth=2:expandtab