1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-30 01:15:52 +00:00

New port: games/retroarch

RetroArch is the reference frontend for the libretro API. Popular examples
of implementations for this API includes videogame system emulators and
game engines, but also more generalized 3D programs. These programs are
instantiated as dynamic libraries. We refer to these as "libretro cores".

WWW: http://github.com/libretro/RetroArch

PR:		204347
Submitted by:	yuri@rawbw.com
This commit is contained in:
Kurt Jaeger 2015-11-14 13:51:27 +00:00
parent d420c46152
commit 5c787d38b8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=401567
8 changed files with 169 additions and 0 deletions

View File

@ -835,6 +835,7 @@
SUBDIR += reminiscence
SUBDIR += rescue
SUBDIR += residualvm
SUBDIR += retroarch
SUBDIR += rezerwar
SUBDIR += rfksay
SUBDIR += ri-li

90
games/retroarch/Makefile Normal file
View File

@ -0,0 +1,90 @@
# Created by: Yuri Victorovich <yuri@rawbw.com>
# $FreeBSD$
PORTNAME= RetroArch
PORTVERSION= 1.2.2
DISTVERSIONPREFIX= v
CATEGORIES= games
MAINTAINER= yuri@rawbw.com
COMMENT= Cross-platform entertainment system based on libretro API
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libxkbcommon.so:${PORTSDIR}/x11/libxkbcommon
OPTIONS_DEFINE= FFMPEG OSS JACK PULSEAUDIO ALSA SDL OPENGL OPENAL NETPLAY PYTHON V4L FREETYPE FBO
OPTIONS_DEFAULT=FFMPEG OSS PULSEAUDIO SDL OPENGL OPENAL NETPLAY PYTHON V4L FREETYPE FBO
FFMPEG_DESC= On-the-fly recording of gameplay with libavcodec
NETPLAY_DESC= Peer-to-peer netplay
PYTHON_DESC= Script support in shaders
FBO_DESC= OpenGL render-to-texture
FFMPEG_LIB_DEPENDS= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
FFMPEG_CONFIGURE_ENABLE=ffmpeg
OSS_CONFIGURE_ENABLE= oss
JACK_LIB_DEPENDS= libjack.so:${PORTSDIR}/audio/jack
JACK_CONFIGURE_ENABLE= jack
PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio
PULSEAUDIO_CONFIGURE_ENABLE= pulse
ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib
ALSA_CONFIGURE_ENABLE= alsa
SDL_USE= SDL=sdl2 image2
SDL_CONFIGURE_ON= --disable-sdl --enable-sdl2
SDL_CONFIGURE_OFF= --disable-sdl --disable-sdl2
OPENGL_USE= GL=gl
OPENGL_CONFIGURE_ENABLE=opengl
OPENAL_USES= openal:soft
OPENAL_CONFIGURE_ENABLE=al
NETPLAY_CONFIGURE_ENABLE= netplay
PYTHON_CONFIGURE_ENABLE=python
PYTHON_USES= python:3.4+
V4L_LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
V4L_CONFIGURE_ENABLE= v4l2
FREETYPE_LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2
FREETYPE_CONFIGURE_ENABLE= freetype
FBO_CONFIGURE_ENABLE= fbo
CFLAGS+= -pthread
LDFLAGS+= -pthread
CONFIGURE_ARGS+=--enable-threads
USE_GITHUB= yes
GH_ACCOUNT= libretro
SUB_FILES= pkg-message
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--global-config-dir=${LOCALBASE}/etc
USES= compiler:c++11-lib gmake
USE_XORG= x11 xext xinerama xv xxf86vm
MAN1PAGES= retroarch-cg2glsl.1 retroarch-joyconfig.1 retroarch.1
post-patch:
@${REINPLACE_CMD} -e 's|<malloc.h>|<stdlib.h>|' \
${WRKSRC}/camera/drivers/video4linux2.c \
${WRKSRC}/deps/zlib/zutil.h \
${WRKSRC}/gfx/drivers/*.c \
${WRKSRC}/libretro-common/formats/png/rpng_decode.c \
${WRKSRC}/libretro-common/libco/armeabi.c \
${WRKSRC}/logger/netlogger/psl1ght_logger.c \
${WRKSRC}/wii/mem2_manager.c
@${REINPLACE_CMD} -e 's|<asm/types.h>|<sys/types.h>|' \
${WRKSRC}/camera/drivers/video4linux2.c
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
${WRKSRC}/qb/config.libs.sh
post-install:
if [ -n "${STRIP}" ]; then \
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/retroarch; \
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/retroarch-joyconfig; \
fi
${GZIP_CMD} ${STAGEDIR}${PREFIX}/man/man1/retroarch.1
${GZIP_CMD} ${STAGEDIR}${PREFIX}/man/man1/retroarch-cg2glsl.1
${GZIP_CMD} ${STAGEDIR}${PREFIX}/man/man1/retroarch-joyconfig.1
${RM} -rf ${STAGEDIR}${PREFIX}/share/man
@${REINPLACE_CMD} -e 's|# libretro_directory =|libretro_directory = "${PREFIX}/libexec/libretro"|' \
${STAGEDIR}${PREFIX}/etc/retroarch.cfg
.include <bsd.port.mk>

2
games/retroarch/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (libretro-RetroArch-v1.2.2_GH0.tar.gz) = 1113f75f6ddb790174b0f9e0fc82ff4875e8a4d39262428a6ba4a931a147b9af
SIZE (libretro-RetroArch-v1.2.2_GH0.tar.gz) = 9155016

View File

@ -0,0 +1,37 @@
--- qb/config.libs.sh.orig 2015-07-19 09:50:27 UTC
+++ qb/config.libs.sh
@@ -31,6 +31,9 @@ fi
add_define_make DYLIB_LIB "$DYLIB"
+add_include_dirs /usr/local/include
+add_library_dirs /usr/local/lib
+
[ "$OS" = 'Darwin' ] && HAVE_X11=no # X11 breaks on recent OSXes even if present.
[ -d /opt/vc/lib ] && add_library_dirs /opt/vc/lib
@@ -125,11 +128,11 @@ fi
add_define_make libretro "$LIBRETRO"
}
-if [ "$MAN_DIR" ]; then
+#if [ "$MAN_DIR" ]; then
add_define_make MAN_DIR "$MAN_DIR"
-else
- add_define_make MAN_DIR "${PREFIX}/share/man/man1"
-fi
+#else
+ add_define_make MAN_DIR "${PREFIX}/man/man1"
+#fi
if [ "$OS" = 'Win32' ]; then
HAVE_THREADS=yes
@@ -182,7 +185,7 @@ fi
check_pkgconf ALSA alsa
check_header OSS sys/soundcard.h
check_header OSS_BSD soundcard.h
-check_lib OSS_LIB -lossaudio
+#check_lib OSS_LIB -lossaudio
if [ "$OS" = 'Darwin' ]; then
check_lib AL "-framework OpenAL" alcOpenDevice

View File

@ -0,0 +1,12 @@
--- qb/qb.params.sh.orig 2015-07-19 09:50:27 UTC
+++ qb/qb.params.sh
@@ -59,6 +59,9 @@ parse_input() # Parse stuff :V
while [ "$1" ]; do
case "$1" in
--prefix=*) PREFIX=${1##--prefix=};;
+ --build=*) ;;
+ --x-includes=*) ;;
+ --x-libraries=*) ;;
--global-config-dir=*) GLOBAL_CONFIG_DIR=${1##--global-config-dir=};;
--host=*) CROSS_COMPILE=${1##--host=}-;;
--enable-*)

View File

@ -0,0 +1,12 @@
======================================================================
You installed RetroArch: libretro-based entertainment platform.
RetroArch is the lowest tier of the entertainment platform. The middle
tier is the core, which is usually an interpreter of the computer game
code. The top tier is the game code itself.
You can run the stack with this command:
$ retroarch -L some-core-libretro.so some-game.game
Enjoy!
======================================================================

View File

@ -0,0 +1,6 @@
RetroArch is the reference frontend for the libretro API. Popular examples
of implementations for this API includes videogame system emulators and
game engines, but also more generalized 3D programs. These programs are
instantiated as dynamic libraries. We refer to these as "libretro cores".
WWW: http://github.com/libretro/RetroArch

View File

@ -0,0 +1,9 @@
bin/retroarch
bin/retroarch-cg2glsl
bin/retroarch-joyconfig
etc/retroarch.cfg
man/man1/retroarch-cg2glsl.1.gz
man/man1/retroarch-joyconfig.1.gz
man/man1/retroarch.1.gz
share/pixmaps/retroarch.png
share/pixmaps/retroarch.svg