summaryrefslogtreecommitdiff
path: root/games/quake2lnx/Makefile
blob: 91044d01b52d65c04344941098ff99fac2d504b7 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# New ports collection makefile for:	Quake2-LNX
# Date created:				11 Jun 2003
# Whom:					Alexey Dokuchaev <danfe@regency.nsu.ru>
#
# $FreeBSD$
#

PORTNAME=	quake2lnx
PORTVERSION=	0.15
PORTREVISION=	2
CATEGORIES=	games
MASTER_SITES=	http://www.icculus.org/quake2/files/:src \
		http://freebsd.nsu.ru/distfiles/q2/:pak
DISTNAME=	quake2-r${PORTVERSION}
DISTFILES=	${DISTNAME}${EXTRACT_SUFX}:src
.if defined(WITH_EYECANDY)
DISTFILES+=	maxpak.pak:pak
.endif
.if defined(WITH_SHAREWARE_DATA)
DISTFILES+=	pak0.pak:pak \
		players.tgz:pak
.endif
EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}

MAINTAINER=	danfe@regency.nsu.ru
COMMENT=	Cleaned up copy of the original Quake II source code

USE_GMAKE=	yes
USE_REINPLACE=	yes

.include <bsd.port.pre.mk>

###                       #
## CLIENTS AND RENDERERS ##
#                       ###

.if ${ARCH} == "i386" && !defined(WITHOUT_SVGA) \
	&& (defined(WITH_SVGA) || exists(${LOCALBASE}/lib/libvga.so.1))
LIB_DEPENDS+=	vga.1:${PORTSDIR}/graphics/svgalib
MAKE_ARGS+=	BUILD_SVGA=YES
REF_TARGETS+=	soft
PLIST_SUB+=	SVGA=""
.else
PLIST_SUB+=	SVGA="@comment "
.endif

.if defined(WITH_SDLCLIENT) || defined(WITH_SDL) || defined(WITH_SDLGL) \
	|| exists(${LOCALBASE}/lib/libSDL-1.1.so.5)
. if !(defined(WITHOUT_SDLCLIENT) && defined(WITHOUT_SDL) \
	&& defined(WITHOUT_SDLGL))
USE_SDL=	yes
. endif
. if !defined(WITHOUT_SDLCLIENT)
MAKE_ARGS+=	BUILD_SDLQUAKE2=YES
EXE_TARGETS+=	sdlquake2
PLIST_SUB+=	SDLCLIENT=""
. else
PLIST_SUB+=	SDLCLIENT="@comment "
. endif
. if !defined(WITHOUT_SDL)
MAKE_ARGS+=	BUILD_SDL=YES
REF_TARGETS+=	softsdl
PLIST_SUB+=	SDL=""
. else
PLIST_SUB+=	SDL="@comment "
. endif
. if !defined(WITHOUT_SDLGL)
MAKE_ARGS+=	BUILD_SDLGL=YES
REF_TARGETS+=	sdlgl
PLIST_SUB+=	SDLGL=""
. else
PLIST_SUB+=	SDLGL="@comment "
. endif
.else
PLIST_SUB+=	SDLCLIENT="@comment "
PLIST_SUB+=	SDL="@comment "
PLIST_SUB+=	SDLGL="@comment "
.endif

.if !defined(WITHOUT_X11)
LIB_DEPENDS+=	X11.6:${PORTSDIR}/x11/XFree86-4-libraries \
		Xext.6:${PORTSDIR}/x11/XFree86-4-libraries
MAKE_ARGS+=	BUILD_X11=YES
REF_TARGETS+=	softx
PLIST_SUB+=	X11=""
.else
PLIST_SUB+=	X11="@comment "
.endif

.if !defined(WITHOUT_GLX) || defined(WITH_EYECANDY)
LIB_DEPENDS+=	GL.1:${PORTSDIR}/x11/XFree86-4-libraries
MAKE_ARGS+=	BUILD_GLX=YES
REF_TARGETS+=	glx
PLIST_SUB+=	GLX=""
.else
PLIST_SUB+=	GLX="@comment "
.endif

.if !defined(WITHOUT_AA) && (defined(WITH_AA) \
	|| exists(${LOCALBASE}/lib/libaa.so.1))
LIB_DEPENDS+=	aa.1:${PORTSDIR}/graphics/aalib
MAKE_ARGS+=	BUILD_AA=YES
REF_TARGETS+=	softaa
PLIST_SUB+=	AA=""
.else
PLIST_SUB+=	AA="@comment "
.endif

.if defined(WITH_EYECANDY)
LIB_DEPENDS+=	jpeg.9:${PORTSDIR}/graphics/jpeg
MAKE_ARGS+=	BUILD_QMAX=YES
PLIST_SUB+=	QMAX=""
.else
PLIST_SUB+=	QMAX="@comment "
.endif

.if !defined(WITHOUT_CLIENT)
MAKE_ARGS+=	BUILD_CLIENT=YES
EXE_TARGETS+=	quake2
PLIST_SUB+=	CLIENT=""
.else
PLIST_SUB+=	CLIENT="@comment "
.endif

.if !defined(WITHOUT_SERVER)
MAKE_ARGS+=	BUILD_DEDICATED=YES
PLIST_SUB+=	SERVER=""
EXE_TARGETS+=	q2ded
.else
PLIST_SUB+=	SERVER="@comment "
.endif

###                                #
## GAME, MISSION ADDONS, AND MODS ##
#                                ###

.if !defined(WITHOUT_GAME)
MAKE_ARGS+=	BUILD_GAME=YES
PLIST_SUB+=	GAME=""
.else
PLIST_SUB+=	GAME="@comment "
.endif

.if defined(WITH_CTF)
MAKE_ARGS+=	BUILD_CTFDLL=YES
PLIST_SUB+=	CTF=""
.else
PLIST_SUB+=	CTF="@comment "
.endif

.if defined(WITH_SHAREWARE_DATA)
PLIST_SUB+=	SHAREWARE=""
.else
PLIST_SUB+=	SHAREWARE="@comment "
.endif

###                        #
## MISCELLANEOUS TUNABLES ##
#                        ###

.if defined(WITH_JOYSTICK)
MAKE_ARGS+=	BUILD_JOYSTICK=YES
.endif

.if !defined(WITHOUT_ARTS) && (defined(WITH_ARTS) \
	|| exists (${LOCALBASE}/lib/libartsc.so.0))
LIB_DEPENDS+=	artsc.0:${PORTSDIR}/audio/arts
MAKE_ARGS+=	BUILD_ARTS=YES
.endif

.if defined(WITH_IPV6)
MAKE_ARGS+=	HAVE_IPV6=YES
.endif

.if defined(WITH_OPTIMIZED_CFLAGS)
MAKE_ARGS+=	OPTIMIZED_CFLAGS="-O9 -pipe -s -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
.endif

.if ${ARCH} != "i386" || defined(WITHOUT_X86_ASM)
MAKE_ARGS+=	NO_X86_ASM=YES
.endif

###                            #
## END OF CONFIGURATION KNOBS ##
#                            ###

pre-everything::
.if ${ARCH} == "i386" && !(defined(WITH_SVGA) || exists(${LOCALBASE}/lib/libvga.so.1))
	@${ECHO_MSG} "Define WITH_SVGA to build SVGA driver"
.endif
.if !(defined(WITH_SDL) || exists(${LOCALBASE}/lib/libSDL-1.1.so.5))
	@${ECHO_MSG} "Define WITH_SDL to build SDL software driver"
.endif
.if !(defined(WITH_SDLGL) || exists(${LOCALBASE}/lib/libSDL-1.1.so.5))
	@${ECHO_MSG} "Define WITH_SDLGL to build SDL OpenGL driver"
.endif
.if !(defined(WITH_SDLCLIENT) || exists(${LOCALBASE}/lib/libSDL-1.1.so.5))
	@${ECHO_MSG} "Define WITH_SDLCLIENT to build executable that uses SDL for cdrom and sound"
.endif
.if !(defined(WITH_AA) || exists(${LOCALBASE}/lib/libaa.so.1))
	@${ECHO_MSG} "Define WITH_AA to build ASCII software renderer"
.endif
.if !defined(WITHOUT_X11)
	@${ECHO_MSG} "Define WITHOUT_X11 to disable building of X11 driver"
.endif
.if !defined(WITHOUT_GLX)
	@${ECHO_MSG} "Define WITHOUT_GLX to disable building of GLX driver"
.endif
.if !defined(WITH_EYECANDY)
	@${ECHO_MSG} "Define WITH_EYECANDY to build executable with fancier GL graphics"
.endif
.if !defined(WITHOUT_CLIENT)
	@${ECHO_MSG} "Define WITHOUT_CLIENT to disable building Quake2 client executable"
.endif
.if !defined(WITHOUT_SERVER)
	@${ECHO_MSG} "Define WITHOUT_SERVER to disable building of dedicated server"
.endif
.if !defined(WITHOUT_GAME)
	@${ECHO_MSG} "Define WITHOUT_GAME to build without main game .so"
.endif
.if !defined(WITH_CTF)
	@${ECHO_MSG} "Define WITH_CTF to build Capture The Flag mod"
.endif
.if !defined(WITH_SHAREWARE_DATA)
	@${ECHO_MSG} "Define WITH_SHAREWARE_DATA to install demo version game data"
.endif
.if !defined(WITH_JOYSTICK)
	@${ECHO_MSG} "Define WITH_JOYSTICK to enable joystick support"
.endif
.if !(defined(WITH_ARTS) || exists (${LOCALBASE}/lib/libartsc.so.0))
	@${ECHO_MSG} "Define WITH_ARTS to enable support for aRts sound daemon"
.endif
.if !defined(WITH_IPV6)
	@${ECHO_MSG} "Define WITH_IPV6 to enable experimental IPv6 support"
.endif
.if !defined(WITH_OPTIMIZED_CFLAGS)
	@${ECHO_MSG} "Define WITH_OPTIMIZED_CFLAGS to enable extra optimization options"
.endif
.if ${ARCH} == "i386" && !defined(WITHOUT_X86_ASM)
	@${ECHO_MSG} "Define WITHOUT_X86_ASM to disable x86 assembly code"
.endif

TGTDIR=		${WRKSRC}/release${ARCH}

post-patch:
	@${REINPLACE_CMD} -e 's|%%%%BASEDIR%%%%|${DATADIR}|' ${WRKSRC}/src/qcommon/files.c

do-build:
	@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} \
	${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} build_release)

PLIST_SUB+=	ARCH="${ARCH}"

do-install:
.for tgt in ${EXE_TARGETS}
	${INSTALL_PROGRAM} ${TGTDIR}/${tgt} ${PREFIX}/bin
.endfor
	@${MKDIR} ${DATADIR}/baseq2
.for tgt in ${REF_TARGETS}
	${INSTALL_PROGRAM} ${TGTDIR}/ref_${tgt}.so ${DATADIR}
.endfor
.if !defined(WITHOUT_GAME)
	${INSTALL_PROGRAM} ${TGTDIR}/game${ARCH}.so ${DATADIR}/baseq2
.endif
.if defined(WITH_CTF)
	@${MKDIR} ${DATADIR}/ctf
	${INSTALL_PROGRAM} ${TGTDIR}/ctf/game${ARCH}.so ${DATADIR}/ctf
.endif
.if defined(WITH_SHAREWARE_DATA)
	${INSTALL_DATA} ${DISTDIR}/pak0.pak ${DATADIR}/baseq2
	${GUNZIP_CMD} -c ${DISTDIR}/players.tgz | ${TAR} -C ${DATADIR}/baseq2 -xf -
.endif
.if defined(WITH_EYECANDY)
	${INSTALL_DATA} ${DISTDIR}/maxpak.pak ${DATADIR}/baseq2
.endif
.if !defined(NOPORTDOCS)
	@${MKDIR} ${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
.endif

post-install:
	@${SED} -e 's|$${DATADIR}|${DATADIR}|g' ${PKGMESSAGE}

.include <bsd.port.post.mk>