From 351e23a527a9fb858f65fe1f3afa0e7f1e15d2c8 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 14 Jan 2020 07:27:39 +0100 Subject: [PATCH] libretro-mame: fix cross compilation Don't set PTR64=0 on 32bit archs, instead set ARCHITECTURE to an empty string. That way we don't need to patch out hardcoded -m32 arguments. While at it, disable the bgfx hw renderers, or that pile of build crap tries to include X11 headers. --- packages/emulation/libretro-mame/package.mk | 19 ++++++++----------- .../libretro-mame/patches/bgfx.patch | 11 +++++++++++ .../libretro-mame/patches/genie.patch | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 packages/emulation/libretro-mame/patches/bgfx.patch create mode 100644 packages/emulation/libretro-mame/patches/genie.patch diff --git a/packages/emulation/libretro-mame/package.mk b/packages/emulation/libretro-mame/package.mk index 60c5d85ee1..307d402c4c 100644 --- a/packages/emulation/libretro-mame/package.mk +++ b/packages/emulation/libretro-mame/package.mk @@ -17,21 +17,18 @@ PKG_LIBNAME="mame_libretro.so" PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="MAME_LIB" -make_target() { - PTR64="0" - NOASM="0" +pre_make_target() { + PKG_MAKE_OPTS_TARGET=" \ + REGENIE=1 VERBOSE=1 NOWERROR=1 PYTHON_EXECUTABLE=python3 CONFIG=libretro \ + LIBRETRO_OS="unix" ARCH="" PROJECT="" LIBRETRO_CPU="${ARCH}" DISTRO="debian-stable" \ + CROSS_BUILD="1" OVERRIDE_CC="${CC}" OVERRIDE_CXX="${CXX}" \ + TARGET="mame" SUBTARGET="arcade" PLATFORM="${ARCH}" RETRO=1 OSD="retro"" if [ "$ARCH" = "arm" ]; then - NOASM="1" + PKG_MAKE_OPTS_TARGET+=" NOASM="1" ARCHITECTURE=""" elif [ "$ARCH" = "x86_64" ]; then - PTR64="1" + PKG_MAKE_OPTS_TARGET+=" NOASM="0" PTR64="1"" fi - - make REGENIE=1 VERBOSE=1 NOWERROR=1 PYTHON_EXECUTABLE=python3 CONFIG=libretro \ - LIBRETRO_OS="unix" ARCH="" PROJECT="" LIBRETRO_CPU="$ARCH" DISTRO="debian-stable" \ - CROSS_BUILD="1" OVERRIDE_CC="$CC" OVERRIDE_CXX="$CXX" \ - PTR64="$PTR64" TARGET="mame" \ - SUBTARGET="arcade" PLATFORM="$ARCH" RETRO=1 OSD="retro" } post_make_target() { diff --git a/packages/emulation/libretro-mame/patches/bgfx.patch b/packages/emulation/libretro-mame/patches/bgfx.patch new file mode 100644 index 0000000000..61658ab385 --- /dev/null +++ b/packages/emulation/libretro-mame/patches/bgfx.patch @@ -0,0 +1,11 @@ +--- a/3rdparty/bgfx/src/config.h 2020-01-14 08:42:35.023108564 +0100 ++++ b/3rdparty/bgfx/src/config.h 2020-01-14 08:42:39.527041246 +0100 +@@ -12,7 +12,7 @@ + # define BGFX_CONFIG_DEBUG 0 + #endif // BGFX_CONFIG_DEBUG + +-#if !defined(BGFX_CONFIG_RENDERER_DIRECT3D9) \ ++#if 0 && !defined(BGFX_CONFIG_RENDERER_DIRECT3D9) \ + && !defined(BGFX_CONFIG_RENDERER_DIRECT3D11) \ + && !defined(BGFX_CONFIG_RENDERER_DIRECT3D12) \ + && !defined(BGFX_CONFIG_RENDERER_METAL) \ diff --git a/packages/emulation/libretro-mame/patches/genie.patch b/packages/emulation/libretro-mame/patches/genie.patch new file mode 100644 index 0000000000..b4bb2c54dd --- /dev/null +++ b/packages/emulation/libretro-mame/patches/genie.patch @@ -0,0 +1,17 @@ +--- a/3rdparty/genie/build/gmake.linux/genie.make 2020-01-14 06:27:22.077161784 +0100 ++++ b/3rdparty/genie/build/gmake.linux/genie.make 2020-01-14 06:27:49.856857764 +0100 +@@ -28,8 +28,12 @@ + RM = $(SILENT) del /F "$(subst /,\\,$(1))" 2> nul || exit 0 + endif + +-CC = gcc +-CXX = g++ ++CC = $(HOST_CC) ++CXX = $(HOST_CXX) ++CPPFLAGS = $(HOST_CPPFLAGS) ++CFLAGS = $(HOST_CFLAGS) ++CXXFLAGS = $(HOST_CXXFLAGS) ++LDFLAGS = $(HOST_LDFLAGS) + AR = ar + + ifndef RESCOMP