freebsd-ports/games/quake2-data/Makefile.include
Alexey Dokuchaev 0c65f94d0a Reduce the differences between `quake*-data' ports:
- Consistently use vertical bar (pipe) in :S substitutions
- Do not abuse .error statement, set IGNORE knob instead
- Drop some unnecessary quotation marks in comparisons
- Add a comment on why we cannot depend on particular .pak file
- Simplify extraction of the `linuxq3apoint-1.32b-3.x86.run'
2014-07-08 08:51:31 +00:00

62 lines
3 KiB
Text

# Makefile for defining variables used by Quake II related ports.
#
# A dependency to "games/quake2-data" is automatically added (except for the
# data port itself). The ports using this definitions should assume the data
# is installed (i.e. no need for pkg-message asking to copy the .pak files),
# and the main game.so (except the engine incompatible with the original one).
#
# The following variables are defined, and can be used in the port:
#
# Q2PKGNAMEPREFIX - The package name prefix for Quake II additions
# Q2DIR - The Quake II data directory (also added to
# MAKE_ENV, PLIST_SUB, and SUB_LIST)
#
# Some notes for making this kind of ports:
#
# - The game engines should be modified to add ${Q2DIR} as the first search
# path (it's a stack so new paths override previous ones), and add
# "~/.${PORTNAME}" as the last one (this is where it writes configuration,
# saved games, etc.), which may need to be created if doesn't exist;
# - If the engine needs to load additional data (renderers, pak files, etc.)
# don't install it in ${Q2DIR}, use ${PREFIX}/lib/${PORTNAME} instead and
# add that directory to the search paths immediately after ${Q2DIR};
# - The reason to use "~/.${PORTNAME}" for writing is in the case the program
# isn't compatible with the original engine (e.g. new console variables,
# different saved game format, etc.). If just the configuration is
# different it can write in "~/.quake2" but use a different configuration
# file name (not config.cfg);
# - Search path summary (ordered):
# - cddir - Directory to be prepended (optional, configurable)
# - ${Q2DIR} - Base shared data directory
# - ${LIBDIR} - Program specific data directory (optional)
# - basedir - Base data directory (configurable)
# - "~/.${PORTNAME}" - Writing directory
# - The "game${ARCH}.so" in game engines and modifications should be changed
# to just "game.so" (the ${ARCH} can cause incompatibilities with new
# platforms and is unnecessary);
# - The modifications and data which is common to all the engines should be
# installed in ${Q2DIR};
# - The engines should not install game.so files for the normal game, CTF,
# Rogue, Xatrix, and all other which exist as a separate port. If the
# version the engine provides is different than the original one then add
# it as an option (off by default). If the engine is not compatible with
# the game.so files provided by the ports then ignore this rule.
#
# For the examples, please see existing ports.
#
Q2PKGNAMEPREFIX?= quake2-
Q2DIR?= ${LOCALBASE}/share/quake2
.if defined(PKGNAMEPREFIX) && ${PKGNAMEPREFIX} == ${Q2PKGNAMEPREFIX} && defined(OPTIONSMKINCLUDED)
IGNORE= is using Q2PKGNAMEPREFIX, but <bsd.port.options.mk> included too early
.endif
MAKE_ENV+= Q2DIR="${Q2DIR}"
PLIST_SUB+= Q2DIR="${Q2DIR:S|${LOCALBASE}/||}"
SUB_LIST+= Q2DIR="${Q2DIR}"
.if ${PORTNAME} != data
# Not depending on the particular .pak file since they are OPTIONS-dependent
RUN_DEPENDS+= ${Q2DIR}:${PORTSDIR}/games/quake2-data
.endif