X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=configure;h=e401902e2a4826bac0e699802abb0d2a40968730;hp=f55e9b652a299088b1e38f7d1c86215f84cbe43c;hb=db1262095fed1b02260cc4ae4a42cdd31b8ef0a4;hpb=2c616080220bf33a8348e12fd8a5c87052300a54 diff --git a/configure b/configure index f55e9b65..e401902e 100755 --- a/configure +++ b/configure @@ -24,8 +24,7 @@ compile_binary() check_define() { - echo "" > $TMPC - $CC -E -dD $CFLAGS $TMPC | grep -q $1 || return 1 + $CC -E -dD $CFLAGS include/arm_features.h | grep -q $1 || return 1 return 0 } @@ -36,12 +35,13 @@ platform_list="generic pandora maemo caanoo libretro" platform="generic" builtin_gpu_list="peops unai neon" builtin_gpu="" -sound_driver_list="oss alsa sdl pulseaudio libretro" +sound_driver_list="oss alsa pulseaudio sdl libretro" sound_drivers="" plugins="plugins/spunull/spunull.so \ plugins/dfxvideo/gpu_peops.so plugins/gpu_unai/gpu_unai.so" ram_fixed="no" drc_cache_base="no" +have_armv5="" have_armv6="" have_armv7="" have_arm_neon="" @@ -49,6 +49,7 @@ have_tslib="" have_gles="" enable_dynarec="yes" need_sdl="no" +need_xlib="no" need_libpicofe="yes" need_warm="no" CFLAGS_GLES="" @@ -62,7 +63,7 @@ CC="${CC-${CROSS_COMPILE}gcc}" CXX="${CXX-${CROSS_COMPILE}g++}" AS="${AS-${CROSS_COMPILE}as}" AR="${AS-${CROSS_COMPILE}ar}" -MAIN_LDLIBS="$LDLIBS -ldl -lm" +MAIN_LDLIBS="$LDLIBS -ldl -lm -lpthread" config_mak="config.mak" fail() @@ -84,6 +85,7 @@ set_platform() drc_cache_base="yes" optimize_cortexa8="yes" have_arm_neon="yes" + need_xlib="yes" ;; maemo) ram_fixed="yes" @@ -175,13 +177,24 @@ if [ "$need_warm" = "yes" ]; then fi fi +# basic compiler test +cat > $TMPC < +int main(void) { return 0; } +EOF +if ! compile_binary; then + fail "compiler test failed, please check config.log" +fi + if [ -z "$ARCH" ]; then - ARCH=`$CC -v 2>&1 | grep -i 'target:' | awk '{print $2}' \ - | awk -F '-' '{print $1}'` + ARCH=`$CC -dumpmachine | awk -F '-' '{print $1}'` fi -# ARM stuff -if [ "$ARCH" = "arm" ]; then +case "$ARCH" in +arm*) + # ARM stuff + ARCH="arm" + if [ "$optimize_cortexa8" = "yes" ]; then CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8" ASFLAGS="$ASFLAGS -mcpu=cortex-a8" @@ -195,15 +208,22 @@ if [ "$ARCH" = "arm" ]; then # detect NEON from user-supplied cflags to enable asm code have_arm_neon=`check_define __ARM_NEON__ && echo yes` || true fi - if [ "x$have_armv6" = "x" ]; then - have_armv6=`check_define __ARM_ARCH_6 && echo yes` || true - fi if [ "x$have_armv7" = "x" ]; then - if check_define __ARM_ARCH_7A__; then - have_armv6="yes" + if check_define HAVE_ARMV7; then have_armv7="yes" + have_armv6="yes" + have_armv5="yes" fi fi + if [ "x$have_armv6" = "x" ]; then + if check_define HAVE_ARMV6; then + have_armv6="yes" + have_armv5="yes" + fi + fi + if [ "x$have_armv5" = "x" ]; then + have_armv5=`check_define HAVE_ARMV5 && echo yes` || true + fi if [ "x$builtin_gpu" = "x" ]; then if [ "$have_arm_neon" = "yes" ]; then @@ -236,10 +256,26 @@ if [ "$ARCH" = "arm" ]; then if check_define __thumb__; then CFLAGS="$CFLAGS -marm" fi -else + + # warn about common mistakes + if [ "$have_armv5" != "yes" ]; then + if ! echo "$CFLAGS" | grep -q -- '-mcpu=\|-march='; then + echo "Warning: compiling for ARMv4, is that really what you want?" + echo "You probably should specify -mcpu= or -march= like this:" + echo " CFLAGS=-march=armv6 ./configure ..." + fi + fi + if [ "$have_arm_neon" = "yes" -a "$have_armv7" != "yes" ]; then + echo "Warning: compiling for NEON, but not ARMv7?" + echo "You probably want to specify -mcpu= or -march= like this:" + echo " CFLAGS=-march=armv7-a ./configure ..." + fi + ;; +*) # dynarec only available on ARM enable_dynarec="no" -fi + ;; +esac if [ "x$builtin_gpu" = "x" ]; then builtin_gpu="peops" @@ -259,10 +295,7 @@ generic) need_sdl="yes" ;; maemo) - maemo_cflags=`pkg-config --cflags hildon-1` - maemo_ldlibs=`pkg-config --libs hildon-1` - CFLAGS="$CFLAGS -DMAEMO -DMAEMO_CHANGES $maemo_cflags" - MAIN_LDLIBS="$MAIN_LDLIBS $maemo_ldlibs" + CFLAGS="$CFLAGS -DMAEMO -DMAEMO_CHANGES" ;; libretro) CFLAGS="$CFLAGS -fPIC" @@ -308,6 +341,15 @@ EOF compile_binary "$@" } +check_pulseaudio() +{ + cat > $TMPC < + void main() { pa_threaded_mainloop_new(); } +EOF + compile_binary "$@" +} + check_sdl() { cat > $TMPC < $TMPC < + void *f() { return XOpenDisplay(0); } +EOF + compile_object "$@" +} + MAIN_LDLIBS="$MAIN_LDLIBS -lz" check_zlib || fail "please install zlib (libz-dev)" @@ -330,6 +381,10 @@ if [ "x$sound_drivers" = "x" ]; then sound_drivers="$sound_drivers alsa" MAIN_LDLIBS="-lasound $MAIN_LDLIBS" fi + if check_pulseaudio -lpulse; then + sound_drivers="$sound_drivers pulseaudio" + MAIN_LDLIBS="-lpulse $MAIN_LDLIBS" + fi if [ "$need_sdl" = "yes" ] || check_sdl `sdl-config --cflags --libs`; then sound_drivers="$sound_drivers sdl" need_sdl="yes" @@ -342,6 +397,10 @@ else MAIN_LDLIBS="-lasound $MAIN_LDLIBS" check_alsa || fail "please install libasound2-dev" fi + if echo $sound_drivers | grep -q "\"; then + MAIN_LDLIBS="-lpulse $MAIN_LDLIBS" + check_pulseaudio || fail "pulseaudio support is missing" + fi fi if [ "$need_sdl" = "yes" ]; then @@ -367,8 +426,9 @@ fi # check for VideoCore stuff for Raspberry Pi if [ -d /opt/vc/include -a -d /opt/vc/lib ]; then - CFLAGS_GLES="$CFLAGS_GLES -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads" + CFLAGS_GLES="$CFLAGS_GLES -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" LDLIBS_GLES="$LDLIBS_GLES -L/opt/vc/lib" + need_xlib="yes" fi # check for GLES headers @@ -394,6 +454,11 @@ if [ "$have_arm_neon" = "yes" -a "$builtin_gpu" != "neon" ]; then plugins="$plugins plugins/gpu_neon/gpu_neon.so" fi +# check for xlib (only headers needed) +if [ "x$need_xlib" = "xyes" ]; then + check_xlib_headers || fail "please install libx11-dev" +fi + cat > $TMPC <