diff --git a/packages/emulation/libretro-ppsspp/package.mk b/packages/emulation/libretro-ppsspp/package.mk index 7961adeb0a..ba9ed73afd 100644 --- a/packages/emulation/libretro-ppsspp/package.mk +++ b/packages/emulation/libretro-ppsspp/package.mk @@ -17,55 +17,30 @@ ################################################################################ PKG_NAME="libretro-ppsspp" -PKG_VERSION="9145287" -PKG_SHA256="e209a04cd076855e4a8e644ddb1035eda919d81adef7ed1321de5b9f2fce8881" -PKG_ARCH="any" +PKG_VERSION="7f88688" +PKG_SHA256="4e7c5c40fb16021bf99c56392d2a105c0739aa975540513dba8f6e7044e2f88a" +PKG_ARCH="x86_64" PKG_LICENSE="GPLv2" -PKG_SITE="https://github.com/libretro/libretro-ppsspp" +PKG_SITE="https://github.com/hrydgard/ppsspp" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_DEPENDS_TARGET="toolchain glew kodi-platform SDL2 zlib" 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_TOOLCHAIN="cmake-make" PKG_LIBNAME="ppsspp_libretro.so" -PKG_LIBPATH="libretro/$PKG_LIBNAME" +PKG_LIBPATH="lib/$PKG_LIBNAME" PKG_LIBVAR="PPSSPP_LIB" +PKG_CMAKE_OPTS_TARGET="-DLIBRETRO=ON" + pre_configure_target() { - # fails to build in subdirs - cd $PKG_BUILD - rm -rf .$TARGET_NAME + LDFLAGS="$LDFLAGS -lpthread" } pre_make_target() { - export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads" - export CXXFLAGS="$CXXFLAGS -I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads" -} - -make_target() { - 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 + find . -name flags.make -exec sed -i "s:isystem :I:g" \{} \; } makeinstall_target() { diff --git a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0002-aarch64-support.patch b/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0002-aarch64-support.patch deleted file mode 100644 index 2139780e7d..0000000000 --- a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0002-aarch64-support.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur a/libretro/Makefile b/libretro/Makefile ---- a/libretro/Makefile 2016-05-10 10:13:03.235599098 -0700 -+++ b/libretro/Makefile 2016-05-10 10:41:33.975635164 -0700 -@@ -237,6 +237,23 @@ - PLATCFLAGS += -DARM - LDFLAGS += -lrt -ldl - -+# aarch64 -+else ifneq (,$(findstring aarch64,$(platform))) -+ CC ?= gcc -+ CXX ?= g++ -+ TARGET := $(TARGET_NAME)_libretro.so -+ fpic := -fPIC -+ LDFLAGS += -shared -Wl,--version-script=link.T -Wl,--no-undefined -+ FFMPEGINCFLAGS += -I$(FFMPEGDIR)/linux/$(FFMPEG_ARCH)/include -+ FFMPEGLIBDIR := $(FFMPEGDIR)/linux/$(FFMPEG_ARCH)/lib -+ FFMPEGLDFLAGS += -L$(FFMPEGLIBDIR) -lavformat -lavcodec -lavutil -lswresample -lswscale -+ INCFLAGS += -I. -+ WITH_DYNAREC=arm64 -+ GLES := 1 -+ GL_LIB := -lGLESv2 -lEGL -+ LDFLAGS += -lGLESv2 -lEGL -+ LDFLAGS += -lrt -ldl -+ - # emscripten - else ifeq ($(platform), emscripten) - TARGET := $(TARGET_NAME)_libretro_emscripten.bc diff --git a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0003-ffmpeg-aarch64.patch b/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0003-ffmpeg-aarch64.patch deleted file mode 100644 index f6f5c7ef9b..0000000000 --- a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0003-ffmpeg-aarch64.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff -Naur a/ffmpeg/linux_aarch64.sh b/ffmpeg/linux_aarch64.sh ---- a/ffmpeg/linux_aarch64.sh 1969-12-31 16:00:00.000000000 -0800 -+++ b/ffmpeg/linux_aarch64.sh 2016-05-10 10:27:20.971393139 -0700 -@@ -0,0 +1,100 @@ -+#!/bin/bash -+ -+GENERAL="\ -+ --enable-cross-compile \ -+ --extra-libs="-lgcc" \ -+ --arch=aarch64 \ -+ --cc=aarch64-libreelec-linux-gnueabi-gcc \ -+ --cross-prefix=aarch64-libreelec-linux-gnueabi- \ -+ --nm=aarch64-libreelec-linux-gnueabi-nm" -+ -+MODULES="\ -+ --disable-avdevice \ -+ --disable-filters \ -+ --disable-programs \ -+ --disable-network \ -+ --disable-avfilter \ -+ --disable-postproc \ -+ --disable-encoders \ -+ --disable-protocols \ -+ --disable-hwaccels \ -+ --disable-doc" -+ -+VIDEO_DECODERS="\ -+ --enable-decoder=h264 \ -+ --enable-decoder=mpeg4 \ -+ --enable-decoder=mpeg2video \ -+ --enable-decoder=mjpeg \ -+ --enable-decoder=mjpegb" -+ -+AUDIO_DECODERS="\ -+ --enable-decoder=aac \ -+ --enable-decoder=aac_latm \ -+ --enable-decoder=atrac3 \ -+ --enable-decoder=atrac3p \ -+ --enable-decoder=mp3 \ -+ --enable-decoder=pcm_s16le \ -+ --enable-decoder=pcm_s8" -+ -+DEMUXERS="\ -+ --enable-demuxer=h264 \ -+ --enable-demuxer=m4v \ -+ --enable-demuxer=mpegvideo \ -+ --enable-demuxer=mpegps \ -+ --enable-demuxer=mp3 \ -+ --enable-demuxer=avi \ -+ --enable-demuxer=aac \ -+ --enable-demuxer=pmp \ -+ --enable-demuxer=oma \ -+ --enable-demuxer=pcm_s16le \ -+ --enable-demuxer=pcm_s8 \ -+ --enable-demuxer=wav" -+ -+VIDEO_ENCODERS="\ -+ --enable-encoder=huffyuv \ -+ --enable-encoder=ffv1 \ -+ --enable-encoder=mjpeg" -+ -+AUDIO_ENCODERS="\ -+ --enable-encoder=pcm_s16le" -+ -+MUXERS="\ -+ --enable-muxer=avi" -+ -+ -+PARSERS="\ -+ --enable-parser=h264 \ -+ --enable-parser=mpeg4video \ -+ --enable-parser=mpegaudio \ -+ --enable-parser=mpegvideo \ -+ --enable-parser=aac \ -+ --enable-parser=aac_latm" -+ -+ -+function build_aarch64 -+{ -+./configure --target-os=linux \ -+ --prefix=./linux/aarch64 \ -+ ${GENERAL} \ -+ --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300" \ -+ --disable-shared \ -+ --enable-static \ -+ --enable-zlib \ -+ --enable-pic \ -+ --disable-everything \ -+ ${MODULES} \ -+ ${VIDEO_DECODERS} \ -+ ${AUDIO_DECODERS} \ -+ ${VIDEO_ENCODERS} \ -+ ${AUDIO_ENCODERS} \ -+ ${DEMUXERS} \ -+ ${MUXERS} \ -+ ${PARSERS} \ -+ --disable-neon -+ -+make clean -+make install -+} -+ -+build_aarch64 -+echo Linux aarch64 build finished 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 deleted file mode 100644 index a703ce142a..0000000000 --- a/packages/emulation/libretro-ppsspp/patches/libretro-ppsspp-0004-ffmeg-build.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- 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;