aboutsummaryrefslogtreecommitdiff
path: root/games/eduke32/Makefile
blob: 1612d6dde203770d99db4e79c5d3141ad8bc9415 (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
# Created by: alepulver

PORTNAME=	eduke32
PORTVERSION=	20210404
CATEGORIES=	games
MASTER_SITES=	http://dukeworld.com/eduke32/synthesis/${PORTVERSION}-${GITREVISION}/:eduke32 \
		http://www.duke4.org/files/nightfright/hrp/:hrp \
		http://burnbit.com/download/447717/:hrp \
		http://www.duke4.org/files/nightfright/related/:related \
		http://dukeworld.com/classic%20dukeworld/share/:shareware \
		https://image.dosgamesarchive.com/games/:shareware \
		https://www.quaddicted.com/files/idgames2/planetquake/planetduke/:shareware \
		https://ftp.swin.edu.au/gentoo/distfiles/:shareware \
		ftp://ftp.3drealms.com/share/:shareware \
		https://github.com/NightFright2k19/voxelpack/releases/download/2.0-rc1/:voxel
DISTFILES=	${PORTNAME}_src_${PORTVERSION}-${GITREVISION}${EXTRACT_SUFX}:eduke32
EXTRACT_ONLY=	${PORTNAME}_src_${PORTVERSION}-${GITREVISION}${EXTRACT_SUFX}

MAINTAINER=	pkubaj@FreeBSD.org
COMMENT=	Duke Nukem 3D Port based on JFDuke and EDuke

LICENSE=	GPLv2 BUILDLIC
LICENSE_COMB=	multi
LICENSE_NAME_BUILDLIC=	BUILD SOURCE CODE LICENSE
LICENSE_FILE_BUILDLIC=	${WRKSRC}/source/build/buildlic.txt
LICENSE_FILE_GPLv2=	${WRKSRC}/source/duke3d/gpl-2.0.txt
LICENSE_PERMS_BUILDLIC=	dist-mirror pkg-mirror auto-accept

LIB_DEPENDS=	libFLAC.so:audio/flac \
		libogg.so:audio/libogg \
		libvorbis.so:audio/libvorbis \
		libvpx.so:multimedia/libvpx \
		libpng.so:graphics/png

USES=		compiler:c11 dos2unix gl gmake gnome localbase pkgconfig sdl tar:xz
USE_GL=		gl glu
USE_GNOME=	gtk20
USE_SDL=	sdl2 mixer2
WRKSRC=		${WRKDIR}/${PORTNAME}_${PORTVERSION}-${GITREVISION}
GITREVISION=	9321-7225643e3
DATADIR=	${PREFIX}/share/duke3d
SUB_FILES=	pkg-message
MAKEFILE=	GNUmakefile
MAKE_ARGS=	CC=${CC} CXX=${CXX}

PLIST_FILES=	bin/eduke32 bin/mapster32
PORTEXAMPLES=	*

OPTIONS_DEFINE=		EXAMPLES HRP OFFENSIVE VOXEL
OPTIONS_RADIO=		GAMEDATA
OPTIONS_RADIO_GAMEDATA=	SHAREWARE FULL
OPTIONS_DEFINE_amd64=	ASM
OPTIONS_DEFAULT_amd64=	ASM
OPTIONS_DEFINE_i386=	ASM
OPTIONS_DEFAULT_i386=	ASM

ASM_BUILD_DEPENDS=	nasm:devel/nasm
ASM_MAKE_ARGS_OFF=	NOASM=1
HRP_DESC=		Install High Resolution Pack
HRP_DISTFILES=		duke3d_hrp.zip:hrp
HRP_PLIST_FILES=	${DATADIR}/duke3d_hrp.zip
OFFENSIVE_DESC=		Install Full XXX Pack
OFFENSIVE_IMPLIES=	HRP
OFFENSIVE_DISTFILES=	duke3d_xxx.zip:related
OFFENSIVE_PLIST_FILES=	${DATADIR}/duke3d_xxx.zip
SHAREWARE_DESC=		Install shareware game data version 1.3
SHAREWARE_EXTRACT_ONLY=	3dduke13.zip
SHAREWARE_DISTFILES=	3dduke13.zip:shareware
SHAREWARE_PLIST_FILES=	${DATADIR}/duke3d.grp ${DATADIR}/duke.rts
VOXEL_DESC=		Install Voxel Pack
VOXEL_DISTFILES=	duke3d_voxels.zip:voxel
VOXEL_PLIST_FILES=	${DATADIR}/duke3d_voxels.zip
FULL_DESC=		Install duke3d.grp and duke.rts from $${DISTDIR}/duke3d
FULL_DISTFILES=		duke3d/duke3d.grp duke3d/duke.rts
FULL_PLIST_FILES=	${DATADIR}/duke3d.grp ${DATADIR}/duke.rts

.include <bsd.port.options.mk>

.if (${ARCH} == i386 || ${ARCH} == powerpc64) || ${OSVERSION} < 1202000
MAKE_ARGS+=	LTO=0
.endif

.if ${PORT_OPTIONS:MFULL}

# Avoid checksumming original (commercial) game data files: A variety of
# editions exist with the same file names and they should all work.
# This is a hack that would break when bsd.port.mk changes or DIST_SUBDIR
# is set.
_CKSUMFILES=	${ALLFILES:Nduke3d/duke*}

.if !exists(${DISTDIR}/duke3d/duke3d.grp) && !exists(${DISTDIR}/duke3d/duke.rts)
IGNORE=	option FULL selected, but duke3d.grp or duke.rts not found in ${DISTDIR}/duke3d
.endif

.endif

.include <bsd.port.pre.mk>

.if ${CHOSEN_COMPILER_TYPE} == clang
MAKE_ARGS+=	CLANG=1
.endif

post-extract-SHAREWARE-on:
	@cd ${WRKDIR} && ${UNZIP_NATIVE_CMD} -qo DN3DSW13.SHR

post-patch:
	@${REINPLACE_CMD} 's|/usr/share/games/eduke32|${DATADIR}|' \
		${WRKSRC}/source/duke3d/src/common.cpp

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/eduke32 ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/mapster32 ${STAGEDIR}${PREFIX}/bin

do-install-EXAMPLES-on:
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	${INSTALL_DATA} ${WRKSRC}/package/sdk/tiles.cfg ${STAGEDIR}${EXAMPLESDIR}
	${INSTALL_DATA} ${WRKSRC}/package/sdk/samples/* ${STAGEDIR}${EXAMPLESDIR}

do-install-HRP-on:
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${DISTDIR}/duke3d_hrp.zip ${STAGEDIR}${DATADIR}/duke3d_hrp.zip

do-install-OFFENSIVE-on:
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${DISTDIR}/duke3d_xxx.zip ${STAGEDIR}${DATADIR}/duke3d_xxx.zip

do-install-SHAREWARE-on:
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKDIR}/DUKE3D.GRP ${STAGEDIR}${DATADIR}/duke3d.grp
	${INSTALL_DATA} ${WRKDIR}/DUKE.RTS ${STAGEDIR}${DATADIR}/duke.rts

do-install-VOXEL-on:
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${DISTDIR}/duke3d_voxels.zip ${STAGEDIR}${DATADIR}/duke3d_voxels.zip

do-install-FULL-on:
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${DISTDIR}/duke3d/duke3d.grp ${STAGEDIR}${DATADIR}/duke3d.grp
	${INSTALL_DATA} ${DISTDIR}/duke3d/duke.rts ${STAGEDIR}${DATADIR}/duke.rts

.include <bsd.port.post.mk>