summaryrefslogtreecommitdiff
path: root/dns/dnsmasq-devel/Makefile
blob: c0762595e608e74b9c54341d009e57ba86fb8a8f (plain)
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
142
143
144
145
146
147
148
149
# Created by: Steven Honson

PORTNAME=	dnsmasq
DISTVERSION=	2.87test8
# Leave the PORTREVISION in even if 0 to avoid accidental PORTEPOCH bumps:
PORTREVISION=	1
PORTEPOCH=	4 # attn - different between -devel and dnsmasq ports!
CATEGORIES=	dns
#MASTER_SITES=	https://www.thekelleys.org.uk/dnsmasq/release-candidates/ \
#		LOCAL/mandree/
MASTER_SITES=	https://www.thekelleys.org.uk/dnsmasq/test-releases/ \
		LOCAL/mandree/
PKGNAMESUFFIX=	-devel

MAINTAINER=	mandree@FreeBSD.org
COMMENT=	Lightweight DNS forwarder, DHCP, and TFTP server

#IGNORE=		please use dns/dnsmasq, which is newer # re-enable after 2.87 release
DEPRECATED=	Short-lived test branch, to be removed after v2.87 release

LICENSE=	GPLv2

USES=		cpe shebangfix tar:xz
CPE_VENDOR=	thekelleys

SHEBANG_FILES=	contrib/dnslist/dnslist.pl \
		contrib/dynamic-dnsmasq/dynamic-dnsmasq.pl

MAKE_ARGS=	CC="${CC}" \
		CFLAGS="${CFLAGS}" \
		COPTS="${CFLAGS}" \
		LIBS="${LDFLAGS}" \
		PREFIX="${PREFIX}" \
		RPM_OPT_FLAGS="${CPPFLAGS}"
CFLAGS+=	-Wall -Wno-unused-function -Wno-unused-parameter \
		-Wno-unused-value -Wno-unused-variable
CPPFLAGS+=	-I${LOCALBASE}/include

CONFLICTS_INSTALL=	dnsmasq-2*
PATCH_STRIP=		-p1
SUB_FILES=		pkg-message

PORTDOCS=	CHANGELOG CHANGELOG.archive FAQ doc.html setup.html

OPTIONS_DEFINE=		DBUS DNSSEC DOCS IPSET IPV6 LUA
OPTIONS_DEFAULT=	DNSSEC IPSET
OPTIONS_RADIO=		INTL
OPTIONS_RADIO_INTL=	IDN NLS
OPTIONS_EXCLUDE+=	EXAMPLES

DNSSEC_DESC=	Enable DNSSEC caching and validation (needs nettle)
IDN_DESC=	IDN: Int'l Domain Names WITHOUT full NLS
INTL_DESC=	Internationalization Support Level
IPSET_DESC=	Dynamic firewall management of resolved names (needs PF)
LUA_DESC=	Support lease-change scripts written in Lua
NLS_DESC=	IDN+NLS: Int'l Domain Names & National Language support

IPSET_CFLAGS_OFF=	-DNO_IPSET
IPV6_CFLAGS_OFF=	-DNO_IPV6

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MNLS}
USES+=		gettext gmake iconv pkgconfig
CFLAGS+=	-DHAVE_LIBIDN2
LIB_DEPENDS+=	libidn2.so:dns/libidn2
PLIST_SUB+=	NLS=""
ALL_TARGET=	all-i18n
_intllibs=	-lidn2 -lintl
.else
_intllibs=
PLIST_SUB+=	NLS="@comment "
.if ${PORT_OPTIONS:MIDN}
USES+=		iconv
CFLAGS+=	-DHAVE_LIBIDN2
LIB_DEPENDS+=	libidn2.so:dns/libidn2
_intllibs+=	-lidn2
.endif
.endif

.if ${PORT_OPTIONS:MDBUS}
LIB_DEPENDS+=	libdbus-1.so:devel/dbus
USES+=		pkgconfig
CPPFLAGS+=	`pkg-config --cflags dbus-1`
CFLAGS+=	-DHAVE_DBUS
LDFLAGS+=	`pkg-config --libs dbus-1`
.endif

.if ${PORT_OPTIONS:MLUA}
CPPFLAGS+=	-I${LUA_INCDIR}
CFLAGS+=	-DHAVE_LUASCRIPT
LDFLAGS+=	-L${LUA_LIBDIR} -llua-${LUA_VER}
USES+=		lua pkgconfig
.endif

.if ${PORT_OPTIONS:MDNSSEC}
CFLAGS+=	-DHAVE_DNSSEC -I${LOCALBASE}/include
USES+=		pkgconfig
LIB_DEPENDS+=	libgmp.so:math/gmp \
		libnettle.so:security/nettle
.endif

USE_RC_SUBR=	dnsmasq

.include <bsd.port.pre.mk>

LDFLAGS+=	-L${LOCALBASE}/lib ${_intllibs} ${ICONV_LIB}

post-patch:
	${REINPLACE_CMD} -e '/^lua_/s/lua5\.2/lua-${LUA_VER}/' ${WRKSRC}/Makefile

pre-configure: pretty-print-config
.if ${PORT_OPTIONS:MIDN}
.if empty(PORT_OPTIONS:MNLS)
	@if ${READELF} -d ${LOCALBASE}/lib/libidn2.so \
		| ${EGREP} -q '\<NEEDED\>.*\[libintl\.so' ; \
	then ${ECHO} ; ${ECHO} 'WARNING: dns/libidn2 was compiled with NLS support!' ; \
	${ECHO} 'Recompile libidn2 WITHOUT_NLS to get rid of NLS dependencies.' ; ${ECHO} ; \
	fi
.else
	@${ECHO} 'WARNING: IDN and NLS enabled, building IDN WITH NLS.'
.endif
.endif

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/src/dnsmasq ${STAGEDIR}${PREFIX}/sbin
	${INSTALL_DATA} ${WRKSRC}/dnsmasq.conf.example ${STAGEDIR}${PREFIX}/etc/dnsmasq.conf.sample
	${REINPLACE_CMD} -i '' 's}%%PREFIX%%}${PREFIX}}' ${STAGEDIR}${PREFIX}/etc/dnsmasq.conf.sample
	${INSTALL_MAN} ${WRKSRC}/man/${PORTNAME}.8 ${STAGEDIR}${PREFIX}/man/man8
	${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKSRC}/trust-anchors.conf ${STAGEDIR}${DATADIR}/
.if ${PORT_OPTIONS:MDOCS}
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
.endif
.if ${PORT_OPTIONS:MNLS}
.for i in de es fi fr id it no pl pt_BR ro
	${MKDIR} ${STAGEDIR}${PREFIX}/share/locale/${i}/LC_MESSAGES
	${INSTALL_DATA} ${WRKSRC}/src/${i}.mo \
		${STAGEDIR}${PREFIX}/share/locale/${i}/LC_MESSAGES/${PORTNAME}.mo
.endfor
.endif
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/dynamic-dnsmasq ${STAGEDIR}${EXAMPLESDIR}/dnslist
	${INSTALL_SCRIPT} ${WRKSRC}/contrib/dynamic-dnsmasq/dynamic-dnsmasq.pl ${STAGEDIR}${EXAMPLESDIR}/dynamic-dnsmasq/
	${INSTALL_SCRIPT} ${WRKSRC}/contrib/dnslist/dnslist.pl ${STAGEDIR}${EXAMPLESDIR}/dnslist/
	${INSTALL_DATA} ${WRKSRC}/contrib/dnslist/dhcp.css ${STAGEDIR}${EXAMPLESDIR}/dnslist/
	${INSTALL_DATA} ${WRKSRC}/contrib/dnslist/dnslist.tt2 ${STAGEDIR}${EXAMPLESDIR}/dnslist/

.include <bsd.port.post.mk>