aboutsummaryrefslogtreecommitdiffstats
path: root/security/bro/Makefile
blob: c59040751203b3803a7dff30781cc43eaf618264 (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
# Created by: David O'Brien <obrien@FreeBSD.org>
# $FreeBSD$

PORTNAME=   bro
PORTVERSION=    2.2
CATEGORIES= security
MASTER_SITES=   http://www.bro.org/downloads/release/

MAINTAINER= leres@ee.lbl.gov
COMMENT=    System for detecting network intruders in real-time

LICENSE=    BSD

BUILD_DEPENDS=  bison:${PORTSDIR}/devel/bison \
        swig:${PORTSDIR}/devel/swig13
LIB_DEPENDS=    libGeoIP.so:${PORTSDIR}/net/GeoIP

USES=       cmake:outsource perl5
USE_PYTHON= yes

SUB_FILES=  pkg-message
NO_MTREE=   yes

.if defined(BRO_PREFIX)
PREFIX=${BRO_PREFIX}
PLIST_SUB+= CLEANUP_PREFIX=""
NEED_ROOT=  yes
.else
PLIST_SUB+= CLEANUP_PREFIX="@comment "
.endif
CMAKE_ARGS+=    -D CMAKE_INSTALL_PREFIX:PATH=${PREFIX} \
        -D BRO_ROOT_DIR:PATH=${PREFIX} \
        -D PY_MOD_INSTALL_DIR:PATH=${PREFIX}/lib/broctl \
        -D BRO_SCRIPT_INSTALL_PATH:PATH=${PREFIX}/share/bro \
        -D BRO_ETC_INSTALL_DIR:PATH=${PREFIX}/etc \
        -D ENABLE_PERFTOOLS:BOOL=false \
        -D ENABLE_PERFTOOLS_DEBUG:BOOL=false \
        -D BinPAC_SKIP_INSTALL:BOOL=true \
        -D INSTALL_AUX_TOOLS:BOOL=true \
        -D BUILD_SHARED_LIBS:BOOL=true

OPTIONS_DEFINE= BROCCOLI BROCTL DEBUG IPSUMDUMP LBL_CF LBL_HF PERFTOOLS
OPTIONS_DEFAULT=BROCCOLI BROCTL IPSUMDUMP LBL_CF LBL_HF

BROCCOLI_DESC=  Build support for libbroccoli communications
BROCTL_DESC=    Build BroControl support (requires BROCCOLI)
DEBUG_DESC= Compile in debugging mode
IPSUMDUMP_DESC= Enables traffic summaries
LBL_CF_DESC=    Unix time to formated time/date filter support
LBL_HF_DESC=    Address to hostname filter support
PERFTOOLS_DESC= Use Perftools to improve memory & CPU usage

OPTIONS_EXCLUDE=NLS DOCS

.include <bsd.port.pre.mk>

# Bro 2.2 requires libmagic >= 5.04
.if ${OSVERSION} < 901000
LIB_DEPENDS+=   libmagic.so.1:${PORTSDIR}/sysutils/file
.endif

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MBROCCOLI}
LIB_DEPENDS+=   libbroccoli.so:${PORTSDIR}/security/broccoli
.endif

.if ${PORT_OPTIONS:MBROCTL}
.if empty(PORT_OPTIONS:MBROCCOLI)
IGNORE=     the BROCTL option requires BROCCOLI
.endif
.if empty(PORT_OPTIONS:MIPSUMDUMP)
IGNORE=     the BROCTL option requires IPSUMDUMP
.endif
BUILD_DEPENDS+=     bash:${PORTSDIR}/shells/bash
RUN_DEPENDS+=       bash:${PORTSDIR}/shells/bash
PLIST_SUB+=     BROCTL=""
USE_LDCONFIG=       yes
CMAKE_ARGS+=        -D INSTALL_BROCTL:BOOL=true
.else
CMAKE_ARGS+=        -D INSTALL_BROCTL:BOOL=false
PLIST_SUB+=     BROCTL="@comment "
.endif

.if ${PORT_OPTIONS:MDEBUG}
CMAKE_ARGS+=        -D ENABLE_DEBUG:BOOL=true
.else
CMAKE_ARGS+=        -D ENABLE_DEBUG:BOOL=false
.endif

.if ${PORT_OPTIONS:MLBL_HF}
RUN_DEPENDS+=   hf:${PORTSDIR}/sysutils/lbl-hf
.endif

.if ${PORT_OPTIONS:MLBL_CF}
RUN_DEPENDS+=   cf:${PORTSDIR}/sysutils/lbl-cf
.endif

.if ${PORT_OPTIONS:MPERFTOOLS}
CMAKE_ARGS+=        -D ENABLE_PERFTOOLS:BOOL=true
RUN_DEPENDS+=   pprof:${PORTSDIR}/devel/google-perftools
.else
CMAKE_ARGS+=        -D ENABLE_PERFTOOLS:BOOL=false
.endif

.if ${PORT_OPTIONS:MIPSUMDUMP}
BUILD_DEPENDS+= ipsumdump:${PORTSDIR}/net/ipsumdump
RUN_DEPENDS+=   ipsumdump:${PORTSDIR}/net/ipsumdump
.endif

.if ${PORT_OPTIONS:MBROCTL}
post-stage::
.if defined(BRO_PREFIX)
    @${MKDIR} ${PREFIX}
.endif
    @${MKDIR} ${STAGEDIR}${PREFIX}/spool/installed-scripts-do-not-touch/auto
    @${MKDIR} ${STAGEDIR}${PREFIX}/spool/installed-scripts-do-not-touch/site
.for F in broctl.cfg
    @${INSTALL_SCRIPT} ${INSTALL_WRKSRC}/aux/broctl/etc/${F} ${STAGEDIR}${PREFIX}/etc/${F}.example
.endfor
.for F in networks.cfg node.cfg
    @${INSTALL_SCRIPT} ${WRKSRC}/aux/broctl/etc/${F} ${STAGEDIR}${PREFIX}/etc/${F}.example
.endfor
.endif

.include <bsd.port.post.mk>