1 # Created by: Yuri Victorovich <yuri@rawbw.com>
10 MAINTAINER= greg@unrelenting.technology
11 COMMENT= Cross-platform entertainment system based on libretro API
14 LICENSE_FILE= ${WRKSRC}/COPYING
16 LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon \
17 libdrm.so:graphics/libdrm \
18 libass.so:multimedia/libass
20 BROKEN_powerpc64= fails to compile: features_cpu.c: undefined reference to __mftb
22 OPTIONS_DEFINE= FFMPEG OSS JACK PULSEAUDIO ALSA SDL OPENGL OPENAL NETPLAY PYTHON V4L FREETYPE FBO
23 OPTIONS_DEFAULT=OSS PULSEAUDIO SDL OPENGL OPENAL NETPLAY PYTHON V4L FREETYPE FBO # FFMPEG
24 FFMPEG_DESC= On-the-fly recording of gameplay with libavcodec
25 NETPLAY_DESC= Peer-to-peer netplay
26 PYTHON_DESC= Script support in shaders
27 FBO_DESC= OpenGL render-to-texture
29 FFMPEG_BROKEN= fails to build with ffmpeg 4.0
30 FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
31 FFMPEG_CONFIGURE_ENABLE=ffmpeg
32 OSS_CONFIGURE_ENABLE= oss
33 JACK_LIB_DEPENDS= libjack.so:audio/jack
34 JACK_CONFIGURE_ENABLE= jack
35 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
36 PULSEAUDIO_CONFIGURE_ENABLE= pulse
37 ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
38 ALSA_CONFIGURE_ENABLE= alsa
40 SDL_USE= SDL=sdl2 image2
41 SDL_CONFIGURE_ON= --disable-sdl --enable-sdl2
42 SDL_CONFIGURE_OFF= --disable-sdl --disable-sdl2
44 OPENGL_USE= GL=gl,egl,gbm
45 OPENGL_CONFIGURE_ENABLE=opengl
46 OPENAL_USES= openal:soft
47 OPENAL_CONFIGURE_ENABLE=al
48 NETPLAY_CONFIGURE_ENABLE= netplay
49 PYTHON_CONFIGURE_ENABLE=python
50 PYTHON_USES= python:3.4+
51 V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
52 V4L_BUILD_DEPENDS= v4l_compat>0:multimedia/v4l_compat
53 V4L_CONFIGURE_ENABLE= v4l2
54 FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
55 FREETYPE_CONFIGURE_ENABLE= freetype
56 FBO_CONFIGURE_ENABLE= fbo
60 LDFLAGS_i386= -Wl,-znotext
61 CONFIGURE_ARGS+=--enable-threads --disable-udev
62 CONFIGURE_ENV+= MAN_DIR=${MANPREFIX}/man
64 USES= compiler:c++11-lib gmake pkgconfig shebangfix xorg
67 SUB_FILES= pkg-message
69 CONFIGURE_ARGS+=--global-config-dir=${LOCALBASE}/etc
70 USE_XORG= x11 xcb xext xinerama xv xxf86vm
71 SHEBANG_FILES= libretro-common/glsym/glgen.py libretro-common/glsym/rglgen.py tools/cg2glsl.py tools/vulkan_loader_generator.py
74 @${REINPLACE_CMD} -e 's|<malloc.h>|<stdlib.h>|' \
75 ${WRKSRC}/camera/drivers/video4linux2.c \
76 ${WRKSRC}/gfx/drivers/*.c \
77 ${WRKSRC}/libretro-common/libco/armeabi.c \
78 ${WRKSRC}/memory/wii/mem2_manager.c
79 @${REINPLACE_CMD} -e 's|<asm/types.h>|<sys/types.h>|' \
80 ${WRKSRC}/camera/drivers/video4linux2.c
81 @${REINPLACE_CMD} -e '/^add_define_make DYLIB_LIB/s|$$|;\
82 add_include_dirs ${LOCALBASE}/include;\
83 add_library_dirs ${LOCALBASE}/lib| ; \
84 /^check_lib OSS_LIB/d' \
85 ${WRKSRC}/qb/config.libs.sh
88 @${REINPLACE_CMD} -e '/check_pkgconf PYTHON/s/python3/python-${PYTHON_VER}/' \
89 ${WRKSRC}/qb/config.libs.sh
92 @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/retroarch
93 @${REINPLACE_CMD} -e 's|# libretro_directory =|libretro_directory = "${PREFIX}/libexec/libretro"|' \
94 ${STAGEDIR}${PREFIX}/etc/retroarch.cfg
96 .include <bsd.port.mk>