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