# Created by: Kirill Ponomarew <ponomarew@oberon.net>
# $FreeBSD: tags/RELEASE_11_1_0/net-mgmt/pmacct/Makefile 442014 2017-05-29 15:28:04Z sunpoet $

PORTNAME=	pmacct
DISTVERSION=	1.6.1
PORTREVISION=	0
CATEGORIES=	net-mgmt
MASTER_SITES=	http://www.pmacct.net/

MAINTAINER=	pi@FreeBSD.org
COMMENT=	Accounting and aggregation tool for IPv4 and IPv6 traffic

LICENSE=	GPLv2

BROKEN_aarch64=		fails to build: undefined reference to sbrk
BROKEN_powerpc64=	fails to build: cc: Internal error: Segmentation fault (program ld)

USE_RC_SUBR=	pmacctd nfacctd sfacctd
SUB_FILES=	pkg-message
GNU_CONFIGURE=	yes
CPPFLAGS+=	"-I${LOCALBASE}/include"
LDFLAGS+=	"-L${LOCALBASE}/lib"

OPTIONS_DEFINE=	MYSQL PGSQL SQLITE3 THREADS LAYER2 IPV6 DEBUG \
		DOCS PLABEL RABBITMQ KAFKA JANSSON AVRO
OPTIONS_DEFAULT=MMAP LAYER2 THREADS SHARED

AVRO_DESC=	Enable avro support
JANSSON_DESC=	Enable Jansson support
KAFKA_DESC=	Enable Kafka support
LAYER2_DESC=	Enable Layer-2 support: MAC addresses and VLANs
# Requires libnetfilter_log port/package
# NFLOG_DESC=	Enable NFLOG support
# Requires legacy mongo-c-driver version 0.8 which is not available
# MONGO_DESC=	Enable MongoDB support
PLABEL_DESC=	Enable IP prefix labels
RABBITMQ_DESC=	Enable RabbitMQ/AMQP support
SQLITE3_DESC=	Enable SQLite3 support

OPTIONS_RADIO=	GEOLOC
OPTIONS_RADIO_GEOLOC=GEOIP GEOIP2
GEOLOC_DESC=	Geolocation support
GEOIP_DESC=	Enable legacy GeoIP support
GEOIP2_DESC=	Enable GeoIPv2 (libmaxminddb) support

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MMYSQL}
USES+=		mysql
CONFIGURE_ARGS+=--enable-mysql
PLIST_SUB+=	WITH_MYSQL=""
.else
CONFIGURE_ARGS+=--disable-mysql
PLIST_SUB+=	WITH_MYSQL="@comment "
.endif

.if ${PORT_OPTIONS:MPGSQL}
USES+=		pgsql
WANT_PGSQL=	client
CONFIGURE_ARGS+=--enable-pgsql
PLIST_SUB+=	WITH_PGSQL=""
.else
CONFIGURE_ARGS+=--disable-pgsql
PLIST_SUB+=	WITH_PGSQL="@comment "
.endif

.if ${PORT_OPTIONS:MSQLITE3}
USES+=		pkgconfig sqlite
CONFIGURE_ARGS+=--enable-sqlite3 \
		--with-sqlite3-includes=${LOCALBASE}/include
PLIST_SUB+=	WITH_SQLITE3=""
.else
CONFIGURE_ARGS+=--disable-sqlite3
PLIST_SUB+=	WITH_SQLITE3="@comment "
.endif

.if ${PORT_OPTIONS:MLAYER2}
CONFIGURE_ARGS+=--enable-l2
.else
CONFIGURE_ARGS+=--disable-l2
.endif

.if ${PORT_OPTIONS:MIPV6}
CONFIGURE_ARGS+=--enable-ipv6
.else
CONFIGURE_ARGS+=--disable-ipv6
.endif

.if ${PORT_OPTIONS:MPLABEL}
CONFIGURE_ARGS+=--enable-plabel
.else
CONFIGURE_ARGS+=--disable-plabel
.endif

.if ${PORT_OPTIONS:MTHREADS}
CONFIGURE_ARGS+=--enable-threads
.else
CONFIGURE_ARGS+=--disable-threads
.endif

.if ${PORT_OPTIONS:MDEBUG}
CONFIGURE_ARGS+=--enable-debug
.endif

.if ${PORT_OPTIONS:MMONGO}
#CONFIGURE_ARGS+=--enable-mongodb
.else
CONFIGURE_ARGS+=--disable-mongodb
.endif

.if ${PORT_OPTIONS:MRABBITMQ}
.if ${PORT_OPTIONS:MJANSSON}
LIB_DEPENDS+=	libjansson.so:devel/jansson
CONFIGURE_ARGS+=--enable-jansson
.else
IGNORE=		RabbitMQ support requires enabled Jansson support
.endif
LIB_DEPENDS+=	librabbitmq.so:net/rabbitmq-c-devel
CONFIGURE_ARGS+=--enable-rabbitmq
.endif

.if ${PORT_OPTIONS:MKAFKA}
.if ${PORT_OPTIONS:MJANSSON}
LIB_DEPENDS+=	libjansson.so:devel/jansson
CONFIGURE_ARGS+=--enable-jansson
.else
IGNORE=		Kafaka support requires enabled Jansson support
.endif
LIB_DEPENDS+=	librdkafka.so:net/librdkafka
CONFIGURE_ARGS+=--enable-kafka
PLIST_SUB+=WITH_KAFKA=""
.else
PLIST_SUB+=WITH_KAFKA="@comment "
.endif

.if ${PORT_OPTIONS:MAVRO}
LIB_DEPENDS+=	libavro.so:devel/avro-c
CONFIGURE_ARGS+=--enable-avro
.endif

.if ${PORT_OPTIONS:MNFLOG}
#CONFIGURE_ARGS+=--enable-nflog
#PLIST_SUB+=WITH_NFLOG=""
.else
CONFIGURE_ARGS+=--disable-nflog
PLIST_SUB+=WITH_NFLOG="@comment "
.endif

.if ${PORT_OPTIONS:MGEOIP}
USES+=		pkgconfig
LIB_DEPENDS+=	libGeoIP.so:net/GeoIP
CONFIGURE_ARGS+=--enable-geoip
.endif

.if ${PORT_OPTIONS:MGEOIP2}
LIB_DEPENDS+=	libmaxminddb.so:net/libmaxminddb
CONFIGURE_ARGS+=--enable-geoipv2
.endif

.include <bsd.port.pre.mk>

.if ${ARCH} == "amd64" || ${ARCH} == "sparc64"
CONFIGURE_ARGS+=--enable-64bit
.endif

post-patch:
	@${REINPLACE_CMD} -e 's|-O2||g' ${WRKSRC}/configure

post-install:
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/docs/* ${STAGEDIR}${DOCSDIR}
.for i in AUTHORS CONFIG-KEYS COPYING ChangeLog FAQS INSTALL QUICKSTART TOOLS UPGRADE
	${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
.endfor
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKSRC}/sql/* ${STAGEDIR}${DATADIR}

.include <bsd.port.post.mk>
