aboutsummaryrefslogtreecommitdiffstats
path: root/games
diff options
context:
space:
mode:
authorpi <pi@FreeBSD.org>2015-11-14 21:51:27 +0800
committerpi <pi@FreeBSD.org>2015-11-14 21:51:27 +0800
commitd48c28e80f442ecb3722a516569fac507b60693f (patch)
treef4ef47a7efbede5caa93294e0fbf8d93e554bcde /games
parent6cb1677cd3e18a95737742c77620d7de12591b6a (diff)
downloadfreebsd-ports-gnome-d48c28e80f442ecb3722a516569fac507b60693f.tar.gz
freebsd-ports-gnome-d48c28e80f442ecb3722a516569fac507b60693f.tar.zst
freebsd-ports-gnome-d48c28e80f442ecb3722a516569fac507b60693f.zip
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
Diffstat (limited to 'games')
-rw-r--r--games/Makefile1
-rw-r--r--games/retroarch/Makefile90
-rw-r--r--games/retroarch/distinfo2
-rw-r--r--games/retroarch/files/patch-qb_config.libs.sh37
-rw-r--r--games/retroarch/files/patch-qb_qb.params.sh12
-rw-r--r--games/retroarch/files/pkg-message.in12
-rw-r--r--games/retroarch/pkg-descr6
-rw-r--r--games/retroarch/pkg-plist9
8 files changed, 169 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile
index e0d1ae0524bd..6bb8ad8cb856 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -835,6 +835,7 @@
SUBDIR += reminiscence
SUBDIR += rescue
SUBDIR += residualvm
+ SUBDIR += retroarch
SUBDIR += rezerwar
SUBDIR += rfksay
SUBDIR += ri-li
diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile
new file mode 100644
index 000000000000..0dbf1c2ae1e0
--- /dev/null
+++ b/games/retroarch/Makefile
@@ -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>
diff --git a/games/retroarch/distinfo b/games/retroarch/distinfo
new file mode 100644
index 000000000000..cbf8c791aefe
--- /dev/null
+++ b/games/retroarch/distinfo
@@ -0,0 +1,2 @@
+SHA256 (libretro-RetroArch-v1.2.2_GH0.tar.gz) = 1113f75f6ddb790174b0f9e0fc82ff4875e8a4d39262428a6ba4a931a147b9af
+SIZE (libretro-RetroArch-v1.2.2_GH0.tar.gz) = 9155016
diff --git a/games/retroarch/files/patch-qb_config.libs.sh b/games/retroarch/files/patch-qb_config.libs.sh
new file mode 100644
index 000000000000..9a8dca53e2ee
--- /dev/null
+++ b/games/retroarch/files/patch-qb_config.libs.sh
@@ -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
diff --git a/games/retroarch/files/patch-qb_qb.params.sh b/games/retroarch/files/patch-qb_qb.params.sh
new file mode 100644
index 000000000000..a90c5564c2bd
--- /dev/null
+++ b/games/retroarch/files/patch-qb_qb.params.sh
@@ -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-*)
diff --git a/games/retroarch/files/pkg-message.in b/games/retroarch/files/pkg-message.in
new file mode 100644
index 000000000000..ff92753e00c1
--- /dev/null
+++ b/games/retroarch/files/pkg-message.in
@@ -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!
+======================================================================
diff --git a/games/retroarch/pkg-descr b/games/retroarch/pkg-descr
new file mode 100644
index 000000000000..71751b84acc4
--- /dev/null
+++ b/games/retroarch/pkg-descr
@@ -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
diff --git a/games/retroarch/pkg-plist b/games/retroarch/pkg-plist
new file mode 100644
index 000000000000..5d383c9b5cb5
--- /dev/null
+++ b/games/retroarch/pkg-plist
@@ -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