deb4138321ce83f6d9938449773691ef0ab46473
[packages.git] / admin / pmacct / Makefile
1 #
2 # Copyright (C) 2006-2012 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:=pmacct
11 PKG_VERSION:=0.14.0
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://www.pmacct.net/
16 PKG_MD5SUM:=4588531f0e8033fe82ad7fb22d1bbdb7
17
18 PKG_BUILD_DEPENDS:=libpcap
19
20 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
21
22 PKG_CONFIG_DEPENDS:= \
23         CONFIG_IPV6 \
24
25 PKG_INSTALL:=1
26
27 include $(INCLUDE_DIR)/package.mk
28
29 define Package/pmacct/Default
30   SECTION:=admin
31   CATEGORY:=Administration
32   SUBMENU:=Pmacct suite
33   URL:=http://www.pmacct.net/
34 endef
35
36 define Package/pmacct-client
37   $(call Package/pmacct/Default)
38   TITLE:=Command-line client to gather data from the IMT plugin
39   VARIANT:=basic
40 endef
41
42 define Package/nfacctd/Default
43   $(call Package/pmacct/Default)
44   TITLE:=NetFlow accounting daemon
45 endef
46
47 define Package/pmacctd/Default
48   $(call Package/pmacct/Default)
49   DEPENDS+= +libpcap
50   TITLE:=IP pcap-based accounting daemon
51 endef
52
53 define Package/sfacctd/Default
54   $(call Package/pmacct/Default)
55   DEPENDS+= +libpcap
56   TITLE:=sFlow accounting daemon
57 endef
58
59 define Package/uacctd/Default
60   $(call Package/pmacct/Default)
61   DEPENDS+= +iptables-mod-ulog
62   TITLE:=ulog accounting daemon
63 endef
64
65
66 CONFIGURE_ARGS+= \
67         $(call autoconf_bool,CONFIG_IPV6,ipv6) \
68         --with-pcap-includes="$(STAGING_DIR)/usr/include" \
69         --with-pcap-libs="$(STAGING_DIR)/usr/lib" \
70         --enable-ulog \
71
72 ifeq ($(BUILD_VARIANT),basic)
73
74   CONFIGURE_ARGS += \
75         --disable-mysql \
76         --disable-pgsql \
77         --disable-sqlite3 \
78
79 endif
80
81 ifeq ($(BUILD_VARIANT),mysql)
82
83   CONFIGURE_ARGS += \
84         --enable-mysql \
85         --with-mysql-includes="$(STAGING_DIR)/usr/include" \
86         --with-mysql-libs="$(STAGING_DIR)/usr/lib/mysql" \
87         --disable-pgsql \
88         --disable-sqlite3 \
89
90   CONFIGURE_VARS+= \
91         LIBS="-lz" \
92
93 endif
94
95 ifeq ($(BUILD_VARIANT),pgsql)
96
97   CONFIGURE_ARGS += \
98         --disable-mysql \
99         --enable-pgsql \
100         --with-pgsql-includes="$(STAGING_DIR)/usr/include" \
101         --with-pgsql-libs="$(STAGING_DIR)/usr/lib" \
102         --disable-sqlite3 \
103
104 endif
105
106 ifeq ($(BUILD_VARIANT),sqlite)
107
108   CONFIGURE_ARGS += \
109         --disable-mysql \
110         --disable-pgsql \
111         --enable-sqlite3 \
112         --with-sqlite3-includes="$(STAGING_DIR)/usr/include" \
113         --with-sqlite3-libs="$(STAGING_DIR)/usr/lib" \
114
115 endif
116
117
118 define Package/pmacct-client/install
119         $(INSTALL_DIR) $(1)/usr/sbin
120         $(CP) $(PKG_BUILD_DIR)/src/pmacct $(1)/usr/sbin/
121 endef
122
123
124 # $(1): build variant {basic,mysql,pgsql,sqlite}
125 # $(2): package name prefix {nfacctd,pmacctd,sfacctd,uacctd}
126 # $(3): package name suffix {,-mysql,-pgsql,-sqlite}
127 # $(4): additional title (with MySQL support, ...)
128 # $(5): additional dependencies (+libmysqlclient, ...)
129
130 define BuildPackage/Template
131
132   define Package/$(2)$(3)
133     $(call Package/$(2)/Default)
134     DEPENDS+= $(5)
135     TITLE+= $(4)
136     VARIANT:=$(1)
137   endef
138
139   define Package/$(2)$(3)/conffiles
140 /etc/default/$(2)
141 /etc/$(2).conf
142   endef
143
144   define Package/$(2)$(3)/install
145         $(INSTALL_DIR) $$(1)/usr/sbin
146         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $$(1)/usr/sbin/
147         $(INSTALL_DIR) $$(1)/etc
148         $(INSTALL_DATA) ./files/$(2).conf $$(1)/etc/
149         $(INSTALL_DIR) $$(1)/etc/default
150         $(INSTALL_DATA) ./files/$(2).default $$(1)/etc/default/$(2)
151         $(INSTALL_DIR) $$(1)/etc/init.d
152         $(INSTALL_BIN) ./files/$(2).init $$(1)/etc/init.d/$(2)
153   endef
154
155   $$(eval $$(call BuildPackage,$(2)$(3)))
156
157 endef
158
159 $(eval $(call BuildPackage,pmacct-client))
160
161 $(eval $(call BuildPackage/Template,basic,nfacctd,,,))
162 $(eval $(call BuildPackage/Template,basic,pmacctd,,,))
163 $(eval $(call BuildPackage/Template,basic,sfacctd,,,))
164 $(eval $(call BuildPackage/Template,basic,uacctd,,,))
165
166 $(eval $(call BuildPackage/Template,mysql,nfacctd,-mysql,with MySQL support,+libmysqlclient))
167 $(eval $(call BuildPackage/Template,mysql,pmacctd,-mysql,with MySQL support,+libmysqlclient))
168 $(eval $(call BuildPackage/Template,mysql,sfacctd,-mysql,with MySQL support,+libmysqlclient))
169 $(eval $(call BuildPackage/Template,mysql,uacctd,-mysql,with MySQL support,+libmysqlclient))
170
171 $(eval $(call BuildPackage/Template,pgsql,nfacctd,-pgsql,with PostgreSQL support,+libpq))
172 $(eval $(call BuildPackage/Template,pgsql,pmacctd,-pgsql,with PostgreSQL support,+libpq))
173 $(eval $(call BuildPackage/Template,pgsql,sfacctd,-pgsql,with PostgreSQL support,+libpq))
174 $(eval $(call BuildPackage/Template,pgsql,uacctd,-pgsql,with PostgreSQL support,+libpq))
175
176 $(eval $(call BuildPackage/Template,sqlite,nfacctd,-sqlite,with SQLite support,+libsqlite3))
177 $(eval $(call BuildPackage/Template,sqlite,pmacctd,-sqlite,with SQLite support,+libsqlite3))
178 $(eval $(call BuildPackage/Template,sqlite,sfacctd,-sqlite,with SQLite support,+libsqlite3))
179 $(eval $(call BuildPackage/Template,sqlite,uacctd,-sqlite,with SQLite support,+libsqlite3))