have_tslib=""
enable_dynarec="yes"
need_sdl="no"
+need_libpicofe="yes"
+need_warm="no"
# these are for known platforms
optimize_cortexa8="no"
optimize_arm926ej="no"
ram_fixed="yes"
drc_cache_base="yes"
optimize_arm926ej="yes"
+ need_warm="yes"
;;
libretro)
sound_drivers="libretro"
+ need_libpicofe="no"
;;
*)
fail "unsupported platform: $platform"
done
fi
+if [ "$need_libpicofe" = "yes" ]; then
+ if ! test -f "frontend/libpicofe/README"; then
+ fail "libpicofe is missing, please run 'git submodule init && git submodule update'"
+ fi
+fi
+
+if [ "$need_warm" = "yes" ]; then
+ if ! test -f "frontend/warm/README"; then
+ fail "wARM is missing, please run 'git submodule init && git submodule update'"
+ fi
+fi
+
if [ -z "$ARCH" ]; then
ARCH=`$CC -v 2>&1 | grep -i 'target:' | awk '{print $2}' \
| awk -F '-' '{print $1}'`
echo "$CFLAGS" | grep -q -- '-mfpu=' || CFLAGS="$CFLAGS -mfpu=vfp"
echo "$ASFLAGS" | grep -q -- '-mfpu=' || ASFLAGS="$ASFLAGS -mfpu=vfp"
fi
- floatabi_set_by_gcc=`$CC -v 2>&1 | grep -q -- --with-float= && echo yes`
+ floatabi_set_by_gcc=`$CC -v 2>&1 | grep -q -- --with-float= && echo yes` || true
if [ "$floatabi_set_by_gcc" != "yes" -a "$have_armv6" = "yes" ]; then
echo "$CFLAGS" | grep -q -- '-mfloat-abi=' || CFLAGS="$CFLAGS -mfloat-abi=softfp"
echo "$ASFLAGS" | grep -q -- '-mfloat-abi=' || ASFLAGS="$ASFLAGS -mfloat-abi=softfp"
fi
- # must disable -mthumb as recompiler can't handle it
+ # must disable thumb as recompiler can't handle it
if check_define __thumb__; then
- CFLAGS="$CFLAGS -mno-thumb"
+ CFLAGS="$CFLAGS -marm"
fi
if [ "$have_armv7" = "yes" ]; 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 -m32"
- LDFLAGS="$LDFLAGS -m32"
-fi
-
# supposedly we can avoid -fPIC on armv5 for slightly better performace?
if [ "$ARCH" != "arm" -o "$have_armv6" = "yes" ]; then
PLUGIN_CFLAGS="$PLUGIN_CFLAGS -fPIC"
;;
libretro)
CFLAGS="$CFLAGS -fPIC"
- LDFLAGS="$LDFLAGS -shared"
+ MAIN_LDFLAGS="$MAIN_LDFLAGS -shared -Wl,--no-undefined"
;;
esac
{
cat > $TMPC <<EOF
#include <zlib.h>
- void main() { uncompress(0, 0, 0, 0); }
+ int main(void) { uncompress(0, 0, 0, 0); }
EOF
compile_binary
}
}
MAIN_LDLIBS="$MAIN_LDLIBS -lz"
-check_zlib || fail "please install zlib/libz-dev"
+check_zlib || fail "please install zlib (libz-dev)"
-check_bzlib || fail "please install bz2lib/libbz2-dev"
+check_bzlib || fail "please install bz2lib (libbz2-dev)"
MAIN_LDLIBS="-lpng $MAIN_LDLIBS"
-check_libpng || fail "please install libpng/libpng-dev"
+check_libpng || fail "please install libpng (libpng-dev)"
# find what audio support we can compile
if [ "x$sound_drivers" = "x" ]; then
sound_drivers="$sound_drivers alsa"
MAIN_LDLIBS="-lasound $MAIN_LDLIBS"
fi
- if [ "$need_sdl" == "yes" ] || check_sdl `sdl-config --cflags -libs`; then
+ if [ "$need_sdl" = "yes" ] || check_sdl `sdl-config --cflags --libs`; then
sound_drivers="$sound_drivers sdl"
need_sdl="yes"
fi
fi
fi
-if [ "$need_sdl" == "yes" ]; then
+if [ "$need_sdl" = "yes" ]; then
+ which sdl-config > /dev/null || \
+ fail "sdl-config is missing; please install libsdl (libsdl1.2-dev)"
CFLAGS="$CFLAGS `sdl-config --cflags`"
MAIN_LDLIBS="`sdl-config --libs` $MAIN_LDLIBS"
- check_sdl || fail "please install libsdl1.2-dev"
+ check_sdl || fail "please install libsdl (libsdl1.2-dev)"
fi
# check for tslib (only headers needed)
plugins="$plugins plugins/gpu_neon/gpu_neon.so"
fi
+cat > $TMPC <<EOF
+void test(void *f, void *d) { fread(d, 1, 1, f); }
+EOF
+if compile_object -Wno-unused-result; then
+ CFLAGS="$CFLAGS -Wno-unused-result"
+fi
+
# short plugin list for display
for p in $plugins; do
p1=`basename $p`
echo "C compiler $CC"
echo "C compiler flags $CFLAGS"
echo "libraries $MAIN_LDLIBS"
-echo "linker flags $LDFLAGS"
+echo "linker flags $LDFLAGS$MAIN_LDFLAGS"
echo "enable dynarec $enable_dynarec"
echo "ARMv7 optimizations $have_armv7"
echo "enable ARM NEON $have_arm_neon"
echo "CFLAGS += $CFLAGS" >> $config_mak
echo "ASFLAGS += $ASFLAGS" >> $config_mak
echo "LDFLAGS += $LDFLAGS" >> $config_mak
+echo "MAIN_LDFLAGS += $MAIN_LDFLAGS" >> $config_mak
echo "MAIN_LDLIBS += $MAIN_LDLIBS" >> $config_mak
echo "PLUGIN_CFLAGS += $PLUGIN_CFLAGS" >> $config_mak
echo >> $config_mak