aboutsummaryrefslogtreecommitdiff
path: root/net-mgmt/pmacct/Makefile
blob: dd08fcbd3c97db451555038672bfd6988136107e (plain) (blame)
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# Created by: Kirill Ponomarew <ponomarew@oberon.net>
# $FreeBSD$

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

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 IPV6 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+=		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: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
#.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}
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>