From aa7734a643a7553788617700f40d37057c34ec70 Mon Sep 17 00:00:00 2001 From: vanfanel Date: Sun, 18 Oct 2015 13:02:29 +0200 Subject: SDL/DISPMANX Corrected configure script so Scummvm cross-compiles with modern Raspbian that uses multiarch. --- configure | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/configure b/configure index 2631a29b62..3f39841230 100755 --- a/configure +++ b/configure @@ -1303,7 +1303,9 @@ arm-riscos) raspberrypi) _host_os=linux _host_cpu=arm - _host_alias=arm-linux-gnueabihf + # This tuple is the one used by the official Rpi toolchain. + # It may change in the future. + _host_alias=bcm2708hardfp ;; caanoo) _host_os=gph-linux @@ -2549,8 +2551,18 @@ if test -n "$_host"; then _port_mk="backends/platform/dingux/dingux.mk" ;; raspberrypi) - # For proper cross-compilation, we assume that the cross-building environment provides - # an sdl-config executable with modified prefix pointing to $RPI_ROOT/usr. + # This is needed because the official cross compiler doesn't have multiarch enabled + # but Raspbian does. + # Be careful as it's the linker (LDFLAGS) which must know about sysroot. + # These are needed to build against Raspbian's libSDL even if we don't activate + # dispmanx support. + LDFLAGS="$LDFLAGS --sysroot=$RPI_ROOT" + LDFLAGS="$LDFLAGS -B$RPI_ROOT/usr/lib/arm-linux-gnueabihf" + LDFLAGS="$LDFLAGS -Xlinker --rpath-link=$RPI_ROOT/usr/lib/arm-linux-gnueabihf" + LDFLAGS="$LDFLAGS -Xlinker --rpath-link=$RPI_ROOT/lib/arm-linux-gnueabihf" + LDFLAGS="$LDFLAGS -Xlinker --rpath-link=$RPI_ROOT/opt/vc/lib" + LDFLAGS="$LDFLAGS -L$RPI_ROOT/opt/vc/lib" + LDFLAGS="$LDFLAGS -L/opt/rpi_root/lib/arm-linux-gnueabihf -L$RPI_ROOT/usr/lib -L$RPI_ROOT/opt/vc/lib -lbcm_host -lvcos" _savegame_timestamp=no _eventrec=no _build_scalers=no @@ -3002,10 +3014,6 @@ case $_backend in LIBS="$LIBS -lpng" LIBS="$LIBS -Wl,-Map,mapfile.txt" ;; - raspberrypi) - LIBS="$LIBS -L$RPI_ROOT/usr/lib" - LIBS="$LIBS -L$RPI_ROOT/usr/lib/arm-linux-gnueabihf" - ;; samsungtv) DEFINES="$DEFINES -DSAMSUNGTV" LDFLAGS="$LDFLAGS -shared" @@ -4074,12 +4082,16 @@ fi define_in_config_if_yes "$_opengl" "USE_OPENGL" define_in_config_if_yes "$_opengles" "USE_GLES" -# Check if Raspberry Pi dispmanx has been activated. +# Check if Raspberry Pi's Dispmanx graphics have been enabled and everything is in place. if test "$_dispmanx" = "yes" ; then echocheck "DispmanX graphics" _use_dispmanx=no - DISPMANX_CXXFLAGS="-I$RPI_ROOT/opt/vc/include -I$RPI_ROOT/opt/vc/include/interface/vmcs_host/linux/ -I$RPI_ROOT/opt/vc/include/interface/vcos/pthreads -I$RPI_ROOT/opt/rpi_root/usr/include/SDL" - DISPMANX_LIBS="--sysroot=$RPI_ROOT -L$RPI_ROOT/usr/lib -L$RPI_ROOT/opt/vc/lib -lbcm_host -lvcos -lvchiq_arm" + + # These are only needed if, appart from cross-building for Raspberry Pi, + # we are activating dispmanx support. + DISPMANX_CXXFLAGS="-I$RPI_ROOT/usr/include/arm-linux-gnueabihf -I$RPI_ROOT/opt/vc/include -I$RPI_ROOT/opt/vc/include/interface/vmcs_host/linux -I$RPI_ROOT/opt/vc/include/interface/vcos/pthreads -I$RPI_ROOT/usr/include/SDL" + DISPMANX_LIBS="$RPI_LIBS -L/opt/rpi_root/lib/arm-linux-gnueabihf -L$RPI_ROOT/usr/lib -L$RPI_ROOT/opt/vc/lib -lbcm_host -lvcos -lvchiq_arm" + cat > $TMPC << EOF #include @@ -4094,6 +4106,7 @@ EOF DEFINES="$DEFINES -DRASPBERRYPI" add_line_to_config_mk 'RASPBERRYPI = 1' echo $_use_dispmanx + else echo "no" fi fi -- cgit v1.2.3