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