1 # Created by: Ryan Steinmetz <rpsfa@rit.edu>
6 PORTREVISION= ${DHCP_PORTREVISION}
8 MASTER_SITES= ISC/${PORTNAME}/${DISTVERSION}
10 PKGNAMESUFFIX= 42-${SUBSYS}
11 #DISTNAME= ${PORTNAME}-${DISTVERSION}-${PATCHLEVEL}
13 MAINTAINER= zi@FreeBSD.org
14 COMMENT?= ISC Dynamic Host Configuration Protocol server
21 PORTREVISION_SERVER= 0
22 PORTREVISION_CLIENT= 0
26 #WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}-${PATCHLEVEL}
28 UNIQUENAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
33 .if ${SUBSYS} == server
34 OPTIONS_DEFINE+= PARANOIA LDAP LDAP_SSL BIND_SYMBOLS
35 OPTIONS_DEFAULT+= PARANOIA LDAP_SSL
36 PARANOIA_DESC= Enable support for chroot
37 LDAP_SSL_DESC= Support LDAP over SSL/TLS
38 BIND_SYMBOLS_DESC= Enable BIND internal symbol table
41 # PORTREVISION and CONFLICTS handling
42 .if ${SUBSYS} == client
43 CONFLICTS= isc-dhcp3?-client-[0-9]* isc-dhcp4[13]-client-[0-9]*
44 DHCP_PORTREVISION= ${PORTREVISION_CLIENT}
45 .elif ${SUBSYS} == relay
46 CONFLICTS= isc-dhcp3?-relay-[0-9]* isc-dhcp4[13]-relay-[0-9]*
47 DHCP_PORTREVISION= ${PORTREVISION_RELAY}
49 CONFLICTS= isc-dhcp3?-server-[0-9]* isc-dhcp4[13]-server-[0-9]*
50 DHCP_PORTREVISION= ${PORTREVISION_SERVER}
54 .if ${SUBSYS} == server
61 CPPFLAGS+= -D_PATH_DHCLIENT_SCRIPT='\"${PREFIX}/sbin/dhclient-script\"' -D_PATH_DHCLIENT_CONF='\"${PREFIX}/etc/dhclient.conf\"' -D_PATH_DHCPD_CONF='\"${PREFIX}/etc/dhcpd.conf\"'
62 SCRIPTS_ENV+= PKG_PREFIX=${PREFIX}
64 .include <bsd.port.options.mk>
66 .if ${SUBSYS} == server
67 CONFIGURE_ARGS+=--localstatedir=/var
71 DESCR= ${.CURDIR}/pkg-descr
72 PLIST= ${.CURDIR}/pkg-plist
74 .if ${SUBSYS} == server
75 USE_RC_SUBR= isc-dhcpd
76 .elif ${SUBSYS} == relay
77 USE_RC_SUBR= isc-dhcrelay
80 SCHEMA_DIR= ${PREFIX}/share/${PKGBASE}
81 DOCSDIR= ${PREFIX}/share/doc/${PKGBASE}
84 MSG_FILE= ${.CURDIR}/pkg-message
85 PKGMESSAGE= ${WRKDIR}/pkg-message
87 REINPLACE_SUB= PREFIX="${PREFIX}"
88 PKGMESSAGE_SUB= PREFIX="${PREFIX}" MAN1PREFIX="${MAN1PREFIX}" \
91 .if ${PORT_OPTIONS:MPARANOIA}
92 CONFIGURE_ARGS+=--enable-paranoia --enable-early-chroot
93 SUB_LIST+= PARANOIA="yes"
95 SUB_LIST+= PARANOIA="no"
98 .if ${PORT_OPTIONS:MLDAP}
99 CONFIGURE_ARGS+=--with-ldap
101 LDAP_SCRIPT= ${WRKSRC}/contrib/ldap/dhcpd-conf-to-ldap
102 LDAP_SCHEMA= ${WRKSRC}/contrib/ldap/dhcp.schema
103 LDAP_README= ${WRKSRC}/contrib/ldap/README.ldap
104 CPPFLAGS+= -I${LOCALBASE}/include
105 LIBS+= -L${LOCALBASE}/lib
106 PORTDOCS+= README.ldap
107 PLIST_SUB+= SCHEMA_DIR="${SCHEMA_DIR:S,^${PREFIX}/,,}" LDAP=""
109 SHEBANG_FILES= contrib/ldap/dhcpd-conf-to-ldap
111 PLIST_SUB+= LDAP="@comment "
114 .if ${PORT_OPTIONS:MLDAP_SSL} && ${PORT_OPTIONS:MLDAP}
116 CONFIGURE_ARGS+=--with-ldapcrypto
118 .include "${PORTSDIR}/Mk/bsd.openssl.mk"
121 .if ${PORT_OPTIONS:MIPV6}
122 CONFIGURE_ARGS+=--enable-dhcpv6
125 CONFIGURE_ARGS+=--disable-dhcpv6
126 PLIST_SUB+= IPV6="@comment "
129 .if ${PORT_OPTIONS:MBIND_SYMBOLS}
132 EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-bind__Makefile
136 @${SED} ${PKGMESSAGE_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
137 ${MSG_FILE} > ${PKGMESSAGE}
138 @${REINPLACE_CMD} -e 's|/usr/local||g' \
139 ${WRKSRC}/doc/examples/dhcpd-dhcpv6.conf
140 @${REINPLACE_CMD} ${REINPLACE_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
141 ${WRKSRC}/client/dhclient.conf.example
144 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/${SUBSYS} install
145 .if ${SUBSYS} == server
146 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/dhcpctl install
147 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/dst install
148 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/omapip install
149 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/includes install
150 ${SETENV} DESTDIR=${STAGEDIR} ${MAKE} -C ${WRKSRC}/common install
151 ${INSTALL_DATA} ${WRKSRC}/dhcpctl/dhcpctl.h ${STAGEDIR}${PREFIX}/include
152 .if ${PORT_OPTIONS:MIPV6}
153 ${INSTALL_DATA} ${WRKSRC}/doc/examples/dhcpd-dhcpv6.conf \
154 ${STAGEDIR}${PREFIX}/etc/dhcpd6.conf.example
156 .if ${PORT_OPTIONS:MLDAP}
157 @${MKDIR} ${STAGEDIR}${SCHEMA_DIR}
158 ${INSTALL_DATA} ${LDAP_SCHEMA} ${STAGEDIR}${SCHEMA_DIR}
159 ${INSTALL_SCRIPT} ${LDAP_SCRIPT} ${STAGEDIR}${PREFIX}/bin
161 .if ${PORT_OPTIONS:MLDAP}
162 ${MKDIR} ${STAGEDIR}${DOCSDIR}
163 ${INSTALL_MAN} ${LDAP_README} ${STAGEDIR}${DOCSDIR}
168 .if ${SUBSYS} == client
169 ${INSTALL_SCRIPT} ${WRKSRC}/client/scripts/freebsd ${STAGEDIR}${PREFIX}/sbin/dhclient-script
170 .elif ${SUBSYS} == server
171 .if ${PORT_OPTIONS:MIPV6}
172 @${LN} -sf isc-dhcpd ${STAGEDIR}${PREFIX}/etc/rc.d/isc-dhcpd6
174 .elif ${SUBSYS} == relay
175 .if ${PORT_OPTIONS:MIPV6}
176 @${LN} -sf isc-dhcrelay ${STAGEDIR}${PREFIX}/etc/rc.d/isc-dhcrelay6
179 @${SED} ${PKGMESSAGE_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
180 ${MSG_FILE} > ${PKGMESSAGE}
182 .include <bsd.port.mk>