summaryrefslogtreecommitdiffstats
path: root/rules/net-snmp.make
blob: e4716d3a9ea3b94667e8aa859fdc8beb7e3be304 (plain)
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# -*-makefile-*-
#
# Copyright (C) 2006 by Randall Loomis <rloomis@solectek.com>
#               2010 Michael Olbrich <m.olbrich@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#

#
# We provide this package
#
PACKAGES-$(PTXCONF_NET_SNMP) += net-snmp

#
# Paths and names
#
NET_SNMP_VERSION	:= 5.6.1
NET_SNMP		:= net-snmp-$(NET_SNMP_VERSION)
NET_SNMP_SUFFIX		:= tar.gz
NET_SNMP_URL		:= $(PTXCONF_SETUP_SFMIRROR)/net-snmp/$(NET_SNMP).$(NET_SNMP_SUFFIX)
NET_SNMP_SOURCE		:= $(SRCDIR)/$(NET_SNMP).$(NET_SNMP_SUFFIX)
NET_SNMP_DIR		:= $(BUILDDIR)/$(NET_SNMP)

# ----------------------------------------------------------------------------
# Get
# ----------------------------------------------------------------------------

$(NET_SNMP_SOURCE):
	@$(call targetinfo)
	@$(call get, NET_SNMP)

# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------

NET_SNMP_PATH	:= PATH=$(CROSS_PATH)
NET_SNMP_ENV 	:= $(CROSS_ENV)
NET_SNMP_BINCONFIG_GLOB := net-snmp-config

#
# autoconf
#
NET_SNMP_AUTOCONF := \
	$(CROSS_AUTOCONF_USR) \
	$(GLOBAL_IPV6_OPTION) \
	--with-defaults \
	--disable-manuals \
	--without-openssl \
	--with-mib-modules=$(PTXCONF_NET_SNMP_MIB_MODULES) \
	--with-mibs=$(PTXCONF_NET_SNMP_DEFAULT_MIBS) \
	--with-logfile=$(call remove_quotes,$(PTXCONF_NET_SNMP_LOGFILE)) \
	--with-persistent-directory=$(call remove_quotes,$(PTXCONF_NET_SNMP_PERSISTENT_DIR)) \
	--with-default-snmp-version=$(call remove_quotes,$(PTXCONF_NET_SNMP_DEFAULT_VERSION)) \
	--enable-shared \
	--disable-embedded-perl \
	--without-perl-modules \
	--disable-static

ifdef PTXCONF_ENDIAN_LITTLE
NET_SNMP_AUTOCONF += --with-endianness=little
else
NET_SNMP_AUTOCONF += --with-endianness=big
endif

ifdef PTXCONF_NET_SNMP_MINI_AGENT
NET_SNMP_AUTOCONF += --enable-mini-agent
else
NET_SNMP_AUTOCONF += --disable-mini-agent
endif

ifdef PTXCONF_NET_SNMP_AGENT
NET_SNMP_AUTOCONF += --enable-agent
else
NET_SNMP_AUTOCONF += --disable-agent
endif

ifdef PTXCONF_NET_SNMP_APPLICATIONS
NET_SNMP_AUTOCONF += --enable-applications
else
NET_SNMP_AUTOCONF += --disable-applications
endif

ifdef PTXCONF_NET_SNMP_SCRIPTS
NET_SNMP_AUTOCONF += --enable-scripts
else
NET_SNMP_AUTOCONF += --disable-scripts
endif

ifdef PTXCONF_NET_SNMP_MIBS
NET_SNMP_AUTOCONF += --enable-mibs
else
NET_SNMP_AUTOCONF += --disable-mibs
endif

ifdef PTXCONF_NET_SNMP_MIB_LOADING
NET_SNMP_AUTOCONF += --enable-mib-loading
else
NET_SNMP_AUTOCONF += --disable-mib-loading
endif

ifdef PTXCONF_NET_SNMP_SNMPV1
NET_SNMP_AUTOCONF += --enable-snmpv1
else
NET_SNMP_AUTOCONF += --disable-snmpv1
endif

ifdef PTXCONF_NET_SNMP_SNMPV2C
NET_SNMP_AUTOCONF += --enable-snmpv2c
else
NET_SNMP_AUTOCONF += --disable-snmpv2c
endif

ifdef PTXCONF_NET_SNMP_DES
NET_SNMP_AUTOCONF += --enable-des
else
NET_SNMP_AUTOCONF += --disable-des
endif

ifdef PTXCONF_NET_SNMP_MD5
NET_SNMP_AUTOCONF += --enable-md5
else
NET_SNMP_AUTOCONF += --disable-md5
endif

ifdef PTXCONF_NET_SNMP_SNMPTRAPD
NET_SNMP_AUTOCONF += --enable-snmptrapd-subagent
else
NET_SNMP_AUTOCONF += --disable-snmptrapd-subagent
endif

ifdef PTXCONF_NET_SNMP_LOCAL_SMUX
NET_SNMP_AUTOCONF += --enable-local-smux
else
NET_SNMP_AUTOCONF += --disable-local-smux
endif

ifdef PTXCONF_NET_SNMP_FORCE_DEBUGGING
NET_SNMP_AUTOCONF += --enable-debugging
endif

ifdef PTXCONF_NET_SNMP_STRIP_DEBUGGING
NET_SNMP_AUTOCONF += --disable-debugging
endif

ifdef PTXCONF_NET_SNMP_DEVELOPER
NET_SNMP_AUTOCONF += --enable-developer
else
NET_SNMP_AUTOCONF += --disable-developer
endif

ifdef PTXCONF_NET_SNMP_PRIVACY
NET_SNMP_AUTOCONF += --enable-privacy
else
NET_SNMP_AUTOCONF += --disable-privacy
endif

ifdef PTXCONF_NET_SNMP_INTERNAL_MD5
NET_SNMP_AUTOCONF += --enable-internal-md5
else
NET_SNMP_AUTOCONF += --disable-internal-md5
endif

ifdef PTXCONF_NET_SNMP_AGENTX_DOM_SOCK_ONLY
NET_SNMP_AUTOCONF += --enable-agentx-dom-sock-only
else
NET_SNMP_AUTOCONF += --disable-agentx-dom-sock-only
endif

ifdef PTXCONF_NET_SNMP_MIB_CONFIG_CHECKING
NET_SNMP_AUTOCONF += --enable-mib-config-checking
else
NET_SNMP_AUTOCONF += --disable-mib-config-checking
endif

ifdef PTXCONF_NET_SNMP_MFD_REWRITES
NET_SNMP_AUTOCONF += --enable-mfd-rewrites
else
NET_SNMP_AUTOCONF += --disable-mfd-rewrites
endif

ifdef PTXCONF_NET_SNMP_TESTING_CODE
NET_SNMP_AUTOCONF += --enable-testing-code
else
NET_SNMP_AUTOCONF += --disable-testing-code
endif

ifdef PTXCONF_NET_SNMP_REENTRANT
NET_SNMP_AUTOCONF += --enable-reentrant
else
NET_SNMP_AUTOCONF += --disable-reentrant
endif

ifdef PTXCONF_NET_SNMP_EMBEDDED_PERL
NET_SNMP_AUTOCONF += --enable-embedded-perl
else
NET_SNMP_AUTOCONF += --disable-embedded-perl
endif

ifdef PTXCONF_NET_SNMP_UCD_COMPAT
NET_SNMP_AUTOCONF += --enable-ucd-snmp-compatibility
else
NET_SNMP_AUTOCONF += --disable-ucd-snmp-compatibility
endif

##NET_SNMP_AUTOCONF	+= --with-mib-modules=mibII
##NET_SNMP_AUTOCONF	+= --with-sys-contact=root@localhost
##NET_SNMP_AUTOCONF	+= --with-sys-location=unknown

NET_SNMP_MAKE_PAR := NO

# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------

NET_SNMP_LIBMAJOR := 25
NET_SNMP_LIBMINOR := 0.1
NET_SNMP_LIBVER :=$(NET_SNMP_LIBMAJOR).$(NET_SNMP_LIBMINOR)

NET_SNMP_V1MIBS := RFC1155-SMI.txt RFC1213-MIB.txt RFC-1215.txt

NET_SNMP_V2MIBS := SNMPv2-CONF.txt SNMPv2-SMI.txt SNMPv2-TC.txt SNMPv2-TM.txt SNMPv2-MIB.txt

NET_SNMP_V3MIBS := SNMP-FRAMEWORK-MIB.txt SNMP-MPD-MIB.txt SNMP-TARGET-MIB.txt \
			SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt \
			SNMP-USER-BASED-SM-MIB.txt SNMP-VIEW-BASED-ACM-MIB.txt \
			SNMP-COMMUNITY-MIB.txt TRANSPORT-ADDRESS-MIB.txt

NET_SNMP_AGENTMIBS := AGENTX-MIB.txt SMUX-MIB.txt

NET_SNMP_IANAMIBS := IANAifType-MIB.txt IANA-LANGUAGE-MIB.txt \
			IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt

NET_SNMP_RFCMIBS := IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
			EtherLike-MIB.txt \
			IP-MIB.txt IP-FORWARD-MIB.txt IANA-RTPROTO-MIB.txt \
			TCP-MIB.txt UDP-MIB.txt \
			INET-ADDRESS-MIB.txt HCNUM-TC.txt \
			HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt \
			RMON-MIB.txt \
			IPV6-TC.txt IPV6-MIB.txt IPV6-ICMP-MIB.txt IPV6-TCP-MIB.txt \
			IPV6-UDP-MIB.txt \
			DISMAN-EVENT-MIB.txt DISMAN-SCRIPT-MIB.txt DISMAN-SCHEDULE-MIB.txt \
			NOTIFICATION-LOG-MIB.txt SNMP-USM-AES-MIB.txt \
			SNMP-USM-DH-OBJECTS-MIB.txt

NET_SNMP_NETSNMPMIBS := NET-SNMP-TC.txt NET-SNMP-MIB.txt NET-SNMP-AGENT-MIB.txt \
			NET-SNMP-EXAMPLES-MIB.txt NET-SNMP-EXTEND-MIB.txt

NET_SNMP_UCDMIBS := UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
			UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt

## FIXME:  for now, you need to manually edit this list to represent what mibs to install on target.
NET_SNMP_MIBS := $(NET_SNMP_V1MIBS) $(NET_SNMP_V2MIBS) $(NET_SNMP_V3MIBS) \
	$(NET_SNMP_AGENTMIBS) $(NET_SNMP_IANAMIBS) $(NET_SNMP_RFCMIBS) $(NET_SNMP_NETSNMPMIBS) $(NET_SNNP_UCDMIBS)

$(STATEDIR)/net-snmp.targetinstall:
	@$(call targetinfo)

	@$(call install_init, net-snmp)
	@$(call install_fixup, net-snmp,PRIORITY,optional)
	@$(call install_fixup, net-snmp,SECTION,base)
	@$(call install_fixup, net-snmp,AUTHOR,"Randall Loomis <rloomis@solectek.com>")
	@$(call install_fixup, net-snmp,DESCRIPTION,missing)

ifdef PTXCONF_NET_SNMP_AGENT
	@$(call install_lib, net-snmp, 0, 0, 0644, libnetsnmpagent)

# agent mib libs
	@$(call install_lib, net-snmp, 0, 0, 0644, libnetsnmpmibs)

# agent binary
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/sbin/snmpd)

# agent helper libs
	@$(call install_lib, net-snmp, 0, 0, 0644, libnetsnmphelpers)

# agent configuration
	@$(call install_alternative, net-snmp, 0, 0, 0644, /etc/snmp/snmpd.conf)
endif

ifdef PTXCONF_NET_SNMP_APPLICATIONS
# apps libs
	@$(call install_lib, net-snmp, 0, 0, 0644, libnetsnmptrapd)

# apps binaries
##ifdef PTXCONF_NET_SNMP_MINI_AGENT
##	@$(call install_copy, net-snmp, 0, 0, 0755, $(NET_SNMP_DIR)/apps/.libs/lt-snmpget, /usr/bin/lt-snmpget)
##	@$(call install_copy, net-snmp, 0, 0, 0755, $(NET_SNMP_DIR)/apps/.libs/lt-snmpwalk, /usr/bin/lt-snmpwalk)
##endif
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpbulkget)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpbulkwalk)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpdelta)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpdf)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpget)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpgetnext)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpset)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpstatus)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmptable)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmptest)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmptranslate)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmptrap)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/sbin/snmptrapd)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpusm)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpvacm)
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpwalk)

# apps snmpstat
	@$(call install_copy, net-snmp, 0, 0, 0755, -, /usr/bin/snmpnetstat)

endif

# snmplib
	@$(call install_lib, net-snmp, 0, 0, 0644, libnetsnmp)

# MIB files <TODO: install specified set of mib files>
ifdef PTXCONF_NET_SNMP_MIBS

	@for i in $(NET_SNMP_MIBS); do \
		$(call install_copy, net-snmp, 0, 0, 0644, -, \
		$(call remove_quotes,$(PTXCONF_NET_SNMP_MIB_INSTALL_DIR))/$$i, n) ; \
	done
endif

	@$(call install_finish, net-snmp)
	@$(call touch)

# vim: syntax=make