aboutsummaryrefslogtreecommitdiff
path: root/games/quake2-data/Makefile.include
blob: d661c1f72c08ad6b516f21438a8c516dd9c9b470 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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+=	quake2-data>0:games/quake2-data
.endif