aboutsummaryrefslogtreecommitdiff
path: root/games/quake3/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'games/quake3/Makefile')
-rw-r--r--games/quake3/Makefile103
1 files changed, 76 insertions, 27 deletions
diff --git a/games/quake3/Makefile b/games/quake3/Makefile
index 8e3850349113..c764ffb614b1 100644
--- a/games/quake3/Makefile
+++ b/games/quake3/Makefile
@@ -7,57 +7,106 @@
PORTNAME= quake3
PORTVERSION= 1.32b
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= games
-MASTER_SITES= ${MASTER_SITE_IDSOFTWARE:S|$|source/|} \
- http://www.proarena.com/p/ftpx/x8524/quake_3_arena/ \
+MASTER_SITES= http://www.proarena.com/p/ftpx/x8524/quake_3_arena/ \
http://www.planetgargoyle.com/ \
http://www.teamdarkside.net/ \
http://0day.icculus.org/mirrors/quake3/ \
- http://www.olpainless.net/files/
+ http://www.olpainless.net/files/ \
+ ${MASTER_SITE_IDSOFTWARE:S|$|source/|}
DISTFILES= ${DISTNAME}-source${EXTRACT_SUFX}
MAINTAINER= shirshegsm@gmail.com
COMMENT= Quake III Arena -- first person shooter (native build)
-BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm
-
USE_ZIP= yes
-USE_CRLF= yes
+USE_DOS2UNIX= yes
USE_GMAKE= yes
-USE_PERL5_BUILD=yes
-USE_GL= yes
USE_GCC= 3.2+
+BUILD_WRKSRC= ${WRKSRC}/code/unix
+
+OPTIONS= CLIENT "Build client" on \
+ DEDICATED "Build dedicated server" on \
+ GAMELIBS "Build game libraries (mandatory on !i386)" off \
+ OPTIMIZED_CFLAGS "Enable compilation optimizations" on \
+ SMP "Build SMP (threaded) client" on
+
+MAKE_ENV= LIBDIR="${LIBDIR}" DLL_ONLY=true
+PLIST_SUB= LIBDIR="${LIBDIR:S/${PREFIX}\///}"
-PLIST_FILES= bin/q3ded bin/quake3
+LIBDIR= ${PREFIX}/lib/${PORTNAME}
.include <bsd.port.pre.mk>
-# Anyone to play with this on !i386
-.if ${ARCH} != "i386"
-BROKEN= "Does not compile on !i386 (feel free to submit fixes)"
+.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) \
+ && defined(WITHOUT_SMP)
+IGNORE= needs at least one of CLIENT, DEDICATED and SMP options
.endif
-.if ${PERL_LEVEL} < 500600
-BUILD_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5
+.if ${ARCH} == "i386"
+BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm
.endif
-post-patch:
- @${REINPLACE_CMD} -e 's|%%Q3DIR%%|"${Q3DIR}"|' \
- ${WRKSRC}/code/unix/unix_shared.c
- @${REINPLACE_CMD} -e 's|botlib.log|/dev/null|' ${WRKSRC}/code/botlib/be_interface.c
+.if !defined(WITHOUT_CLIENT) && !defined(WITHOUT_SMP)
+USE_GL= yes
+.endif
+
+.if !defined(WITHOUT_CLIENT)
+MAKE_ENV+= CLIENT=YES
+PLIST_SUB+= CLIENT=""
+Q3BIN+= quake3
+.else
+PLIST_SUB+= CLIENT="@comment "
+.endif
+
+.if !defined(WITHOUT_DEDICATED)
+MAKE_ENV+= DEDICATED=YES
+PLIST_SUB+= DEDICATED=""
+Q3BIN+= q3ded
+.else
+PLIST_SUB+= DEDICATED="@comment "
+.endif
+
+.if defined(WITH_GAMELIBS) || ${ARCH} != "i386"
+MAKE_ENV+= GAMELIBS=YES
+PLIST_SUB+= GAMELIBS=""
+.else
+PLIST_SUB+= GAMELIBS="@comment "
+.endif
-pre-build:
- ${MKDIR} ${WRKSRC}/lcc/build
+.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
+MAKE_ENV+= OPTIMIZED_CFLAGS=YES
+.endif
-do-build:
- cd ${WRKSRC}/code && ${MAKE_ENV} ${PERL} unix/cons
+.if !defined(WITHOUT_SMP)
+MAKE_ENV+= SMP=YES \
+ PTHREAD_LIBS="${PTHREAD_LIBS}"
+PLIST_SUB+= SMP=""
+Q3BIN+= quake3-smp
+.else
+PLIST_SUB+= SMP="@comment "
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|botlib\.log|/dev/null|' \
+ ${WRKSRC}/code/botlib/be_interface.c
+ @${REINPLACE_CMD} -e \
+ 's|//[[:blank:]]*\(Swap_Init[[:blank:]]*();\)|\1|' \
+ ${WRKSRC}/code/botlib/be_interface.c \
+ ${WRKSRC}/code/qcommon/common.c \
+ ${WRKSRC}/code/renderer/tr_init.c
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/code/install/linuxq3ded \
- ${PREFIX}/bin/q3ded
- ${INSTALL_PROGRAM} ${WRKSRC}/code/install/linuxquake3 \
- ${PREFIX}/bin/quake3
+.for bin in ${Q3BIN}
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/release/${bin} ${PREFIX}/bin
+.endfor
+.if defined(WITH_GAMELIBS) || ${ARCH} != "i386"
+.for dir in baseq3 missionpack
+ ${MKDIR} ${LIBDIR}/${dir}
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/release/${dir}/*.so ${LIBDIR}/${dir}
+.endfor
+.endif
.include "${.CURDIR}/../quake3-data/Makefile.include"
.include <bsd.port.post.mk>