diff options
-rw-r--r-- | emulators/Makefile | 3 | ||||
-rw-r--r-- | emulators/libretro-mgba/DESCR | 10 | ||||
-rw-r--r-- | emulators/libretro-mgba/Makefile | 46 | ||||
-rw-r--r-- | emulators/libretro-mgba/PLIST | 5 | ||||
-rw-r--r-- | emulators/libretro-mgba/distinfo | 9 | ||||
-rw-r--r-- | emulators/libretro-mgba/patches/patch-CMakeLists.txt | 28 | ||||
-rw-r--r-- | emulators/libretro-mgba/patches/patch-include_mgba-util_math.h | 22 | ||||
-rw-r--r-- | emulators/libretro-mgba/patches/patch-version.cmake | 30 |
8 files changed, 152 insertions, 1 deletions
diff --git a/emulators/Makefile b/emulators/Makefile index 69051738880..fd12080affb 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.269 2018/08/12 13:22:43 nia Exp $ +# $NetBSD: Makefile,v 1.270 2018/08/12 14:25:09 nia Exp $ # COMMENT= Emulators for other operating systems @@ -101,6 +101,7 @@ SUBDIR+= libretro-fuse SUBDIR+= libretro-gambatte SUBDIR+= libretro-genesis-plus-gx SUBDIR+= libretro-glsl-shaders +SUBDIR+= libretro-mgba SUBDIR+= libretro-mupen64plus SUBDIR+= libretro-nestopia SUBDIR+= libretro-pcsx-rearmed diff --git a/emulators/libretro-mgba/DESCR b/emulators/libretro-mgba/DESCR new file mode 100644 index 00000000000..6feb98cfccd --- /dev/null +++ b/emulators/libretro-mgba/DESCR @@ -0,0 +1,10 @@ +Libretro is a simple but powerful development interface that allows for the +easy creation of emulators, games and multimedia applications that can plug +straight into any libretro-compatible frontend. This development interface is +open to others so that they can run these pluggable emulator and game cores +also in their own programs or devices. + +mGBA is an emulator for running Game Boy Advance games. It aims to be faster +and more accurate than many existing Game Boy Advance emulators, as well as +adding features that other emulators lack. It also supports Game Boy and +Game Boy Color games. diff --git a/emulators/libretro-mgba/Makefile b/emulators/libretro-mgba/Makefile new file mode 100644 index 00000000000..7c2e4bbd94c --- /dev/null +++ b/emulators/libretro-mgba/Makefile @@ -0,0 +1,46 @@ +# $NetBSD: Makefile,v 1.1 2018/08/12 14:25:09 nia Exp $ + +DISTNAME= libretro-mgba-0.6.3 +CATEGORIES= emulators +MASTER_SITES= ${MASTER_SITE_GITHUB:=mgba-emu/} +GITHUB_PROJECT= mgba + +MAINTAINER= nia@NetBSD.org +HOMEPAGE= https://docs.libretro.com/library/mgba/ +COMMENT= Libretro core based on the mGBA emulator +LICENSE= mpl-2.0 + +EXTRACT_USING= bsdtar +USE_TOOLS+= pkg-config +USE_CMAKE= yes + +WRKSRC= ${WRKDIR}/mgba-${PKGVERSION_NOREV} + +CMAKE_ARGS+= -DUSE_DEBUGGERS=OFF +CMAKE_ARGS+= -DUSE_GDB_STUB=OFF + +CMAKE_ARGS+= -DUSE_EDITLINE=OFF +CMAKE_ARGS+= -DUSE_FFMPEG=OFF +CMAKE_ARGS+= -DUSE_ZLIB=OFF +CMAKE_ARGS+= -DUSE_MINIZIP=OFF +CMAKE_ARGS+= -DUSE_PNG=OFF +CMAKE_ARGS+= -DUSE_LIBZIP=OFF +CMAKE_ARGS+= -DUSE_MAGICK=OFF +CMAKE_ARGS+= -DUSE_SQLITE3=OFF +CMAKE_ARGS+= -DUSE_LZMA=OFF +CMAKE_ARGS+= -DUSE_EPOXY=OFF + +CMAKE_ARGS+= -DBUILD_QT=OFF +CMAKE_ARGS+= -DBUILD_SDL=OFF +CMAKE_ARGS+= -DBUILD_GL=OFF + +CMAKE_ARGS+= -DBUILD_LIBRETRO=ON +CMAKE_ARGS+= -DSKIP_LIBRARY=ON +CMAKE_ARGS+= -DLIBRETRO_LIBDIR=${PREFIX}/lib/libretro + +CFLAGS+= -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 + +INSTALLATION_DIRS+= ${PREFIX}/lib/libretro + +.include "../../mk/pthread.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/emulators/libretro-mgba/PLIST b/emulators/libretro-mgba/PLIST new file mode 100644 index 00000000000..4dac1363654 --- /dev/null +++ b/emulators/libretro-mgba/PLIST @@ -0,0 +1,5 @@ +@comment $NetBSD: PLIST,v 1.1 2018/08/12 14:25:09 nia Exp $ +include/mgba/flags.h +lib/libretro/mgba_libretro.so +share/doc/mGBA/CHANGES +share/doc/mGBA/README.md diff --git a/emulators/libretro-mgba/distinfo b/emulators/libretro-mgba/distinfo new file mode 100644 index 00000000000..5739e6e7f61 --- /dev/null +++ b/emulators/libretro-mgba/distinfo @@ -0,0 +1,9 @@ +$NetBSD: distinfo,v 1.1 2018/08/12 14:25:09 nia Exp $ + +SHA1 (libretro-mgba-0.6.3.tar.gz) = b90d59af4ef43d0faf98f48f66514a51aa677296 +RMD160 (libretro-mgba-0.6.3.tar.gz) = a9d5cbc4f77a6ca1883707bef92313d77cf2a824 +SHA512 (libretro-mgba-0.6.3.tar.gz) = d646af7869dbcf8df671a75ecfd8c270950c013b826b23b94bacae43a77243786f198725e1b9bf17827d1ffcf6a8eef70091d53ea878bfb2450472485f42f233 +Size (libretro-mgba-0.6.3.tar.gz) = 7442154 bytes +SHA1 (patch-CMakeLists.txt) = ec56af8fed90cd6486d797fd18fd69ac6eb00d3d +SHA1 (patch-include_mgba-util_math.h) = 448ca1bb3bbe2812e7d9482917c488ddcf3b48f0 +SHA1 (patch-version.cmake) = 973e3b397b807be1c228e96d559f98a4d1091bae diff --git a/emulators/libretro-mgba/patches/patch-CMakeLists.txt b/emulators/libretro-mgba/patches/patch-CMakeLists.txt new file mode 100644 index 00000000000..c13744944ec --- /dev/null +++ b/emulators/libretro-mgba/patches/patch-CMakeLists.txt @@ -0,0 +1,28 @@ +$NetBSD: patch-CMakeLists.txt,v 1.1 2018/08/12 14:25:09 nia Exp $ + +Avoid checking for a C++ compiler, since C++ isn't required for a +libretro build. + +vfs-dirent peeks into non-standard structures and also isn't required +for a libretro build. + +--- CMakeLists.txt.orig 2018-04-14 20:49:19.000000000 +0000 ++++ CMakeLists.txt +@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.11) + if(POLICY CMP0025) + cmake_policy(SET CMP0025 NEW) + endif() +-project(mGBA) ++project(mGBA C) + set(BINARY_NAME mgba CACHE INTERNAL "Name of output binaries") + if(NOT MSVC) + set(GCC_STD "c99") +@@ -231,7 +231,7 @@ elseif(UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") + endif() + +- list(APPEND CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-dirent.c) ++ list(APPEND CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c) + file(GLOB OS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/posix/*.c) + source_group("POSIX-specific code" FILES ${OS_SRC}) + endif() diff --git a/emulators/libretro-mgba/patches/patch-include_mgba-util_math.h b/emulators/libretro-mgba/patches/patch-include_mgba-util_math.h new file mode 100644 index 00000000000..65ef848ac4b --- /dev/null +++ b/emulators/libretro-mgba/patches/patch-include_mgba-util_math.h @@ -0,0 +1,22 @@ +$NetBSD: patch-include_mgba-util_math.h,v 1.1 2018/08/12 14:25:09 nia Exp $ + +NetBSD defines popcount32 in libc. + +--- include/mgba-util/math.h.orig 2017-07-16 19:04:50.000000000 +0000 ++++ include/mgba-util/math.h +@@ -10,11 +10,15 @@ + + CXX_GUARD_START + ++#ifndef __NetBSD__ + static inline uint32_t popcount32(unsigned bits) { + bits = bits - ((bits >> 1) & 0x55555555); + bits = (bits & 0x33333333) + ((bits >> 2) & 0x33333333); + return (((bits + (bits >> 4)) & 0xF0F0F0F) * 0x1010101) >> 24; + } ++#else ++unsigned int popcount32(uint32_t); ++#endif + + static inline unsigned clz32(uint32_t bits) { + #if defined(__GNUC__) || __clang__ diff --git a/emulators/libretro-mgba/patches/patch-version.cmake b/emulators/libretro-mgba/patches/patch-version.cmake new file mode 100644 index 00000000000..2558fee61d3 --- /dev/null +++ b/emulators/libretro-mgba/patches/patch-version.cmake @@ -0,0 +1,30 @@ +$NetBSD: patch-version.cmake,v 1.1 2018/08/12 14:25:09 nia Exp $ + +Avoid looking for git to determine the version string. + +Correct version string. + +--- version.cmake.orig 2018-04-14 20:49:19.000000000 +0000 ++++ version.cmake +@@ -3,20 +3,11 @@ if(NOT PROJECT_NAME) + endif() + set(LIB_VERSION_MAJOR 0) + set(LIB_VERSION_MINOR 6) +-set(LIB_VERSION_PATCH 1) ++set(LIB_VERSION_PATCH 3) + set(LIB_VERSION_ABI 0.6) + set(LIB_VERSION_STRING ${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${LIB_VERSION_PATCH}) + set(SUMMARY "${PROJECT_NAME} Game Boy Advance Emulator") + +-find_program(GIT git) +-if(GIT AND NOT SKIP_GIT) +- execute_process(COMMAND ${GIT} describe --always --abbrev=40 --dirty WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_COMMIT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +- execute_process(COMMAND ${GIT} describe --always --dirty WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_COMMIT_SHORT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +- execute_process(COMMAND ${GIT} symbolic-ref --short HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_BRANCH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +- execute_process(COMMAND ${GIT} rev-list HEAD --count WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_REV ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +- execute_process(COMMAND ${GIT} describe --tag --exact-match WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_TAG ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +-endif() +- + if(NOT GIT_REV) + set(GIT_REV -1) + endif() |