summaryrefslogtreecommitdiff
path: root/games/uhexen2/Makefile
blob: 138a851dcd16f9a2ddf4abd1eee953200597049d (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
# Created by: alepulver
# $FreeBSD$

PORTNAME=	uhexen2
PORTVERSION=	1.5.7
CATEGORIES=	games
MASTER_SITES=	SF/${PORTNAME}/Hammer%20of%20Thyrion/${PORTVERSION}/Source \
		SF/${PORTNAME}/Hexen2%20GameData/gamedata-1.29:data \
		SF/${PORTNAME}/Hexen2%20GameData/hexenworld-pakfiles:hw
DISTNAME=	hexen2source-${PORTVERSION}
DISTFILES=	${DISTNAME}${EXTRACT_SUFX} \
		gamedata-all-1.29${EXTRACT_SUFX}:data
DIST_SUBDIR=	${PORTNAME}

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Hexen II source port supporting Linux/FreeBSD/Unix/Windows

LICENSE=	GPLv2+
LICENSE_FILE=	${WRKSRC}/LICENSE.txt

USES=		gmake pkgconfig tar:tgz
USE_GL=		gl
USE_SDL=	sdl
MAKE_ARGS=	X11BASE="${LOCALBASE}"
MAKE_JOBS_UNSAFE=	yes

SUB_FILES=	pkg-message

PORTSCOUT=	skipb:yes

OPTIONS_DEFINE=		DOCS FLAC MIKMOD OGG OPUS
OPTIONS_MULTI=		BIN
OPTIONS_MULTI_BIN=	HEXEN2 HW
OPTIONS_RADIO=		MP3LIB VORBISLIB
OPTIONS_RADIO_MP3LIB=	MAD MPG123
OPTIONS_RADIO_VORBISLIB=	TREMOR VORBIS
OPTIONS_DEFAULT=	HEXEN2 HW MAD OGG VORBIS
OPTIONS_DEFINE_i386=	ASM
OPTIONS_DEFAULT_i386=	ASM
OPTIONS_SUB=		yes

ASM_BUILD_DEPENDS=	nasm:devel/nasm
ASM_MAKE_ARGS_OFF=	USE_X86_ASM=no
FLAC_LIB_DEPENDS=	libFLAC.so:audio/flac
FLAC_MAKE_ARGS=		USE_CODEC_FLAC=yes
HEXEN2_DESC=		Build Hexen II clients and servers
HEXEN2_MAKE_ARGS=	BUILD_HEXEN2=yes
HW_DESC=		Build HexenWorld clients and servers
HW_DISTFILES=		hexenworld-pakfiles-0.15${EXTRACT_SUFX}:hw
HW_MAKE_ARGS=		BUILD_HW=yes
MAD_LIB_DEPENDS=	libmad.so:audio/libmad
MAD_MAKE_ARGS=		MP3LIB=mad
MIKMOD_LIB_DEPENDS=	libmikmod.so:audio/libmikmod
MIDMOD_MAKE_ARGS=	USE_CODEC_MIKMOD=yes
MP3LIB_DESC=		MP3 audio codec
MPG123_LIB_DEPENDS=	libmpg123.so:audio/mpg123
MPG123_MAKE_ARGS=	MP3LIB=mpg123
OGG_LIB_DEPENDS=	libogg.so:audio/libogg
OGG_MAKE_ARGS_OFF=	USE_CODEC_OGG=no
OPUS_LIB_DEPENDS=	libopusfile.so:audio/opusfile
OPUS_MAKE_ARGS=		USE_CODEC_OPUS=yes
OPUS_IMPLIES=		OGG
TREMOR_LIB_DEPENDS=	libvorbisidec.so:audio/libtremor
TREMOR_MAKE_ARGS=	VORBISLIB=tremor
TREMOR_IMPLIES=		OGG
VORBIS_LIB_DEPENDS=	libvorbis.so:audio/libvorbis
VORBIS_MAKE_ARGS=	VORBISLIB=vorbis
VORBIS_IMPLIES=		OGG
VORBISLIB_DESC=		Vorbis audio codec

.include <bsd.port.options.mk>

.if !${PORT_OPTIONS:MMAD} && !${PORT_OPTIONS:MMPG123}
MAKE_ARGS+=	USE_CODEC_MP3=no
.endif

.if !${PORT_OPTIONS:MTREMOR} && !${PORT_OPTIONS:MVORBIS}
MAKE_ARGS+=	USE_CODEC_VORBIS=no
.endif

post-extract:
	@${CP} ${FILESDIR}/${MAKEFILE} ${WRKSRC}

post-patch:
.for f in engine/hexen2/Makefile engine/hexenworld/client/Makefile \
	engine/hexenworld/server/Makefile hw_utils/hwmaster/Makefile \
	libs/timidity/Makefile
	@${REINPLACE_CMD} -e \
		'/^CPU_X86/s|=.*|=| ; \
		 /^CFLAGS/s| -g | | ; \
		 /^CFLAGS/s| -O2 | | ;' ${WRKSRC}/${f}
.endfor
.for f in engine/h2shared/cd_bsd.c
	@${REINPLACE_CMD} -e \
		's|"acd0"|"cd0"|' ${WRKSRC}/${f}
.endfor
.for f in engine/hexen2/sys_unix.c engine/hexenworld/client/sys_unix.c
	@${REINPLACE_CMD} -e \
		'/parms.basedir/s|= cwd;|= "${DATADIR}";|' ${WRKSRC}/${f}
.endfor

do-install:
	@${MKDIR} ${STAGEDIR}${DATADIR}/data1
.for f in default.cfg hexen.rc progs.dat progs2.dat strings.txt
	${INSTALL_DATA} ${WRKDIR}/data1/${f} ${STAGEDIR}${DATADIR}/data1
.endfor
	${INSTALL_DATA} ${WRKDIR}/patchdat/data1/* ${STAGEDIR}${DATADIR}/data1
	(cd ${WRKDIR} && ${COPYTREE_SHARE} portals ${STAGEDIR}${DATADIR})

post-install-HW-on:
	${INSTALL_PROGRAM} ${WRKSRC}/engine/hexenworld/client/glhwcl ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/engine/hexenworld/client/hwcl ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/engine/hexenworld/server/hwsv ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/hw_utils/hwmaster/hwmaster ${STAGEDIR}${PREFIX}/bin
	${MKDIR} ${STAGEDIR}${DATADIR}/hw
	${INSTALL_DATA} ${WRKDIR}/hw/* ${STAGEDIR}${DATADIR}/hw

post-install-HEXEN2-on:
	${INSTALL_PROGRAM} ${WRKSRC}/engine/hexen2/glhexen2 ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/engine/hexen2/hexen2 ${STAGEDIR}${PREFIX}/bin

post-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/docs/* ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>