1# Created by: asami
2
3PORTNAME=	nethack36
4PORTVERSION=	3.6.7
5CATEGORIES=	games
6MASTER_SITES=	https://nethack.org/download/${PORTVERSION}/
7DISTNAME=	${TRUEPORTNAME}-${PORTVERSION:S/.//g}-src
8
9MAINTAINER=	ports@MidnightBSD.org
10COMMENT=	Dungeon explorin', slashin', hackin' game
11WWW=		https://www.nethack.org/
12
13LICENSE=	nethack
14LICENSE_NAME=	NETHACK GENERAL PUBLIC LICENSE
15LICENSE_FILE=	${WRKSRC}/dat/license
16LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
17
18USES=		compiler:c11 gmake ncurses tar:tgz
19
20FAKE_OPTS=	trueprefix
21
22WRKSRC=		${WRKDIR}/NetHack-${PORTVERSION}
23
24MAKE_ENV=	GRAPHICS="${GRAPHICS}"
25PLIST_SUB=	HACKNAME="${HACKNAME}" \
26		HACKEXT="${HACKEXT}"
27TRUEPORTNAME=	nethack
28
29# Configure these variables as you want them to be.
30HACKEXT?=	36
31HACKNAME?=	${TRUEPORTNAME}${HACKEXT}
32HACKDIR?=	share/${HACKNAME}
33HACKLINK=	${TRUEPORTNAME}
34
35DATADIR=	${TRUE_PREFIX}/${HACKDIR}
36DOCSDIR=	${TRUE_PREFIX}/share/doc/${HACKNAME}
37PKGDEINSTALL=	${WRKDIR}/pkg-deinstall
38
39.if !defined(PKGNAMESUFFIX)
40USES+=		xorg
41USE_XORG=	xaw xpm xmu xext xt x11 sm ice
42CFLAGS+=	-DX11_GRAPHICS -DUSE_TILES
43GRAPHICS=	X11_GRAPHICS
44.else
45.if ${PKGNAMESUFFIX} == "-nox11"
46GRAPHICS=	# none
47.endif
48.endif
49CFLAGS+=	-DNOMAIL -DCURSES_GRAPHICS
50
51OPTIONS_DEFINE=	DOCS
52
53.include <bsd.port.pre.mk>
54
55.if !exists(${PREFIX}/bin/${HACKLINK}) && ${HACKNAME} != ${HACKLINK}
56PLIST_SUB+=	HACKLINK=""
57.else
58PLIST_SUB+=	HACKLINK="@comment "
59.endif
60
61post-patch:
62	@${REINPLACE_CMD} -e \
63		's|%%PREFIX%%|${TRUE_PREFIX}|g' ${WRKSRC}/include/config.h
64	@${REINPLACE_CMD} -e \
65		's|<malloc.h>|<stdlib.h>|g' ${WRKSRC}/win/Qt/qt_win.cpp
66.for f in sys/unix/Makefile.doc sys/unix/Makefile.src sys/unix/Makefile.top
67	@${REINPLACE_CMD} -e 's|%%HACKNAME%%|${HACKNAME}|g' \
68		-e 's|%%HACKDIR%%|${TRUE_PREFIX}/${HACKDIR}|g' \
69		-e 's|%%HACKEXT%%|${HACKEXT}|g' \
70		${WRKSRC}/${f}
71.endfor
72.for f in dgn_comp.6 dlb.6 lev_comp.6 nethack.6 recover.6
73	@${REINPLACE_CMD} -e 's|%%HACKNAME%%|${HACKNAME}|g' \
74		-e 's|%%HACKDIR%%|${TRUE_PREFIX}/${HACKDIR}|g' \
75		-e 's|%%HACKEXT%%|${HACKEXT}|g' \
76		${WRKSRC}/doc/${f}
77.endfor
78.if defined(WITHOUT_SHELL)
79	@${REINPLACE_CMD} -e 's|#define SHELL|/* #define SHELL|' ${WRKSRC}/include/unixconf.h
80.endif
81.if defined(WITH_MAIL)
82	@${REINPLACE_CMD} -e 's|/\* #define MAIL \*/|#define MAIL|' ${WRKSRC}/include/unixconf.h
83.endif
84
85do-configure:
86	@cd ${WRKSRC}/sys/unix; ${SH} setup.sh
87
88pre-install:
89	@${CAT} ${FILESDIR}/pkg-deinstall.in | ${SED} \
90		-e 's|%%HACKDIR%%|${HACKDIR}|g' > ${PKGDEINSTALL}
91
92post-install:
93.if !exists(${PREFIX}/bin/${HACKLINK}) && ${HACKNAME} != ${HACKLINK}
94	@${LN} -s -f ${PREFIX}/bin/${HACKNAME} ${PREFIX}/bin/${HACKLINK}
95.endif
96	@cd ${WRKSRC}/doc; ${SETENV} ${MAKE_ENV} ${FAKE_MAKEENV} ${MAKE} ${MAKE_ARGS} ${FAKE_MAKEARGS} manpages
97	${MKDIR} ${FAKE_DESTDIR}${DATADIR}/save
98	${CP} ${WRKSRC}/sys/unix/sysconf ${FAKE_DESTDIR}/${DATADIR}/sysconf
99	# Make sysconf a sample to prevent it being removed if altered
100	${CP} ${FAKE_DESTDIR}/${DATADIR}/sysconf ${FAKE_DESTDIR}/${DATADIR}/sysconf.sample
101	# Make "sample" files from records to prevent them being removed
102	# if they have been altered
103	${CP} ${FAKE_DESTDIR}/${DATADIR}/logfile ${FAKE_DESTDIR}/${DATADIR}/logfile.sample
104	${CP} ${FAKE_DESTDIR}/${DATADIR}/record ${FAKE_DESTDIR}/${DATADIR}/record.sample
105	${CP} ${FAKE_DESTDIR}/${DATADIR}/xlogfile ${FAKE_DESTDIR}/${DATADIR}/xlogfile.sample
106.if ${PORT_OPTIONS:MDOCS}
107	${MKDIR} ${FAKE_DESTDIR}${DOCSDIR}
108	${INSTALL_DATA} ${WRKSRC}/doc/Guidebook.txt ${FAKE_DESTDIR}${DOCSDIR}
109.endif
110
111.include <bsd.port.post.mk>
112