packages/utils/collectd: fix detection of kernel headers for libiptc (#4233)
[packages.git] / utils / collectd / Makefile
1 #
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=collectd
12 PKG_VERSION:=4.4.4
13 PKG_RELEASE:=2
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
16 PKG_SOURCE_URL:=http://collectd.org/files/
17 PKG_MD5SUM:=9e0e89150b1ff28fc0fdd8a198c9ac5e
18
19 PKG_FIXUP=libtool
20 PKG_BUILD_DEPENDS:=+libxml2 +libnetsnmp +libcurl +librrd1
21
22 include $(INCLUDE_DIR)/package.mk
23 include $(INCLUDE_DIR)/kernel.mk
24
25 define Package/collectd/common_info
26   SECTION:=utils
27   CATEGORY:=Utilities
28   TITLE:=Lightweight system statistics collection daemon
29   URL:=http://verplant.org/collectd/
30 endef
31
32 define Package/collectd/description
33         collectd is a small daemon which collects system information periodically 
34         and provides mechanismns to store the values in a variety of ways.
35 endef
36
37 define Package/collectd
38         $(call Package/collectd/common_info)
39         DEPENDS:=+libgcc +libpthread
40         MENU:=1
41 endef
42
43
44 #
45 # output plugins
46 #
47 define Package/collectd-mod-csv
48         $(call Package/collectd/common_info)
49         TITLE:=collectd - csv output plugin
50         DEPENDS:=collectd
51 endef
52
53 define Package/collectd-mod-email
54         $(call Package/collectd/common_info)
55         TITLE:=collectd - email output plugin
56         DEPENDS:=collectd
57 endef
58
59 define Package/collectd-mod-logfile
60         $(call Package/collectd/common_info)
61         TITLE:=collectd - logfile output plugin
62         DEPENDS:=collectd
63 endef
64
65 define Package/collectd-mod-network
66         $(call Package/collectd/common_info)
67         TITLE:=collectd - network input/output plugin
68         DEPENDS:=collectd
69 endef
70
71 define Package/collectd-mod-syslog
72         $(call Package/collectd/common_info)
73         TITLE:=collectd - syslog output plugin
74         DEPENDS:=collectd
75 endef
76
77 define Package/collectd-mod-unixsock
78         $(call Package/collectd/common_info)
79         TITLE:=collectd - unix socket output plugin
80         DEPENDS:=collectd
81 endef
82
83
84 #
85 # input plugins
86 #
87 define Package/collectd-mod-apache
88         $(call Package/collectd/common_info)
89         TITLE:=collectd - apache status input plugin
90         DEPENDS:=collectd +libcurl
91 endef
92
93 define Package/collectd-mod-apcups
94         $(call Package/collectd/common_info)
95         TITLE:=collectd - apcups status input plugin
96         DEPENDS:=collectd
97 endef
98
99 define Package/collectd-mod-ascent
100         $(call Package/collectd/common_info)
101         TITLE:=collectd - ascent status input plugin
102         DEPENDS:=collectd +libcurl +libxml2
103 endef
104
105 define Package/collectd-mod-cpu
106         $(call Package/collectd/common_info)
107         TITLE:=collectd - cpu input plugin
108         DEPENDS:=collectd
109 endef
110
111 define Package/collectd-mod-df
112         $(call Package/collectd/common_info)
113         TITLE:=collectd - disk space input plugin
114         DEPENDS:=collectd
115 endef
116
117 define Package/collectd-mod-disk
118         $(call Package/collectd/common_info)
119         TITLE:=collectd - disk usage/timing input plugin
120         DEPENDS:=collectd
121 endef
122
123 define Package/collectd-mod-dns
124         $(call Package/collectd/common_info)
125         TITLE:=collectd - dns traffic input plugin
126         DEPENDS:=collectd +libpcap
127 endef
128
129 define Package/collectd-mod-exec
130         $(call Package/collectd/common_info)
131         TITLE:=collectd - process exec input plugin
132         DEPENDS:=collectd
133 endef
134
135 define Package/collectd-mod-interface
136         $(call Package/collectd/common_info)
137         TITLE:=collectd - network interfaces input plugin
138         DEPENDS:=collectd
139 endef
140
141 define Package/collectd-mod-iptables
142         $(call Package/collectd/common_info)
143         TITLE:=collectd - iptables status input plugin
144         DEPENDS:=collectd +iptables
145 endef
146
147 define Package/collectd-mod-irq
148         $(call Package/collectd/common_info)
149         TITLE:=collectd - interrupt usage input plugin
150         DEPENDS:=collectd
151 endef
152
153 define Package/collectd-mod-load
154         $(call Package/collectd/common_info)
155         TITLE:=collectd - system load input plugin
156         DEPENDS:=collectd
157 endef
158
159 define Package/collectd-mod-netlink
160         $(call Package/collectd/common_info)
161         TITLE:=collectd - netlink input plugin (uses iproute2)
162         DEPENDS:=collectd +ip
163 endef
164
165 define Package/collectd-mod-nginx
166         $(call Package/collectd/common_info)
167         TITLE:=collectd - nginx status input plugin
168         DEPENDS:=collectd +libcurl
169 endef
170
171 define Package/collectd-mod-ntpd
172         $(call Package/collectd/common_info)
173         TITLE:=collectd - ntp daemon status input plugin
174         DEPENDS:=collectd
175 endef
176
177 define Package/collectd-mod-nut
178         $(call Package/collectd/common_info)
179         TITLE:=collectd - UPS monitoring input plugin
180         DEPENDS:=collectd @BROKEN
181 endef
182
183 define Package/collectd-mod-ping
184         $(call Package/collectd/common_info)
185         TITLE:=collectd - ping status input plugin
186         DEPENDS:=collectd
187 endef
188
189 define Package/collectd-mod-powerdns
190         $(call Package/collectd/common_info)
191         TITLE:=collectd - powerdns server status input plugin
192         DEPENDS:=collectd
193 endef
194
195 define Package/collectd-mod-processes
196         $(call Package/collectd/common_info)
197         TITLE:=collectd - process status plugin
198         DEPENDS:=collectd
199 endef
200
201
202 define Package/collectd-mod-rrdtool1
203         $(call Package/collectd/common_info)
204         TITLE:=collectd - rrdtool 1.0.x output plugin
205         DEPENDS:=collectd +librrd1
206 endef
207
208 define Package/collectd-mod-sensors
209         $(call Package/collectd/common_info)
210         TITLE:=collectd - lm_sensors input plugin
211         DEPENDS:=collectd +libsensors @BROKEN
212 endef
213
214 define Package/collectd-mod-snmp
215         $(call Package/collectd/common_info)
216         TITLE:=collectd - snmp input plugin
217         DEPENDS:=collectd +libnetsnmp
218 endef
219
220 define Package/collectd-mod-tail
221         $(call Package/collectd/common_info)
222         TITLE:=collectd - tail input plugin
223         DEPENDS:=collectd
224 endef
225
226 define Package/collectd-mod-teamspeak2
227         $(call Package/collectd/common_info)
228         TITLE:=collectd - teamspeak2 input plugin
229         DEPENDS:=collectd
230 endef
231
232 define Package/collectd-mod-tcpconns
233         $(call Package/collectd/common_info)
234         TITLE:=collectd - tcp connection tracking input plugin
235         DEPENDS:=collectd
236 endef
237
238 define Package/collectd-mod-users
239         $(call Package/collectd/common_info)
240         TITLE:=collectd - user login status input plugin
241         DEPENDS:=collectd
242 endef
243
244 define Package/collectd-mod-vmem
245         $(call Package/collectd/common_info)
246         TITLE:=collectd - virtual memory usage input plugin
247         DEPENDS:=collectd
248 endef
249
250 define Package/collectd-mod-wireless
251         $(call Package/collectd/common_info)
252         TITLE:=collectd - wireless status input plugin
253         DEPENDS:=collectd
254 endef
255
256
257 define Package/collectd/conffiles 
258 /etc/collectd.conf 
259 endef
260
261 define Build/Configure
262 endef
263
264 define Build/Compile
265         -$(MAKE) -C $(PKG_BUILD_DIR) clean
266         $(call Build/Configure/Default, $(PKG_CONFIGURE_OPTS))
267         $(call Build/Compile/Default)
268 endef
269
270
271 #
272 # Build PKG_CONFIGURE_OPTS
273 #
274
275 # common configure args
276 PKG_CONFIGURE_OPTS:= \
277         --disable-debug \
278         --enable-daemon \
279         --enable-getifaddrs \
280         --with-nan-emulation \
281         --with-fp-layout=nothing
282
283 CONFIGURE_VARS+= \
284         CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2 $$$$CPPFLAGS" \
285         KERNEL_DIR="$(LINUX_DIR)"
286
287 # list of permanently disabled plugins
288 disabled_plugins := apple_sensors battery cpufreq entropy hddtemp ipmi ipvs libvirt mbmon memcached \
289                         multimeter mysql nfs perl serial swap tape uuid vserver xmms
290
291 # list of selectable plugins
292 selectable_plugins := apache apcups ascent cpu csv df disk dns email exec interface iptables irq load \
293                         logfile memory netlink network nginx ntpd nut ping powerdns processes sensors \
294                         snmp syslog tail tcpconns teamspeak2 unixsock users vmem wireless
295
296 # makro to enable / disable plugin
297 define enable_plugin
298         ifneq ($$(CONFIG_PACKAGE_collectd-mod-$(1)),)
299                 PKG_CONFIGURE_OPTS += --enable-$(1)
300         else
301                 PKG_CONFIGURE_OPTS += --disable-$(1)
302         endif
303 endef
304
305 # build args for permanently disabled plugins
306 PKG_CONFIGURE_OPTS += $(foreach plugin,$(disabled_plugins),--disable-$(plugin))
307
308 # build args for selectable plugins
309 $(foreach plugin,$(selectable_plugins),$(eval $(call enable_plugin,$(plugin))))
310
311 # exception: mod-netlink needs iproute2
312 ifneq ($(CONFIG_PACKAGE_collectd-mod-netlink),)
313         PKG_CONFIGURE_OPTS += --with-libnetlink=$(wildcard $(BUILD_DIR)/iproute2-*)
314 endif
315
316 # exception: mod-rrdtool(1) needs rrdtool
317 ifneq ($(CONFIG_PACKAGE_collectd-mod-rrdtool1),)
318         PKG_CONFIGURE_OPTS += --with-rrdtool=$(wildcard $(BUILD_DIR)/rrdtool-1.0.*)
319         TARGET_LDFLAGS := -L$(wildcard $(BUILD_DIR)/rrdtool-1.0.*)/src/.libs -lz $(TARGET_LDFLAGS)
320 endif
321
322
323 MAKE_FLAGS += \
324         DESTDIR="$(PKG_INSTALL_DIR)" \
325         all install
326
327 define Package/collectd/install
328         $(INSTALL_DIR) $(1)/usr/sbin
329         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/collectd $(1)/usr/sbin/
330         $(INSTALL_DIR) $(1)/usr/lib/collectd
331         $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/lib/collectd/types.db $(1)/usr/lib/collectd/
332         $(INSTALL_DIR) $(1)/etc
333         $(INSTALL_CONF) ./files/collectd.conf $(1)/etc/
334         $(INSTALL_DIR) $(1)/etc/init.d
335         $(INSTALL_BIN) ./files/collectd.init $(1)/etc/init.d/collectd
336 endef
337
338 define Package/collectd-mod-apache/install
339         $(INSTALL_DIR) $(1)/usr/lib/collectd
340         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/apache.so $(1)/usr/lib/collectd/
341 endef
342
343 define Package/collectd-mod-apcups/install
344         $(INSTALL_DIR) $(1)/usr/lib/collectd
345         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/apcups.so $(1)/usr/lib/collectd/
346 endef
347
348 define Package/collectd-mod-ascent/install
349         $(INSTALL_DIR) $(1)/usr/lib/collectd
350         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/ascent.so $(1)/usr/lib/collectd/
351 endef
352
353 define Package/collectd-mod-cpu/install
354         $(INSTALL_DIR) $(1)/usr/lib/collectd
355         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/cpu.so $(1)/usr/lib/collectd/
356 endef
357
358 define Package/collectd-mod-csv/install
359         $(INSTALL_DIR) $(1)/usr/lib/collectd
360         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/csv.so $(1)/usr/lib/collectd/
361 endef
362
363 define Package/collectd-mod-df/install
364         $(INSTALL_DIR) $(1)/usr/lib/collectd
365         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/df.so $(1)/usr/lib/collectd/
366 endef
367
368 define Package/collectd-mod-disk/install
369         $(INSTALL_DIR) $(1)/usr/lib/collectd
370         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/disk.so $(1)/usr/lib/collectd/
371 endef
372
373 define Package/collectd-mod-dns/install
374         $(INSTALL_DIR) $(1)/usr/lib/collectd
375         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/dns.so $(1)/usr/lib/collectd/
376 endef
377
378 define Package/collectd-mod-email/install
379         $(INSTALL_DIR) $(1)/usr/lib/collectd
380         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/email.so $(1)/usr/lib/collectd/
381 endef
382
383 define Package/collectd-mod-exec/install
384         $(INSTALL_DIR) $(1)/usr/lib/collectd
385         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/exec.so $(1)/usr/lib/collectd/
386 endef
387
388 define Package/collectd-mod-interface/install
389         $(INSTALL_DIR) $(1)/usr/lib/collectd
390         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/interface.so $(1)/usr/lib/collectd/
391 endef
392
393 define Package/collectd-mod-iptables/install
394         $(INSTALL_DIR) $(1)/usr/lib/collectd
395         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/iptables.so $(1)/usr/lib/collectd/
396 endef
397
398 define Package/collectd-mod-irq/install
399         $(INSTALL_DIR) $(1)/usr/lib/collectd
400         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/irq.so $(1)/usr/lib/collectd/
401 endef
402
403 define Package/collectd-mod-load/install
404         $(INSTALL_DIR) $(1)/usr/lib/collectd
405         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/load.so $(1)/usr/lib/collectd/
406 endef
407
408 define Package/collectd-mod-logfile/install
409         $(INSTALL_DIR) $(1)/usr/lib/collectd
410         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/logfile.so $(1)/usr/lib/collectd/
411 endef
412
413 define Package/collectd-mod-netlink/install
414         $(INSTALL_DIR) $(1)/usr/lib/collectd
415         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/netlink.so $(1)/usr/lib/collectd/
416 endef
417
418 define Package/collectd-mod-network/install
419         $(INSTALL_DIR) $(1)/usr/lib/collectd
420         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/network.so $(1)/usr/lib/collectd/
421 endef
422
423 define Package/collectd-mod-nginx/install
424         $(INSTALL_DIR) $(1)/usr/lib/collectd
425         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/nginx.so $(1)/usr/lib/collectd/
426 endef
427
428 define Package/collectd-mod-ntpd/install
429         $(INSTALL_DIR) $(1)/usr/lib/collectd
430         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/ntpd.so $(1)/usr/lib/collectd/
431 endef
432
433 define Package/collectd-mod-nut/install
434         $(INSTALL_DIR) $(1)/usr/lib/collectd
435         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/nut.so $(1)/usr/lib/collectd/
436 endef
437
438 define Package/collectd-mod-ping/install
439         $(INSTALL_DIR) $(1)/usr/lib/collectd
440         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/ping.so $(1)/usr/lib/collectd/
441 endef
442
443 define Package/collectd-mod-powerdns/install
444         $(INSTALL_DIR) $(1)/usr/lib/collectd
445         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/powerdns.so $(1)/usr/lib/collectd/
446 endef
447
448 define Package/collectd-mod-processes/install
449         $(INSTALL_DIR) $(1)/usr/lib/collectd
450         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/processes.so $(1)/usr/lib/collectd/
451 endef
452
453 define Package/collectd-mod-rrdtool1/install
454         $(INSTALL_DIR) $(1)/usr/lib/collectd
455         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/rrdtool.so $(1)/usr/lib/collectd/
456 endef
457
458 define Package/collectd-mod-sensors/install
459         $(INSTALL_DIR) $(1)/usr/lib/collectd
460         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/sensors.so $(1)/usr/lib/collectd/
461 endef
462
463 define Package/collectd-mod-snmp/install
464         $(INSTALL_DIR) $(1)/usr/lib/collectd
465         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/snmp.so $(1)/usr/lib/collectd/
466 endef
467
468 define Package/collectd-mod-syslog/install
469         $(INSTALL_DIR) $(1)/usr/lib/collectd
470         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/syslog.so $(1)/usr/lib/collectd/
471 endef
472
473 define Package/collectd-mod-tail/install
474         $(INSTALL_DIR) $(1)/usr/lib/collectd
475         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/tail.so $(1)/usr/lib/collectd/
476 endef
477
478 define Package/collectd-mod-teamspeak2/install
479         $(INSTALL_DIR) $(1)/usr/lib/collectd
480         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/teamspeak2.so $(1)/usr/lib/collectd/
481 endef
482
483 define Package/collectd-mod-tcpconns/install
484         $(INSTALL_DIR) $(1)/usr/lib/collectd
485         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/tcpconns.so $(1)/usr/lib/collectd/
486 endef
487
488 define Package/collectd-mod-unixsock/install
489         $(INSTALL_DIR) $(1)/usr/lib/collectd
490         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/unixsock.so $(1)/usr/lib/collectd/
491 endef
492
493 define Package/collectd-mod-users/install
494         $(INSTALL_DIR) $(1)/usr/lib/collectd
495         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/users.so $(1)/usr/lib/collectd/
496 endef
497
498 define Package/collectd-mod-vmem/install
499         $(INSTALL_DIR) $(1)/usr/lib/collectd
500         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/vmem.so $(1)/usr/lib/collectd/
501 endef
502
503 define Package/collectd-mod-wireless/install
504         $(INSTALL_DIR) $(1)/usr/lib/collectd
505         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/collectd/wireless.so $(1)/usr/lib/collectd/
506 endef
507
508
509 $(eval $(call BuildPackage,collectd))
510 $(eval $(call BuildPackage,collectd-mod-apache))
511 $(eval $(call BuildPackage,collectd-mod-apcups))
512 $(eval $(call BuildPackage,collectd-mod-ascent))
513 $(eval $(call BuildPackage,collectd-mod-cpu))
514 $(eval $(call BuildPackage,collectd-mod-csv))
515 $(eval $(call BuildPackage,collectd-mod-df))
516 $(eval $(call BuildPackage,collectd-mod-disk))
517 $(eval $(call BuildPackage,collectd-mod-dns))
518 $(eval $(call BuildPackage,collectd-mod-email))
519 $(eval $(call BuildPackage,collectd-mod-exec))
520 $(eval $(call BuildPackage,collectd-mod-interface))
521 $(eval $(call BuildPackage,collectd-mod-iptables))
522 $(eval $(call BuildPackage,collectd-mod-irq))
523 $(eval $(call BuildPackage,collectd-mod-load))
524 $(eval $(call BuildPackage,collectd-mod-logfile))
525 $(eval $(call BuildPackage,collectd-mod-netlink))
526 $(eval $(call BuildPackage,collectd-mod-network))
527 $(eval $(call BuildPackage,collectd-mod-nginx))
528 $(eval $(call BuildPackage,collectd-mod-ntpd))
529 $(eval $(call BuildPackage,collectd-mod-nut))
530 $(eval $(call BuildPackage,collectd-mod-ping))
531 $(eval $(call BuildPackage,collectd-mod-powerdns))
532 $(eval $(call BuildPackage,collectd-mod-processes))
533 $(eval $(call BuildPackage,collectd-mod-rrdtool1))
534 $(eval $(call BuildPackage,collectd-mod-sensors))
535 $(eval $(call BuildPackage,collectd-mod-snmp))
536 $(eval $(call BuildPackage,collectd-mod-syslog))
537 $(eval $(call BuildPackage,collectd-mod-tail))
538 $(eval $(call BuildPackage,collectd-mod-teamspeak2))
539 $(eval $(call BuildPackage,collectd-mod-tcpconns))
540 $(eval $(call BuildPackage,collectd-mod-unixsock))
541 $(eval $(call BuildPackage,collectd-mod-users))
542 $(eval $(call BuildPackage,collectd-mod-vmem))
543 $(eval $(call BuildPackage,collectd-mod-wireless))