From f3e5a7d29609c37066500194987295f2476fe7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Garc=C3=A9s?= Date: Mon, 23 Oct 2017 14:05:14 +0000 Subject: [PATCH 1/5] emulation: Replace DEVICE and PROJECT variables with TARGET_CPU --- .../emulation/libretro-beetle-pcfx/package.mk | 21 +++------ packages/emulation/libretro-craft/package.mk | 39 ++++++++--------- .../emulation/libretro-desmume/package.mk | 22 +++------- .../emulation/libretro-mame2010/package.mk | 21 +++------ .../emulation/libretro-mame2014/package.mk | 21 +++------ .../emulation/libretro-mupen64plus/package.mk | 43 ++++++++++--------- .../libretro-pcsx-rearmed/package.mk | 33 ++++++-------- packages/emulation/libretro-ppsspp/package.mk | 22 +++------- .../emulation/libretro-reicast/package.mk | 36 +++++++--------- 9 files changed, 103 insertions(+), 155 deletions(-) diff --git a/packages/emulation/libretro-beetle-pcfx/package.mk b/packages/emulation/libretro-beetle-pcfx/package.mk index 3871056aa8..5e8bb72b6e 100644 --- a/packages/emulation/libretro-beetle-pcfx/package.mk +++ b/packages/emulation/libretro-beetle-pcfx/package.mk @@ -34,28 +34,21 @@ PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="BEETLE-PCFX_LIB" make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make platform=armv6-hardfloat - ;; - RPi2) - make platform=armv7-neon-hardfloat - ;; - esac + case $TARGET_CPU in + arm1176jzf-s) + make platform=armv6-hardfloat ;; - imx6) - make platform=armv7-cortexa9-neon-hardfloat + cortex-a7) + make platform=armv7-neon-hardfloat ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + cortex-a9|cortex-a53|cortex-a17) if [ "$TARGET_ARCH" = "aarch64" ]; then make platform=aarch64 else make platform=armv7-cortexa9-neon-hardfloat fi ;; - Generic) + x86-64) make ;; esac diff --git a/packages/emulation/libretro-craft/package.mk b/packages/emulation/libretro-craft/package.mk index 78718ef425..e5a0a8d62c 100644 --- a/packages/emulation/libretro-craft/package.mk +++ b/packages/emulation/libretro-craft/package.mk @@ -40,30 +40,29 @@ pre_configure_target() { } make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make -f Makefile.libretro platform=rpi - ;; - RPi2) - make -f Makefile.libretro platform=rpi2 - ;; - esac - ;; - imx6) - make -f Makefile.libretro platform=imx6 - ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) - if [ "$TARGET_ARCH" = "aarch64" ]; then - make -f Makefile.libretro platform=aarch64 - else - make -f Makefile.libretro platform=armv7-neon-gles-cortex-a9 - fi + + if [ -z "$DEVICE" ]; then + PKG_DEVICE_NAME=$PROJECT + else + PKG_DEVICE_NAME=$DEVICE + fi + + case $PKG_DEVICE_NAME in + RPi|RPi2) + make -f Makefile.libretro platform=${PKG_DEVICE_NAME,,} ;; Generic) make -f Makefile.libretro ;; + *) + if [ "$TARGET_CPU" = "cortex-a9" ] || [ "$TARGET_CPU" = "cortex-a53" ] || [ "$TARGET_CPU" = "cortex-a17" ]; then + if [ "$TARGET_ARCH" = "aarch64" ]; then + make -f Makefile.libretro platform=aarch64 + else + make -f Makefile.libretro platform=armv7-neon-gles-cortex-a9 + fi + fi + ;; esac } diff --git a/packages/emulation/libretro-desmume/package.mk b/packages/emulation/libretro-desmume/package.mk index 025c065421..68631967ca 100644 --- a/packages/emulation/libretro-desmume/package.mk +++ b/packages/emulation/libretro-desmume/package.mk @@ -34,24 +34,14 @@ PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="DESMUME_LIB" make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make -f Makefile.libretro platform=armv6-hardfloat-arm1176jzf-s - ;; - RPi2) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a7 - ;; - esac + case $TARGET_CPU in + arm1176jzf-s) + make -f Makefile.libretro platform=armv6-hardfloat-$TARGET_CPU ;; - imx6) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 + cortex-a7|cortex-a9) + make -f Makefile.libretro platform=armv7-neon-hardfloat-$TARGET_CPU ;; - WeTek_Play|WeTek_Core) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 - ;; - Generic) + x86-64) make -f Makefile.libretro ;; esac diff --git a/packages/emulation/libretro-mame2010/package.mk b/packages/emulation/libretro-mame2010/package.mk index db033dfdc6..cf16d317bd 100644 --- a/packages/emulation/libretro-mame2010/package.mk +++ b/packages/emulation/libretro-mame2010/package.mk @@ -41,28 +41,21 @@ pre_make_target() { } make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make platform=armv6-hardfloat-arm1176jzf-s - ;; - RPi2) - make platform=armv7-neon-hardfloat-cortex-a7 - ;; - esac + case $TARGET_CPU in + arm1176jzf-s) + make platform=armv6-hardfloat-$TARGET_CPU ;; - imx6) - make platform=armv7-neon-hardfloat-cortex-a9 + cortex-a7|cortex-a9) + make platform=armv7-neon-hardfloat-$TARGET_CPU ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + cortex-a53|cortex-a17) if [ "$TARGET_ARCH" = "aarch64" ]; then make platform=aarch64 else make platform=armv7-neon-hardfloat-cortex-a9 fi ;; - Generic) + x86-64) make ;; esac diff --git a/packages/emulation/libretro-mame2014/package.mk b/packages/emulation/libretro-mame2014/package.mk index 236cdf89cb..e14f48f9d9 100644 --- a/packages/emulation/libretro-mame2014/package.mk +++ b/packages/emulation/libretro-mame2014/package.mk @@ -41,28 +41,21 @@ pre_make_target() { } make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make platform=armv6-hardfloat-arm1176jzf-s - ;; - RPi2) - make platform=armv7-neon-hardfloat-cortex-a7 - ;; - esac + case $TARGET_CPU in + arm1176jzf-s) + make platform=armv6-hardfloat-$TARGET_CPU ;; - imx6) - make platform=armv7-neon-hardfloat-cortex-a9 + cortex-a7|cortex-a9) + make platform=armv7-neon-hardfloat-$TARGET_CPU ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) + cortex-a53|cortex-a17) if [ "$TARGET_ARCH" = "aarch64" ]; then make platform=aarch64 else make platform=armv7-neon-hardfloat-cortex-a9 fi ;; - Generic) + x86-64) make ;; esac diff --git a/packages/emulation/libretro-mupen64plus/package.mk b/packages/emulation/libretro-mupen64plus/package.mk index 760d714a5b..8ff945f4c1 100644 --- a/packages/emulation/libretro-mupen64plus/package.mk +++ b/packages/emulation/libretro-mupen64plus/package.mk @@ -34,30 +34,33 @@ PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="MUPEN64PLUS_LIB" make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make platform=rpi - ;; - RPi2) - make platform=rpi2 - ;; - esac - ;; - imx6) - make platform=imx6 - ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) - if [ "$TARGET_ARCH" = "aarch64" ]; then - make platform=aarch64 - else - make platform=armv7-neon-gles-cortex-a9 - fi + + if target_has_feature neon; then + export HAVE_NEON=1 + fi + + if [ -z "$DEVICE" ]; then + PKG_DEVICE_NAME=$PROJECT + else + PKG_DEVICE_NAME=$DEVICE + fi + + case $PKG_DEVICE_NAME in + RPi|RPi2) + make platform=${PKG_DEVICE_NAME,,} ;; Generic) make WITH_DYNAREC=x86_64 ;; + *) + if [ "$TARGET_CPU" = "cortex-a9" ] || [ "$TARGET_CPU" = "cortex-a53" ] || [ "$TARGET_CPU" = "cortex-a17" ]; then + if [ "$TARGET_ARCH" = "aarch64" ]; then + make platform=aarch64 + else + make WITH_DYNAREC=arm + fi + fi + ;; esac } diff --git a/packages/emulation/libretro-pcsx-rearmed/package.mk b/packages/emulation/libretro-pcsx-rearmed/package.mk index b0437ddd55..ae8af2fdd1 100644 --- a/packages/emulation/libretro-pcsx-rearmed/package.mk +++ b/packages/emulation/libretro-pcsx-rearmed/package.mk @@ -40,28 +40,21 @@ pre_make_target() { make_target() { cd $PKG_BUILD - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make -f Makefile.libretro platform=armv6-hardfloat-arm1176jzf-s - ;; - RPi2) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a7 - ;; - esac + + if target_has_feature neon; then + export HAVE_NEON=1 + else + export HAVE_NEON=0 + fi + + case $TARGET_ARCH in + aarch64) + make -f Makefile.libretro platform=aarch64 ;; - imx6) - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 + arm) + make -f Makefile.libretro USE_DYNAREC=1 ;; - WeTek_Play|WeTek_Core|Odroid_C2|WeTek_Hub|WeTek_Play_2) - if [ "$TARGET_ARCH" = "aarch64" ]; then - make -f Makefile.libretro platform=aarch64 - else - make -f Makefile.libretro platform=armv7-neon-hardfloat-cortex-a9 - fi - ;; - Generic) + x86-64) make -f Makefile.libretro ;; esac diff --git a/packages/emulation/libretro-ppsspp/package.mk b/packages/emulation/libretro-ppsspp/package.mk index cf7de27cb1..711002b6de 100644 --- a/packages/emulation/libretro-ppsspp/package.mk +++ b/packages/emulation/libretro-ppsspp/package.mk @@ -45,24 +45,14 @@ pre_make_target() { } make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make -C libretro platform=armv6-gles-hardfloat-arm1176jzf-s - ;; - RPi2) - make -C libretro platform=armv7-neon-gles-hardfloat-cortex-a7 - ;; - esac + case $TARGET_CPU in + arm1176jzf-s) + make -C libretro platform=armv6-gles-hardfloat-$TARGET_CPU ;; - imx6) - make -C libretro platform=armv7-neon-gles-hardfloat-cortex-a9 + cortex-a7|cortex-a9) + make -C libretro platform=armv7-neon-gles-hardfloat-$TARGET_CPU ;; - WeTek_Play|WeTek_Core) - make -C libretro platform=armv7-neon-gles-hardfloat-cortex-a9 - ;; - Generic) + x86-64) make -C libretro ;; esac diff --git a/packages/emulation/libretro-reicast/package.mk b/packages/emulation/libretro-reicast/package.mk index b53a2fa09b..e8f93e9cff 100644 --- a/packages/emulation/libretro-reicast/package.mk +++ b/packages/emulation/libretro-reicast/package.mk @@ -34,27 +34,21 @@ PKG_LIBPATH="$PKG_LIBNAME" PKG_LIBVAR="REICAST_LIB" make_target() { - case $PROJECT in - RPi) - case $DEVICE in - RPi) - make platform=armv6-hardfloat-arm1176jzf-s - ;; - RPi2) - make platform=rpi2 - ;; - esac - ;; - imx6) - make platform=armv7-neon-hardfloat-cortex-a9 - ;; - WeTek_Play|WeTek_Core) - make platform=armv7-neon-hardfloat-cortex-a9 - ;; - Generic) - make - ;; - esac + if [ "$DEVICE" = "RPi2" ]; then + make platform=${DEVICE,,} + else + case $TARGET_CPU in + arm1176jzf-s) + make platform=armv6-hardfloat-$TARGET_CPU + ;; + cortex-a7|cortex-a9) + make platform=armv7-neon-hardfloat-$TARGET_CPU + ;; + x86-64) + make + ;; + esac + fi } makeinstall_target() { From df82e2b77deabf07680465cb56bbe374ce232c47 Mon Sep 17 00:00:00 2001 From: CGarces Date: Thu, 26 Oct 2017 23:35:21 +0200 Subject: [PATCH 2/5] emulation: Fix build errors from libretro-ppsspp. Fix 404 from libretro-ppsspp. Fix ffmeg compilation --- packages/emulation/libretro-ppsspp/package.mk | 36 ++++++++++++------- .../libretro-ppsspp-0004-ffmeg-build.patch | 15 ++++++++ 2 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0004-ffmeg-build.patch diff --git a/packages/emulation/libretro-ppsspp/package.mk b/packages/emulation/libretro-ppsspp/package.mk index 711002b6de..421342ce97 100644 --- a/packages/emulation/libretro-ppsspp/package.mk +++ b/packages/emulation/libretro-ppsspp/package.mk @@ -17,8 +17,8 @@ ################################################################################ PKG_NAME="libretro-ppsspp" -PKG_VERSION="9145287" -PKG_SHA256="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" +PKG_VERSION="5f7bcf7" +PKG_SHA256="09e61300c05705b1f98e1b575e44d366e5a243cc3be97b3a09ad420581459f87" PKG_ARCH="any" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/libretro-ppsspp" @@ -45,17 +45,27 @@ pre_make_target() { } make_target() { - case $TARGET_CPU in - arm1176jzf-s) - make -C libretro platform=armv6-gles-hardfloat-$TARGET_CPU - ;; - cortex-a7|cortex-a9) - make -C libretro platform=armv7-neon-gles-hardfloat-$TARGET_CPU - ;; - x86-64) - make -C libretro - ;; - esac + if [ -z "$DEVICE" ]; then + PKG_DEVICE_NAME=$PROJECT + else + PKG_DEVICE_NAME=$DEVICE + fi + + if [ "$PKG_DEVICE_NAME" = "RPi" ]; then + make -C libretro platform=${DEVICE,,} + else + case $TARGET_CPU in + arm1176jzf-s) + make -C libretro CC=$CC CXX=$CXX platform=armv6-gles-hardfloat-$TARGET_CPU + ;; + cortex-a7|cortex-a9) + make -C libretro CC=$CC CXX=$CXX platform=armv7-neon-gles-hardfloat-$TARGET_CPU + ;; + x86-64) + make -C libretro CC=$CC CXX=$CXX + ;; + esac + fi } makeinstall_target() { diff --git a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0004-ffmeg-build.patch b/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0004-ffmeg-build.patch new file mode 100644 index 0000000000..a703ce142a --- /dev/null +++ b/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0004-ffmeg-build.patch @@ -0,0 +1,15 @@ +--- a/Core/HLE/sceMpeg.cpp ++++ b/Core/HLE/sceMpeg.cpp +@@ -768,10 +768,10 @@ + // GE_CMODE_16BIT_ABGR5551 <--> AV_PIX_FMT_BGR555LE; + // GE_CMODE_16BIT_ABGR4444 <--> AV_PIX_FMT_BGR444LE; + // GE_CMODE_32BIT_ABGR8888 <--> AV_PIX_FMT_RGBA; +- pmp_want_pix_fmt = PIX_FMT_RGBA; ++ pmp_want_pix_fmt = AV_PIX_FMT_RGBA; + + // Create H264 video codec +- AVCodec * pmp_Codec = avcodec_find_decoder(CODEC_ID_H264); ++ AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264); + if (pmp_Codec == NULL){ + ERROR_LOG(ME, "Can not find H264 codec, please update ffmpeg"); + return false; From bf435abfbf458fe8ae78fd7e46df54531f4949a4 Mon Sep 17 00:00:00 2001 From: CGarces Date: Sun, 29 Oct 2017 22:09:32 +0100 Subject: [PATCH 3/5] emulation: libretro-desmume changed to active mantained project. --- packages/emulation/libretro-desmume/package.mk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/emulation/libretro-desmume/package.mk b/packages/emulation/libretro-desmume/package.mk index 68631967ca..832e402ccd 100644 --- a/packages/emulation/libretro-desmume/package.mk +++ b/packages/emulation/libretro-desmume/package.mk @@ -17,32 +17,32 @@ ################################################################################ PKG_NAME="libretro-desmume" -PKG_VERSION="1dd58e4" -PKG_SHA256="0cc647defbbfbe0995e4dfe825e5bf67345ad1f9d8e7e29cdb94c32032c490c4" +PKG_VERSION="9464582" +PKG_SHA256="706af70135e1a33845d1b24163b9ab496f61219c958598d90d2283f6b4ee79b9" PKG_ARCH="any" PKG_LICENSE="GPLv2" -PKG_SITE="https://github.com/libretro/desmume-libretro" -PKG_URL="https://github.com/libretro/desmume-libretro/archive/$PKG_VERSION.tar.gz" -PKG_SOURCE_DIR="desmume-libretro-$PKG_VERSION*" +PKG_SITE="https://github.com/libretro/desmume" +PKG_URL="https://github.com/libretro/desmume/archive/$PKG_VERSION.tar.gz" +PKG_SOURCE_DIR="desmume-$PKG_VERSION*" PKG_DEPENDS_TARGET="toolchain kodi-platform" PKG_SECTION="emulation" PKG_SHORTDESC="libretro wrapper for desmume NDS emulator." PKG_LONGDESC="libretro wrapper for desmume NDS emulator." PKG_LIBNAME="desmume_libretro.so" -PKG_LIBPATH="$PKG_LIBNAME" +PKG_LIBPATH="desmume/$PKG_LIBNAME" PKG_LIBVAR="DESMUME_LIB" make_target() { case $TARGET_CPU in arm1176jzf-s) - make -f Makefile.libretro platform=armv6-hardfloat-$TARGET_CPU + make -C desmume -f Makefile.libretro platform=armv6-hardfloat-$TARGET_CPU ;; cortex-a7|cortex-a9) - make -f Makefile.libretro platform=armv7-neon-hardfloat-$TARGET_CPU + make -C desmume -f Makefile.libretro platform=armv7-neon-hardfloat-$TARGET_CPU ;; x86-64) - make -f Makefile.libretro + make -C desmume -f Makefile.libretro ;; esac } From 1d77bdc8db0df414d119cc162f97b6cb5ac36e6a Mon Sep 17 00:00:00 2001 From: CGarces Date: Fri, 3 Nov 2017 00:07:46 +0100 Subject: [PATCH 4/5] emulation: Fixed compilation issue with libretro-mupen64plus --- packages/emulation/libretro-mupen64plus/package.mk | 2 +- packages/emulation/libretro-reicast/package.mk | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/emulation/libretro-mupen64plus/package.mk b/packages/emulation/libretro-mupen64plus/package.mk index 8ff945f4c1..7b4047fd2b 100644 --- a/packages/emulation/libretro-mupen64plus/package.mk +++ b/packages/emulation/libretro-mupen64plus/package.mk @@ -57,7 +57,7 @@ make_target() { if [ "$TARGET_ARCH" = "aarch64" ]; then make platform=aarch64 else - make WITH_DYNAREC=arm + make platform=linux-gles FORCE_GLES=1 WITH_DYNAREC=arm fi fi ;; diff --git a/packages/emulation/libretro-reicast/package.mk b/packages/emulation/libretro-reicast/package.mk index e8f93e9cff..c4338fb33f 100644 --- a/packages/emulation/libretro-reicast/package.mk +++ b/packages/emulation/libretro-reicast/package.mk @@ -39,10 +39,10 @@ make_target() { else case $TARGET_CPU in arm1176jzf-s) - make platform=armv6-hardfloat-$TARGET_CPU + make platform=arm FORCE_GLES=1 ;; cortex-a7|cortex-a9) - make platform=armv7-neon-hardfloat-$TARGET_CPU + make platform=armv7-neon-hardfloat-$TARGET_CPU FORCE_GLES=1 ;; x86-64) make From 054cceade59bb9af10d7d07dc80eaabeeeeeba06 Mon Sep 17 00:00:00 2001 From: Carlos Garces Date: Sun, 4 Feb 2018 22:24:27 +0100 Subject: [PATCH 5/5] Add PKG_TOOLCHAIN to fix compilation error --- packages/emulation/libretro-desmume/package.mk | 1 + packages/emulation/libretro-ppsspp/package.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/emulation/libretro-desmume/package.mk b/packages/emulation/libretro-desmume/package.mk index 832e402ccd..1ec8377c7e 100644 --- a/packages/emulation/libretro-desmume/package.mk +++ b/packages/emulation/libretro-desmume/package.mk @@ -28,6 +28,7 @@ PKG_DEPENDS_TARGET="toolchain kodi-platform" PKG_SECTION="emulation" PKG_SHORTDESC="libretro wrapper for desmume NDS emulator." PKG_LONGDESC="libretro wrapper for desmume NDS emulator." +PKG_TOOLCHAIN="make" PKG_LIBNAME="desmume_libretro.so" PKG_LIBPATH="desmume/$PKG_LIBNAME" diff --git a/packages/emulation/libretro-ppsspp/package.mk b/packages/emulation/libretro-ppsspp/package.mk index 421342ce97..c9ea741ff0 100644 --- a/packages/emulation/libretro-ppsspp/package.mk +++ b/packages/emulation/libretro-ppsspp/package.mk @@ -27,6 +27,7 @@ PKG_DEPENDS_TARGET="toolchain kodi-platform" PKG_SECTION="emulation" PKG_SHORTDESC="A PSP emulator for Android, Windows, Mac, Linux and Blackberry 10, written in C++." PKG_LONGDESC="A PSP emulator for Android, Windows, Mac, Linux and Blackberry 10, written in C++." +PKG_TOOLCHAIN="make" PKG_LIBNAME="ppsspp_libretro.so" PKG_LIBPATH="libretro/$PKG_LIBNAME"