1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-07 06:40:06 +00:00
freebsd-ports/games/quake2max/Makefile
Alexey Dokuchaev a22f7c00b7 games/quake2max: fix known security and "missing return" issues
- Backport modified security patch from `games/quake2lnx' port
- Fix several -Werror=return-type bugs, the most important being
  the one in R_Init() function which prevented correct graphics
  initialization, causing the game to segfault during start-up
- For strlwr() function, just change it to `void' as its return
  value is never used anyway
- While here, add some places of interest to the WWW line

Reported by:	Sergey V. Dyatko
2024-01-24 09:20:26 +00:00

134 lines
3.2 KiB
Makefile

PORTNAME= quake2max
PORTVERSION= 0.45
PORTREVISION= 16
CATEGORIES= games
MASTER_SITES= http://freebsd.nsu.ru/distfiles/ LOCAL/danfe
DISTNAME= Quake2maX_${PORTVERSION}-src_unix
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${Q2MAX_DATA}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= danfe@FreeBSD.org
COMMENT= OpenGL-only Quake II engine modification
WWW= https://icculus.org/~ravage/quake2/ \
http://web.archive.org/web/20060104020511/http://www.planetquake.com/quake2max/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/gnu.txt
EXTRACT_DEPENDS= unrar:archivers/unrar
USES= gmake tar:bzip2 xorg
USE_XORG= x11 xext xxf86vm xxf86dga
ALL_TARGET= release
WRKSRC= ${WRKDIR}/${DISTNAME:S/quake2max/Quake2maX/}
LIBDIR= ${PREFIX}/lib/${PORTNAME}
MAKE_ENV= LIBDIR="${LIBDIR}"
PLIST_SUB= LIBDIR="${LIBDIR:S/${PREFIX}\///}"
Q2MAX_DATA= ${PORTNAME}.044.rar
OPTIONS_DEFINE= CLIENT DEDICATED GAME GLX OPTIMIZED_CFLAGS SDLCLIENT SDLGL
OPTIONS_DEFAULT= CLIENT DEDICATED GLX OPTIMIZED_CFLAGS SDLCLIENT SDLGL
CLIENT_DESC= Build original client
DEDICATED_DESC= Build dedicated server
GAME_DESC= Build main game (default mod)
GLX_DESC= Build OpenGL renderer
SDLCLIENT_DESC= Build SDL client
SDLGL_DESC= Build SDL OpenGL renderer
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MGLX} || ${PORT_OPTIONS:MSDLGL}
LIB_DEPENDS= libpng.so:graphics/png
USES+= gl jpeg
USE_GL= glu
.endif
.if ${PORT_OPTIONS:MSDLCLIENT} || ${PORT_OPTIONS:MSDLGL}
USES+= sdl
USE_SDL= sdl
.endif
.if ${PORT_OPTIONS:MCLIENT}
MAKE_ENV+= BUILD_QUAKE2MAX=YES
PLIST_SUB+= CLIENT=""
Q2MAX_BIN+= quake2max
.else
PLIST_SUB+= CLIENT="@comment "
.endif
.if ${PORT_OPTIONS:MDEDICATED}
MAKE_ENV+= BUILD_DEDICATED=YES
PLIST_SUB+= DEDICATED=""
Q2MAX_BIN+= quake2max-ded
.else
PLIST_SUB+= DEDICATED="@comment "
.endif
.if ${PORT_OPTIONS:MGAME}
MAKE_ENV+= BUILD_GAME=YES
PLIST_SUB+= GAME=""
.else
PLIST_SUB+= GAME="@comment "
.endif
.if ${PORT_OPTIONS:MGLX}
MAKE_ENV+= BUILD_GLX=YES
PLIST_SUB+= GLX=""
Q2MAX_REF+= glx
.else
PLIST_SUB+= GLX="@comment "
.endif
.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
MAKE_ENV+= WITH_OPTIMIZED_CFLAGS=YES
.endif
.if ${PORT_OPTIONS:MSDLCLIENT}
MAKE_ENV+= BUILD_QUAKE2MAX-SDL=YES
PLIST_SUB+= SDLCLIENT=""
Q2MAX_BIN+= quake2max-sdl
.else
PLIST_SUB+= SDLCLIENT="@comment "
.endif
.if ${PORT_OPTIONS:MSDLGL}
MAKE_ENV+= BUILD_SDLGL=YES
PLIST_SUB+= SDLGL=""
Q2MAX_REF+= sdlgl
.else
PLIST_SUB+= SDLGL="@comment "
.endif
post-extract:
@cd ${WRKSRC} && unrar e -idq ${DISTDIR}/${Q2MAX_DATA} \
baseq2/_maxpak.pak
post-patch:
# Resolve name collision with jpeg-8
@${REINPLACE_CMD} -e 's|jpeg_mem_src|local_&|' \
${WRKSRC}/ref_gl/gl_image.c
# Pacify Clang (non-void function should return a value)
@${REINPLACE_CMD} -e '900s|return|& false|' \
${WRKSRC}/client/qmenu.c
do-install:
@${MKDIR} ${STAGEDIR}${LIBDIR}/baseq2
.for f in ${Q2MAX_BIN}
${INSTALL_PROGRAM} ${WRKSRC}/quake2/${f} ${STAGEDIR}${PREFIX}/bin
.endfor
.for f in ${Q2MAX_REF}
${INSTALL_PROGRAM} ${WRKSRC}/quake2/rfx_${f}.so ${STAGEDIR}${LIBDIR}
.endfor
.if ${PORT_OPTIONS:MGAME}
${INSTALL_PROGRAM} ${WRKSRC}/quake2/baseq2/game.so \
${STAGEDIR}${LIBDIR}/baseq2
.endif
${INSTALL_DATA} ${WRKSRC}/_maxpak.pak \
${STAGEDIR}${LIBDIR}/baseq2/maxpak.pak
.include "${.CURDIR}/../quake2-data/Makefile.include"
.include <bsd.port.mk>