[packages] collectd: use a BuildPlugin template, link -mod-rrdtool plugin against...
[openwrt/svn-archive/archive.git] / utils / collectd / Makefile
1 #
2 # Copyright (C) 2006-2009 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 COLLECTD_PLUGINS_DISABLED:= \
21 apple_sensors \
22 battery \
23 cpufreq \
24 entropy \
25 hddtemp \
26 ipmi \
27 ipvs \
28 libvirt \
29 mbmon \
30 memcached \
31 multimeter \
32 nfs \
33 perl \
34 serial \
35 swap \
36 tape \
37 uuid \
38 vserver \
39 xmms \
40
41 COLLECTD_PLUGINS_SELECTED:= \
42 apache \
43 apcups \
44 ascent \
45 cpu \
46 csv \
47 df \
48 disk \
49 dns \
50 email \
51 exec \
52 interface \
53 iptables \
54 irq \
55 load \
56 logfile \
57 memory \
58 mysql \
59 netlink \
60 network \
61 nginx \
62 ntpd \
63 nut \
64 ping \
65 powerdns \
66 processes \
67 rrdtool \
68 sensors \
69 snmp \
70 syslog \
71 tail \
72 tcpconns \
73 teamspeak2 \
74 unixsock \
75 users \
76 vmem \
77 wireless \
78
79 PKG_CONFIG_DEPENDS:= \
80 $(patsubst %,CONFIG_PACKAGE_collectd-mod-%,$(COLLECTD_PLUGINS_SELECTED)) \
81
82 include $(INCLUDE_DIR)/package.mk
83 include $(INCLUDE_DIR)/kernel.mk
84
85 define Package/collectd/Default
86 SECTION:=utils
87 CATEGORY:=Utilities
88 TITLE:=Lightweight system statistics collection daemon
89 URL:=http://verplant.org/collectd/
90 endef
91
92 define Package/collectd
93 $(call Package/collectd/Default)
94 DEPENDS:=+libgcc +libpthread +zlib
95 MENU:=1
96 endef
97
98 define Package/collectd/description
99 collectd is a small daemon which collects system information periodically
100 and provides mechanismns to store the values in a variety of ways.
101 endef
102
103 # common configure args
104 CONFIGURE_ARGS+= \
105 --disable-debug \
106 --enable-daemon \
107 --enable-getifaddrs \
108 --with-nan-emulation \
109 --with-fp-layout=nothing
110
111 CONFIGURE_VARS+= \
112 CFLAGS="$$$$CFLAGS $(FPIC)" \
113 LDFLAGS="$$$$LDFLAGS -lm -lz" \
114 KERNEL_DIR="$(LINUX_DIR)" \
115
116 CONFIGURE_PLUGIN:= \
117 $(foreach m, $(1), \
118 $(if $(CONFIG_PACKAGE_collectd-mod-$(m)),--enable-$(m),--disable-$(m)) \
119 )
120
121 CONFIGURE_ARGS+= \
122 $(call CONFIGURE_PLUGIN,$(COLLECTD_PLUGINS_SELECTED)) \
123 $(call CONFIGURE_PLUGIN,$(COLLECTD_PLUGINS_DISABLED)) \
124
125 # exception: mod-ascent needs libxml2
126 ifneq ($(CONFIG_PACKAGE_collectd-mod-netlink),)
127 CONFIGURE_VARS+= \
128 CPPFLAGS="$$$$CPPFLAGS -I$(STAGING_DIR)/usr/include/libxml2"
129 endif
130
131 # exception: mod-netlink needs libnetlink from iproute
132 ifneq ($(CONFIG_PACKAGE_collectd-mod-netlink),)
133 CONFIGURE_ARGS+= --with-libnetlink="$(STAGING_DIR)/usr"
134 endif
135
136 # exception: mod-rrdtool needs rrdtool-1.0.x
137 ifneq ($(CONFIG_PACKAGE_collectd-mod-rrdtool),)
138 CONFIGURE_ARGS+= --with-rrdtool="$(STAGING_DIR)/usr/lib/rrdtool-1.0"
139 endif
140
141 MAKE_FLAGS += \
142 DESTDIR="$(PKG_INSTALL_DIR)" \
143 all install
144
145 define Package/collectd/conffiles
146 /etc/collectd.conf
147 endef
148
149 define Package/collectd/install
150 $(INSTALL_DIR) $(1)/usr/sbin
151 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/collectd $(1)/usr/sbin/
152 $(INSTALL_DIR) $(1)/usr/lib/collectd
153 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/lib/collectd/types.db $(1)/usr/lib/collectd/
154 $(INSTALL_DIR) $(1)/etc
155 $(INSTALL_CONF) ./files/collectd.conf $(1)/etc/
156 $(INSTALL_DIR) $(1)/etc/init.d
157 $(INSTALL_BIN) ./files/collectd.init $(1)/etc/init.d/collectd
158 endef
159
160 # 1: plugin name
161 # 2: plugin title/description
162 # 3: files
163 # 4: extra dependency
164 define BuildPlugin
165
166 PKG_CONFIG_DEPENDS+= CONFIG_PACKAGE_collectd-mod-$(1)
167
168 define Package/collectd-mod-$(1)
169 $$(call Package/collectd/Default)
170 TITLE:=$(2) plugin
171 DEPENDS:= collectd $(4)
172 endef
173
174 define Package/collectd-mod-$(1)/install
175 $(INSTALL_DIR) $$(1)/usr/lib/collectd
176 for m in $(3); do \
177 $(CP) \
178 $(PKG_INSTALL_DIR)/usr/lib/collectd/$$$$$$$${m}.so \
179 $$(1)/usr/lib/collectd/ ; \
180 done
181 endef
182
183 $$(eval $$(call BuildPackage,collectd-mod-$(1)))
184
185 endef
186
187 $(eval $(call BuildPackage,collectd))
188
189 #$(eval $(call BuildPlugin,NAME,DESCRIPTION,FILES,DEPENDENCIES))
190 $(eval $(call BuildPlugin,apache,apache status input,apache,+libcurl))
191 $(eval $(call BuildPlugin,apcups,apcups status input,apcups,))
192 $(eval $(call BuildPlugin,ascent,ascent status input,ascent,+libcurl +libxml2))
193 $(eval $(call BuildPlugin,cpu,CPU input,cpu,))
194 $(eval $(call BuildPlugin,csv,CSV output,csv,))
195 $(eval $(call BuildPlugin,df,disk space input,df,))
196 $(eval $(call BuildPlugin,disk,disk usage/timing input,disk,))
197 $(eval $(call BuildPlugin,dns,DNS traffic input,dns,+libpcap))
198 $(eval $(call BuildPlugin,email,email output,email,))
199 $(eval $(call BuildPlugin,exec,process exec input,exec,))
200 $(eval $(call BuildPlugin,interface,network interfaces input,interface,))
201 $(eval $(call BuildPlugin,iptables,iptables status input,iptables,+iptables))
202 $(eval $(call BuildPlugin,irq,interrupt usage input,irq,))
203 $(eval $(call BuildPlugin,load,system load input,load,))
204 $(eval $(call BuildPlugin,logfile,log files output,logfile,))
205 $(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+libmysqlclient))
206 $(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
207 $(eval $(call BuildPlugin,netlink,netlink input,netlink,+ip))
208 $(eval $(call BuildPlugin,network,network input/output,network))
209 $(eval $(call BuildPlugin,nginx,nginx status input,nginx,+libcurl))
210 $(eval $(call BuildPlugin,ntpd,NTP daemon status input,ntpd,))
211 $(eval $(call BuildPlugin,nut,UPS monitoring input,nut,@BROKEN))
212 $(eval $(call BuildPlugin,ping,ping status input,ping,+liboping))
213 $(eval $(call BuildPlugin,powerdns,PowerDNS server status input,powerdns,))
214 $(eval $(call BuildPlugin,processes,process status input,processes,))
215 $(eval $(call BuildPlugin,rrdtool,RRDtool output,rrdtool,+librrd1))
216 $(eval $(call BuildPlugin,sensors,lm_sensors input,sensors,+libsensors @BROKEN))
217 $(eval $(call BuildPlugin,snmp,SNMP input,snmp,+libnetsnmp))
218 $(eval $(call BuildPlugin,syslog,syslog output,syslog,))
219 $(eval $(call BuildPlugin,tail,tail input,tail,))
220 $(eval $(call BuildPlugin,teamspeak2,TeamSpeak2 input,teamspeak2,))
221 $(eval $(call BuildPlugin,tcpconns,TCP connection tracking input,tcpconns,))
222 $(eval $(call BuildPlugin,unixsock,unix socket output,unixsock,))
223 $(eval $(call BuildPlugin,users,user logged in status input,users,))
224 $(eval $(call BuildPlugin,vmem,virtual memory usage input,vmem,))
225 $(eval $(call BuildPlugin,wireless,wireless status input,wireless,))