aboutsummaryrefslogtreecommitdiff
path: root/net-mgmt/nfdump/Makefile
blob: f5ce1ccef3be6009966f0831a10d9b14191c4791 (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
169
# Created by: Janos.Mohacsi@bsd.hu

PORTNAME=	nfdump
PORTVERSION=	1.6.20
PORTREVISION=	1
DISTVERSIONPREFIX=v
CATEGORIES=	net-mgmt

MAINTAINER=	pi@FreeBSD.org
COMMENT=	Command-line tools to collect and process NetFlow data

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/BSD-license.txt

USES=		autoreconf compiler:c11 cpe libtool pkgconfig
USE_CSTD=	gnu89
USE_LDCONFIG=	yes
USE_GITHUB=	yes
GH_ACCOUNT=	phaag
CPE_VENDOR=	nfdump_project

GNU_CONFIGURE=	yes
MAKE_JOBS_UNSAFE=	yes

#flow-tools support
OPTIONS_DEFINE=		DOCS FT2NFDUMP NFPROFILE FIXTIMEBUG READPCAP NFTRACK \
			SFLOW NFPCAPD NFDUMP15 NSEL INFLUXDB
OPTIONS_DEFAULT=	NFPROFILE

FT2NFDUMP_DESC=		With Flow-tools to nfdump converter
NFPROFILE_DESC=		With nfprofile (nfsen requires it)
FIXTIMEBUG_DESC=	With fixing swap time bug of some v5
READPCAP_DESC=		With pcap support
NFTRACK_DESC=		With PortTracker support
SFLOW_DESC=		Build sflow collector daemon also
NFPCAPD_DESC=		Build nfpcapd collector daemon also
NFDUMP15_DESC=		Enable compatibility with version 1.5
NSEL_DESC=		Read and process ASA/NSEL/NEL event data
INFLUXDB_DESC=		Enable stats to InfluxDB

post-patch:
	${REINPLACE_CMD} 's|-ggdb||' ${WRKSRC}/bin/Makefile.am

.include <bsd.port.options.mk>

#for compatibility
#
.if ${PORT_OPTIONS:MNFDUMP15}
CONFIGURE_ARGS+=	--enable-compat15
.else
CONFIGURE_ARGS+=	--disable-compat15
.endif

.if ${PORT_OPTIONS:MNSEL}
CONFIGURE_ARGS+=	--enable-nsel
.else
CONFIGURE_ARGS+=	--disable-nsel
.endif

PLIST_FILES=	bin/nfanon bin/nfcapd bin/nfdump bin/nfexpire bin/nfreplay \
		lib/libnfdump-${PORTVERSION}.so \
		man/man1/nfanon.1.gz man/man1/nfcapd.1.gz man/man1/nfdump.1.gz \
		man/man1/nfexpire.1.gz man/man1/nfreplay.1.gz
PORTDOCS=	AUTHORS ChangeLog INSTALL NEWS README

.if ${PORT_OPTIONS:MFIXTIMEBUG}
CONFIGURE_ARGS+=	--enable-fixtimebug
.else
CONFIGURE_ARGS+=	--disable-fixtimebug
.endif

.if ${PORT_OPTIONS:MNFPROFILE}
CONFIGURE_ARGS+=	--enable-nfprofile
PLIST_FILES+=	bin/nfprofile man/man1/nfprofile.1.gz
.else
CONFIGURE_ARGS+=	--disable-nfprofile
.endif

.if ${PORT_OPTIONS:MNFTRACK}
CONFIGURE_ARGS+=	--enable-nftrack
PLIST_FILES+=	bin/nftrack
.else
CONFIGURE_ARGS+=	--disable-nftrack
.endif

.if ${PORT_OPTIONS:MNFPROFILE} || ${PORT_OPTIONS:MNFTRACK}
CONFIGURE_ARGS+=	--with-rrdpath=${LOCALBASE}
BUILD_DEPENDS+=	rrdtool:databases/rrdtool
RUN_DEPENDS+=	rrdtool:databases/rrdtool
.endif

#flow-tools support
.if ${PORT_OPTIONS:MFT2NFDUMP}
BUILD_DEPENDS+=		flow-cat:net-mgmt/flow-tools
LIB_DEPENDS+=		libft.so:net-mgmt/flow-tools
CONFIGURE_ARGS+=	--enable-ftconv --with-ftpath=${LOCALBASE}
PLIST_FILES+=	bin/ft2nfdump man/man1/ft2nfdump.1.gz
.endif

.if ${PORT_OPTIONS:MREADPCAP}
CONFIGURE_ARGS+=	--enable-readpcap
LIB_DEPENDS+=		libpcap.so:net/libpcap
.else
CONFIGURE_ARGS+=	--disable-readpcap
.endif

#sflow capture support
.if ${PORT_OPTIONS:MSFLOW}
CONFIGURE_ARGS+=	--enable-sflow
PLIST_FILES+=	bin/sfcapd man/man1/sfcapd.1.gz
.else
CONFIGURE_ARGS+=	--disable-sflow
.endif

#nfpcapd capture support
.if ${PORT_OPTIONS:MNFPCAPD}
CONFIGURE_ARGS+=	--enable-nfpcapd
PLIST_FILES+=	bin/nfpcapd man/man1/nfpcapd.1.gz
.else
CONFIGURE_ARGS+=	--disable-nfpcapd
.endif

#influxdb support
.if ${PORT_OPTIONS:MINFLUXDB}
CONFIGURE_ARGS+=	--enable-influxdb
LIB_DEPENDS+=		libcurl.so:ftp/curl
.else
CONFIGURE_ARGS+=	--disable-influxdb
.endif

do-install:
.for binary in nfanon nfcapd nfdump nfexpire nfreplay
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/${binary} ${STAGEDIR}${PREFIX}/bin
.endfor
	${INSTALL_LIB} ${WRKSRC}/bin/.libs/libnfdump-${PORTVERSION}.so ${STAGEDIR}${PREFIX}/lib

.if ${PORT_OPTIONS:MNFPROFILE}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/nfprofile ${STAGEDIR}${PREFIX}/bin
	${INSTALL_MAN}	${WRKSRC}/man/nfprofile.1 ${STAGEDIR}${PREFIX}/man/man1
.endif

.if ${PORT_OPTIONS:MNFTRACK}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/nftrack ${STAGEDIR}${PREFIX}/bin
.endif

.if ${PORT_OPTIONS:MFT2NFDUMP}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/ft2nfdump ${STAGEDIR}${PREFIX}/bin
	${INSTALL_MAN}	${WRKSRC}/man/ft2nfdump.1 ${STAGEDIR}${PREFIX}/man/man1
.endif

.if ${PORT_OPTIONS:MSFLOW}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/sfcapd ${STAGEDIR}${PREFIX}/bin
	${INSTALL_MAN}	${WRKSRC}/man/sfcapd.1	${STAGEDIR}${PREFIX}/man/man1
.endif

.if ${PORT_OPTIONS:MNFPCAPD}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/.libs/nfpcapd ${STAGEDIR}${PREFIX}/bin
	${INSTALL_MAN}	${WRKSRC}/man/nfpcapd.1	${STAGEDIR}${PREFIX}/man/man1
.endif

.for filename in nfanon nfdump nfcapd nfexpire nfreplay
	${INSTALL_MAN} ${WRKSRC}/man/${filename}.1 ${STAGEDIR}${PREFIX}/man/man1
.endfor

post-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>