X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=configure;h=c3ff68fa2740017657f12db7706c41f545a9d93f;hp=8b5cbda54356054d93ac3374120bf7ece68912de;hb=HEAD;hpb=955f9af0395a7fa2bba0d1c3a4e6ef5d3e111dae diff --git a/configure b/configure index 8b5cbda5..ac7af0e2 100755 --- a/configure +++ b/configure @@ -24,7 +24,13 @@ compile_binary() check_define() { - $CC -E -dD $CFLAGS include/arm_features.h | grep -q $1 || return 1 + $CC -E -dD $CFLAGS include/arm_features.h | grep -q "$1" || return 1 + return 0 +} + +check_define_val() +{ + $CC -E -dD $CFLAGS include/arm_features.h | grep "$1" | awk '{print $3}' return 0 } @@ -33,20 +39,21 @@ check_define() platform_list="generic pandora maemo caanoo libretro" platform="generic" -builtin_gpu_list="peops unai neon" +builtin_gpu_list="neon peops unai unai_old" builtin_gpu="" 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" +plugins/dfxvideo/gpu_peops.so plugins/gpu_unai_old/gpu_unai_old.so plugins/gpu_unai/gpu_unai.so" drc_cache_base="no" have_armv5="" have_armv6="" have_armv7="" have_arm_neon="" +have_arm_neon_asm="" have_tslib="" have_gles="" +have_c64x_dsp="" enable_dynarec="yes" need_sdl="no" need_xlib="no" @@ -59,16 +66,32 @@ optimize_cortexa8="no" optimize_arm926ej="no" # hardcoded stuff -CC="${CC-${CROSS_COMPILE}gcc}" -CXX="${CXX-${CROSS_COMPILE}g++}" +if [ "${OSTYPE}" = "FreeBSD" ]; then + CC="clang" + CXX="clang++" + CFLAGS="-I/usr/local/include -L/usr/local/lib" + MAKE=gmake +else + CC="${CC-${CROSS_COMPILE}gcc}" + CXX="${CXX-${CROSS_COMPILE}g++}" +fi 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" +if [ "${OSTYPE}" = "FreeBSD" ]; then + SYSROOT="$sysroot" + [ "x${SDL_CONFIG}" = "x" ] && SDL_CONFIG="${SYSROOT}/usr/local/bin/sdl-config" +else + SYSROOT="$(${CC} --print-sysroot)" + [ "x${SDL_CONFIG}" = "x" ] && SDL_CONFIG="${SYSROOT}/usr/bin/sdl-config" +fi + fail() { echo "$@" + if test -n "$DUMP_CONFIG_LOG"; then cat config.log; fi exit 1 } @@ -81,21 +104,18 @@ set_platform() ;; pandora) sound_drivers="oss alsa" - ram_fixed="yes" drc_cache_base="yes" optimize_cortexa8="yes" have_arm_neon="yes" need_xlib="yes" ;; maemo) - ram_fixed="yes" drc_cache_base="yes" optimize_cortexa8="yes" have_arm_neon="yes" ;; caanoo) sound_drivers="oss" - ram_fixed="yes" drc_cache_base="yes" optimize_arm926ej="yes" need_warm="yes" @@ -205,7 +225,7 @@ arm*) fi if [ "x$have_arm_neon" = "x" ]; then - # detect NEON from user-supplied cflags to enable asm code + # detect NEON from user-supplied cflags to enable neon code have_arm_neon=`check_define __ARM_NEON__ && echo yes` || true fi if [ "x$have_armv7" = "x" ]; then @@ -230,7 +250,7 @@ arm*) builtin_gpu="neon" elif [ "$have_armv7" != "yes" ]; then # pre-ARMv7 hardware is usually not fast enough for peops - builtin_gpu="unai" + builtin_gpu="unai_old" else builtin_gpu="peops" fi @@ -270,6 +290,20 @@ arm*) echo "You probably want to specify -mcpu= or -march= like this:" echo " CFLAGS=-march=armv7-a ./configure ..." fi + have_arm_neon_asm=$have_arm_neon + ;; +aarch64) + have_arm_neon="yes" + have_arm_neon_asm="no" + if [ "x$builtin_gpu" = "x" ]; then + builtin_gpu="neon" + fi + ;; +x86_64) + enable_dynarec="no" + if [ "x$builtin_gpu" = "x" ]; then + builtin_gpu="neon" + fi ;; *) # dynarec only available on ARM @@ -286,19 +320,12 @@ if [ "$ARCH" != "arm" -o "$have_armv6" = "yes" ]; then PLUGIN_CFLAGS="$PLUGIN_CFLAGS -fPIC" fi -if [ "$ram_fixed" = "yes" ]; then - CFLAGS="$CFLAGS -DRAM_FIXED" -fi - case "$platform" in 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" @@ -371,6 +398,16 @@ EOF compile_object "$@" } +# see if we have c64_tools for TI C64x DSP +check_c64_tools() +{ + cat > $TMPC < + int f() { return dsp_open(); } +EOF + compile_object "$@" +} + MAIN_LDLIBS="$MAIN_LDLIBS -lz" check_zlib || fail "please install zlib (libz-dev)" @@ -388,7 +425,7 @@ if [ "x$sound_drivers" = "x" ]; then sound_drivers="$sound_drivers pulseaudio" MAIN_LDLIBS="-lpulse $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 @@ -407,10 +444,10 @@ else fi if [ "$need_sdl" = "yes" ]; then - which sdl-config > /dev/null || \ + 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" + CFLAGS="$CFLAGS `${SDL_CONFIG} --cflags`" + MAIN_LDLIBS="`${SDL_CONFIG} --libs` $MAIN_LDLIBS" check_sdl || fail "please install libsdl (libsdl1.2-dev)" fi @@ -428,10 +465,14 @@ EOF 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" +if [ -d /opt/vc/include -a -d /opt/vc/lib -a "$VIDEOCORE" != "no" ]; then + 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" + if [ -f /opt/vc/lib/libbcm_host.so ]; then + LDLIBS_GLES="$LDLIBS_GLES -lbcm_host" + fi need_xlib="yes" + VIDEOCORE="yes" fi # check for GLES headers @@ -442,7 +483,10 @@ int main(void) { return (int)eglGetDisplay( (EGLNativeDisplayType)0 ); } EOF -if compile_binary $CFLAGS_GLES -lEGL -lGLES_CM $LDLIBS_GLES; then +if [ "$VIDEOCORE" = "yes" ] && compile_binary $CFLAGS_GLES -lbrcmEGL -lbrcmGLESv2 $LDLIBS_GLES; then + have_gles="yes" + LDLIBS_GLES="-lbrcmEGL -lbrcmGLESv2 $LDLIBS_GLES" +elif compile_binary $CFLAGS_GLES -lEGL -lGLES_CM $LDLIBS_GLES; then have_gles="yes" LDLIBS_GLES="-lEGL -lGLES_CM $LDLIBS_GLES" elif compile_binary $CFLAGS_GLES -lEGL -lGLESv1_CM $LDLIBS_GLES; then @@ -450,6 +494,10 @@ elif compile_binary $CFLAGS_GLES -lEGL -lGLESv1_CM $LDLIBS_GLES; then LDLIBS_GLES="-lEGL -lGLESv1_CM $LDLIBS_GLES" fi +if check_c64_tools; then + have_c64x_dsp="yes" +fi + if [ "$have_gles" = "yes" ]; then plugins="$plugins plugins/gpu-gles/gpu_gles.so" fi @@ -462,6 +510,11 @@ if [ "x$need_xlib" = "xyes" ]; then check_xlib_headers || fail "please install libx11-dev" fi +sizeof_long=`check_define_val __SIZEOF_LONG__` +if [ "x$sizeof_long" = "x4" ]; then + CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" +fi + cat > $TMPC <> $config_mak if [ "$have_arm_neon" = "yes" ]; then echo "HAVE_NEON = 1" >> $config_mak fi +if [ "$have_arm_neon_asm" = "yes" ]; then + echo "HAVE_NEON_ASM = 1" >> $config_mak +fi if [ "$have_tslib" = "yes" ]; then echo "HAVE_TSLIB = 1" >> $config_mak fi @@ -537,7 +600,10 @@ if [ "$enable_dynarec" = "yes" ]; then echo "USE_DYNAREC = 1" >> $config_mak fi if [ "$drc_cache_base" = "yes" ]; then - echo "DRC_CACHE_BASE = 1" >> $config_mak + echo "BASE_ADDR_DYNAMIC = 1" >> $config_mak +fi +if [ "$have_c64x_dsp" = "yes" ]; then + echo "HAVE_C64_TOOLS = 1" >> $config_mak fi # use pandora's skin (for now)