freebsd-ports/games/quake2lnx/Makefile
Stefan Eßer b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00

250 lines
5.9 KiB
Makefile

PORTNAME= quake2lnx
PORTVERSION= 0.16.2
PORTREVISION= 16
CATEGORIES= games
MASTER_SITES= http://offload1.icculus.org/quake2/files/
DISTNAME= quake2-r${PORTVERSION}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
DIST_SUBDIR= ${PORTNAME}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= danfe@FreeBSD.org
COMMENT= Icculus.org version of the original Quake II
WWW= https://www.icculus.org/quake2/
LICENSE= GPLv2
USES= gmake
ALL_TARGET= build_release
LIBDIR= ${PREFIX}/lib/${PORTNAME}
PLIST_SUB+= LIBDIR="${LIBDIR:S|${PREFIX}/||}"
OPTIONS_DEFINE= X11 GLX EYECANDY SOFTSDL SDLGL SDLCLIENT AA CLIENT \
SERVER GAME CTF RETEXTURE JOYSTICK REDBLUE IPV6 \
OPTIMIZED_CFLAGS DOCS
OPTIONS_DEFAULT= X11 GLX CLIENT SERVER
OPTIONS_DEFINE_i386= SVGA ASM
OPTIONS_DEFAULT_i386= ASM
X11_DESC= Build X11 (software) renderer
GLX_DESC= Build OpenGL (GLX) renderer
EYECANDY_DESC= Build client with fancier GL graphics
SOFTSDL_DESC= Build software SDL renderer
SDLGL_DESC= Build SDL OpenGL renderer
SDLCLIENT_DESC= Build SDL client
SVGA_DESC= Build SVGA renderer
AA_DESC= Build ASCII graphics renderer
CLIENT_DESC= Build original client
SERVER_DESC= Build dedicated server
GAME_DESC= Build main game (default mod)
CTF_DESC= Build Capture The Flag mod
RETEXTURE_DESC= Retextured graphics support
JOYSTICK_DESC= Joystick support
REDBLUE_DESC= Enable 3D glasses rendering
.include <bsd.port.options.mk>
### #
## CLIENTS AND RENDERERS ##
# ###
.if ${PORT_OPTIONS:MX11}
USES+= xorg
USE_XORG= x11 xext xxf86dga xxf86vm
MAKE_ARGS+= BUILD_X11=YES
REF_TARGETS+= softx
PLIST_SUB+= X11=""
.else
PLIST_SUB+= X11="@comment "
.endif
.if ${PORT_OPTIONS:MGLX} || ${PORT_OPTIONS:MEYECANDY}
USES+= gl xorg
USE_GL= gl
USE_XORG= x11 xext xxf86dga xxf86vm
MAKE_ARGS+= BUILD_GLX=YES
REF_TARGETS+= glx
PLIST_SUB+= GLX=""
.else
PLIST_SUB+= GLX="@comment "
.endif
.if ${PORT_OPTIONS:MEYECANDY}
DISTFILES+= maxpak.pak
USES+= gl jpeg
USE_GL= glu
MAKE_ARGS+= BUILD_QMAX=YES
PLIST_SUB+= QMAX=""
.else
PLIST_SUB+= QMAX="@comment "
.endif
.if ${PORT_OPTIONS:MSOFTSDL}
USES+= sdl
USE_SDL= sdl
MAKE_ARGS+= BUILD_SDL=YES
REF_TARGETS+= softsdl
PLIST_SUB+= SOFTSDL=""
.else
PLIST_SUB+= SOFTSDL="@comment "
.endif
.if ${PORT_OPTIONS:MSDLGL}
USES+= sdl
USE_SDL= sdl
MAKE_ARGS+= BUILD_SDLGL=YES
REF_TARGETS+= sdlgl
PLIST_SUB+= SDLGL=""
.else
PLIST_SUB+= SDLGL="@comment "
.endif
.if ${PORT_OPTIONS:MSDLCLIENT}
USES+= sdl
USE_SDL= sdl
MAKE_ARGS+= BUILD_SDLQUAKE2=YES
EXE_TARGETS+= quake2-sdl
PLIST_SUB+= SDLCLIENT=""
.else
PLIST_SUB+= SDLCLIENT="@comment "
.endif
.if ${PORT_OPTIONS:MSVGA}
LIB_DEPENDS+= libvga.so:graphics/svgalib
MAKE_ARGS+= BUILD_SVGA=YES
REF_TARGETS+= soft
PLIST_SUB+= SVGA=""
.else
PLIST_SUB+= SVGA="@comment "
.endif
.if ${PORT_OPTIONS:MAA}
LIB_DEPENDS+= libaa.so:graphics/aalib
MAKE_ARGS+= BUILD_AA=YES
REF_TARGETS+= softaa
PLIST_SUB+= AA=""
.else
PLIST_SUB+= AA="@comment "
.endif
.if ${PORT_OPTIONS:MCLIENT}
MAKE_ARGS+= BUILD_CLIENT=YES
EXE_TARGETS+= quake2
PLIST_SUB+= CLIENT=""
.else
PLIST_SUB+= CLIENT="@comment "
.endif
.if ${PORT_OPTIONS:MSERVER}
MAKE_ARGS+= BUILD_DEDICATED=YES
PLIST_SUB+= SERVER=""
EXE_TARGETS+= q2ded
.else
PLIST_SUB+= SERVER="@comment "
.endif
### #
## GAME, MISSION ADDONS, AND MODS ##
# ###
.if ${PORT_OPTIONS:MGAME}
MAKE_ARGS+= BUILD_GAME=YES
PLIST_SUB+= GAME=""
.else
PLIST_SUB+= GAME="@comment "
.endif
.if ${PORT_OPTIONS:MCTF}
MAKE_ARGS+= BUILD_CTFDLL=YES
PLIST_SUB+= CTF=""
.else
PLIST_SUB+= CTF="@comment "
.endif
### #
## MISCELLANEOUS TUNABLES ##
# ###
.if ${PORT_OPTIONS:MRETEXTURE}
MAKE_ARGS+= BUILD_RETEXTURE=YES
RUN_DEPENDS+= ${Q2DIR}/baseq2/pak10.pak:games/quake2-extras
.endif
.if ${PORT_OPTIONS:MJOYSTICK}
MAKE_ARGS+= BUILD_JOYSTICK=YES
.endif
.if ${PORT_OPTIONS:MREDBLUE}
MAKE_ARGS+= BUILD_REDBLUE=YES
.endif
.if ${PORT_OPTIONS:MIPV6}
MAKE_ARGS+= HAVE_IPV6=YES
.endif
.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
MAKE_ARGS+= OPTIMIZED_CFLAGS="-O3 -ffast-math -funroll-loops -fomit-frame-pointer"
.endif
.if ! ${PORT_OPTIONS:MASM}
MAKE_ARGS+= NO_X86_ASM=YES
.endif
### #
## END OF CONFIGURATION KNOBS ##
# ###
post-patch: .SILENT
${REINPLACE_CMD} -e 's|%%DATADIR%%|${Q2DIR}| ; \
s|%%LIBDIR%%|${LIBDIR}|' ${WRKSRC}/src/qcommon/files.c \
${WRKSRC}/src/linux/vid_so.c
${REINPLACE_CMD} -e 's|dllname, RTLD_LAZY|& \| RTLD_GLOBAL|' \
${WRKSRC}/src/linux/qgl_linux.c
${REINPLACE_CMD} -e 's|/js|/joy|' ${WRKSRC}/src/linux/joystick.c
${REINPLACE_CMD} -e 's|jpeg_mem_src|local_&|' \
${WRKSRC}/src/ref_candygl/gl_image.c
${REINPLACE_CMD} -e '/BUILDSTRING/s|Linux|${OPSYS}|' \
-e '/CPUSTRING/s|Unknown|${ARCH}|' \
${WRKSRC}/src/qcommon/qcommon.h
.if ${PORT_OPTIONS:MASM}
${REINPLACE_CMD} -e '/^SHLIBLDFLAGS/s|$$| -Wl,-z,notext|' \
${WRKSRC}/Makefile
.endif
do-install:
.for tgt in ${EXE_TARGETS}
${INSTALL_PROGRAM} ${WRKSRC}/release/${tgt} ${STAGEDIR}${PREFIX}/bin
.endfor
@${MKDIR} ${STAGEDIR}${LIBDIR}/baseq2
.for tgt in ${REF_TARGETS}
${INSTALL_PROGRAM} ${WRKSRC}/release/ref_${tgt}.so \
${STAGEDIR}${LIBDIR}
.endfor
.if ${PORT_OPTIONS:MCTF}
@${MKDIR} ${STAGEDIR}${LIBDIR}/ctf
${INSTALL_PROGRAM} ${WRKSRC}/release/ctf/game.so \
${STAGEDIR}${LIBDIR}/ctf
.endif
.if ${PORT_OPTIONS:MEYECANDY}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/maxpak.pak \
${STAGEDIR}${LIBDIR}/baseq2
.endif
.if ${PORT_OPTIONS:MGAME}
${INSTALL_PROGRAM} ${WRKSRC}/release/game.so \
${STAGEDIR}${LIBDIR}/baseq2
.endif
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/src/docs/3.*_Changes.txt \
${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/src/docs/README \
${STAGEDIR}${DOCSDIR}/README.320
${INSTALL_DATA} ${WRKSRC}/src/docs/changes.txt \
${WRKSRC}/src/docs/joystick.txt \
${WRKSRC}/src/docs/readme.txt ${STAGEDIR}${DOCSDIR}
.include "${.CURDIR}/../quake2-data/Makefile.include"
.include <bsd.port.mk>