diff options
author | alepulver <alepulver@FreeBSD.org> | 2006-07-24 02:56:26 +0800 |
---|---|---|
committer | alepulver <alepulver@FreeBSD.org> | 2006-07-24 02:56:26 +0800 |
commit | 9fc8ec49dfbba1e61e8c4ea86a294e1a0ef611d7 (patch) | |
tree | d885180368e9d4eee667641cd9b6a14f0c998a17 /games/cleanq3/Makefile | |
parent | 2fd6173bb8db9e9f2a87b2e8bd1a4d803737e196 (diff) | |
download | freebsd-ports-gnome-9fc8ec49dfbba1e61e8c4ea86a294e1a0ef611d7.tar.gz freebsd-ports-gnome-9fc8ec49dfbba1e61e8c4ea86a294e1a0ef611d7.tar.zst freebsd-ports-gnome-9fc8ec49dfbba1e61e8c4ea86a294e1a0ef611d7.zip |
- Bump PORTREVISION.
- Use Makefile for building instead of scons, and remove Perl dependency.
- Use pkg-plist.
- Add OPTIONS. Allow to build without X11, threaded version, etc.
- Fix building on non-i386 and FreeBSD 4.X.
- Respect CFLAGS when optimizations are enabled.
- Add patch to fix 2 security vulnerabilities [1].
PR: ports/98295
Submitted by: alepulver (myself)
Approved by: maintainer (timeout)
Obtained from: q3icculus (http://icculus.org/quake3/) [1]
Security: CVE-2006-2082 [1]
Diffstat (limited to 'games/cleanq3/Makefile')
-rw-r--r-- | games/cleanq3/Makefile | 127 |
1 files changed, 80 insertions, 47 deletions
diff --git a/games/cleanq3/Makefile b/games/cleanq3/Makefile index 17f232a76a0d..041da4d3aaca 100644 --- a/games/cleanq3/Makefile +++ b/games/cleanq3/Makefile @@ -7,6 +7,7 @@ PORTNAME= cleanq3 PORTVERSION= 0.5.2 +PORTREVISION= 1 CATEGORIES= games MASTER_SITES= http://tremor.quakedev.com/ DISTNAME= CleanQ3_v${PORTVERSION}-srcbin @@ -14,72 +15,104 @@ DISTNAME= CleanQ3_v${PORTVERSION}-srcbin MAINTAINER= danfe@FreeBSD.org COMMENT= Cleaned up copy of the original Quake III Arena source code -BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm - USE_ZIP= yes -USE_PERL5_BUILD=yes USE_DOS2UNIX= yes +USE_GMAKE= yes USE_GCC= 3.2+ -USE_GL= yes - WRKSRC= ${WRKDIR}/CleanQ3 -INSTDIR= ${WRKSRC}/code/install +BUILD_WRKSRC= ${WRKSRC}/code/unix -PLIST_FILES= bin/cleanq3 bin/cleanq3ded \ - lib/cleanq3/baseq3/cgame.so \ - lib/cleanq3/baseq3/qagame.so \ - lib/cleanq3/baseq3/ui.so \ - lib/cleanq3/missionpack/cgame.so \ - lib/cleanq3/missionpack/qagame.so \ - lib/cleanq3/missionpack/ui.so -PLIST_DIRS= lib/cleanq3/baseq3 lib/cleanq3/missionpack lib/cleanq3 +OPTIONS= CLIENT "Build client" on \ + DEDICATED "Build dedicated server" on \ + GAMELIBS "Build game libraries (when not mandatory)" off \ + OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ + SMP "Build SMP (threaded) client" on -OPTIONS= OPTIMIZED_CFLAGS "Build with extra optimization options" on +MAKE_ENV= LIBDIR="${LIBDIR}" +PLIST_SUB= LIBDIR="${LIBDIR:S/${PREFIX}\///}" + +LIBDIR= ${PREFIX}/lib/${PORTNAME} +VM_ARCHS= i386 powerpc .include <bsd.port.pre.mk> -.if ${ARCH} != "i386" -BROKEN= Does not compile on ${ARCH} +.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) && \ + defined(WITHOUT_SMP) +IGNORE= needs at least one of CLIENT, DEDICATED and SMP options +.endif + +.if ${ARCH} == "i386" +BUILD_DEPENDS+= nasm:${PORTSDIR}/devel/nasm .endif -.if ${OSVERSION} < 500000 -BROKEN= Does not compile on 4.x +.for i in ${ARCH} +. if ${VM_ARCHS:M${i}} != "" +HAVE_VM_COMPILED= yes +. endif +.endfor + +.if !defined(HAVE_VM_COMPILED) +MAKE_ENV+= DLL_ONLY=true .endif -.if defined(WITH_OPTIMIZED_CFLAGS) -CFLAGS= -O6 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 \ - -falign-functions=2 -fno-strict-aliasing -fstrength-reduce +.if !defined(WITHOUT_CLIENT) || !defined(WITHOUT_SMP) +USE_GL= yes .endif -post-patch: .SILENT - ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g ; \ - s|%%X11BASE%%|${X11BASE}|g ; s|%%CFLAGS%%|${CFLAGS}|' \ - ${WRKSRC}/code/Construct ${WRKSRC}/code/unix/Conscript-client - ${REINPLACE_CMD} -e 's|-ldl || ; s|i386\.so|\.so|' \ - ${WRKSRC}/code/cgame/Conscript \ - ${WRKSRC}/code/game/Conscript ${WRKSRC}/code/q3_ui/Conscript \ - ${WRKSRC}/code/unix/Conscript-dedicated \ - ${WRKSRC}/code/ui/Conscript - ${REINPLACE_CMD} -e 's|%%Q3DIR%%|"${Q3DIR}"|' \ - ${WRKSRC}/code/unix/unix_shared.c - ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \ - ${WRKSRC}/code/unix/unix_main.c - ${REINPLACE_CMD} -e 's|botlib.log|/dev/null|' \ - ${WRKSRC}/code/botlib/be_interface.c +.if !defined(WITHOUT_CLIENT) +MAKE_ENV+= CLIENT=YES +PLIST_SUB+= CLIENT="" +Q3BIN+= cleanq3 +.else +PLIST_SUB+= CLIENT="@comment " +.endif -do-build: - cd ${WRKSRC}/code && ${MAKE_ENV} ${PERL} unix/cons +.if !defined(WITHOUT_DEDICATED) +MAKE_ENV+= DEDICATED=YES +PLIST_SUB+= DEDICATED="" +Q3BIN+= cleanq3ded +.else +PLIST_SUB+= DEDICATED="@comment " +.endif + +.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED) +MAKE_ENV+= GAMELIBS=YES +PLIST_SUB+= GAMELIBS="" +.else +PLIST_SUB+= GAMELIBS="@comment " +.endif + +.if !defined(WITHOUT_OPTIMIZED_CFLAGS) +MAKE_ENV+= OPTIMIZED_CFLAGS=YES +.endif + +.if !defined(WITHOUT_SMP) +MAKE_ENV+= SMP=YES \ + PTHREAD_LIBS="${PTHREAD_LIBS}" +PLIST_SUB+= SMP="" +Q3BIN+= cleanq3-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/renderer/tr_init.c do-install: - ${INSTALL_PROGRAM} ${INSTDIR}/linuxquake3 ${PREFIX}/bin/cleanq3 - ${INSTALL_PROGRAM} ${INSTDIR}/linuxq3ded ${PREFIX}/bin/cleanq3ded -.for d in baseq3 missionpack - @${MKDIR} ${PREFIX}/lib/cleanq3/${d} - ${INSTALL_PROGRAM} ${INSTDIR}/${d}/cgame.so ${PREFIX}/lib/cleanq3/${d} - ${INSTALL_PROGRAM} ${INSTDIR}/${d}/qagame.so ${PREFIX}/lib/cleanq3/${d} - ${INSTALL_PROGRAM} ${INSTDIR}/${d}/ui.so ${PREFIX}/lib/cleanq3/${d} +.for bin in ${Q3BIN} + ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/release/${bin} ${PREFIX}/bin +.endfor +.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED) +.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> |