# $FreeBSD: tags/RELEASE_11_1_0/net/frr/Makefile 444689 2017-06-29 21:05:33Z olivier $

PORTNAME=	frr
PORTVERSION=	2.0
CATEGORIES=	net ipv6

MAINTAINER=	olivier@FreeBSD.org
COMMENT=	IP routing protocol suite including BGP, IS-IS, OSPF and RIP

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	gawk:lang/gawk
LIB_DEPENDS=	libjson-c.so:devel/json-c

CONFLICTS=	openbgpd-[0-9]* openospfd-[0-9]* zebra-0* quagga-re-[0-9]* quagga-[0-9]*

USE_GITHUB=	yes
GH_ACCOUNT=	FRRouting
GH_PROJECT=	frr
GH_TAGNAME=	frr-2.0

GNU_CONFIGURE=	yes
INSTALL_TARGET=	install-strip
USES=		autoreconf gmake pkgconfig libtool makeinfo readline
USE_LDCONFIG=	yes

INFO=		frr

OPTIONS_DEFINE=		FPM LDPD PAM SHELLACCESS TCPSOCKETS VTYSH MULTIPATH TCMALLOC
OPTIONS_DEFAULT=	VTYSH
OPTIONS_SUB=	yes
# SNMP option build failed
# checksum.c:79:21: warning: implicit declaration of function 'typeof' is
#   invalid in C99 [-Wimplicit-function-declaration]
# IRDP option needs something freebsd does not seem to have:
# configure: error: 'IRDP requires in_pktinfo at the moment!'

FPM_DESC= 		Enable Forwarding Plane Manager support
LDPD_DESC=		Build ldpd
MULTIPATH_DESC=		Enable multipath function
PAM_DESC=		Use libpam for PAM support in vtysh
SHELLACCESS_DESC=	Allow users to access shell/telnet/ssh
SNMP_DESC= 		SNMP support
TCMALLOC_DESC=		Use tcmalloc
TCPSOCKETS_DESC=	Use TCP/IP sockets for protocol daemons
VTYSH_DESC=		Build integrated vty shell

USERS=	frr
GROUPS=	frr frrvty

CPPFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib
INSTALL_TARGET=	install-strip

# PIM compile but didn't work on FreeBSD
CONFIGURE_ARGS=	--enable-user=frr \
		--enable-group=frr \
		--enable-vty-group=frrvty \
		--sysconfdir=${ETCDIR} \
		--localstatedir=/var/run/frr \
		--disable-pimd

SHELLACCESS_CONFIGURE_ENABLE=	shell-access
FPM_CONFIGURE_ENABLE=		fpm
PAM_CONFIGURE_WITH=		libpam
LDPD_CONFIGURE_ENABLE=		ldpd
MULTIPATH_CONFIGURE_ON=		--enable-multipath=64
TCMALLOC_CONFIGURE_ENABLE=	tcmalloc
TCMALLOC_LIB_DEPENDS=		libtcmalloc.so:devel/google-perftools
SNMP_CONFIGURE_ENABLE=		snmp
SNMP_LIB_DEPENDS=		libnetsnmp.so:net-mgmt/net-snmp
TCPSOCKETS_CONFIGURE_ENABLE=	tcp-zebra
VTYSH_CONFIGURE_ENABLE=		vtysh

USE_RC_SUBR=	frr watchfrr

post-install:
	${MKDIR} ${STAGEDIR}/var/run/frr

.include <bsd.port.mk>
