b4be1b9ef15a3c84b09d9d8dd6135ac605c9bac4
[project/luci.git] / contrib / package / luci / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_BRANCH:=trunk
4 PKG_SOURCE_URL:=https://dev.leipzig.freifunk.net/svn/ff-luci/$(PKG_BRANCH)
5 PKG_REV:=$(shell LC_ALL=C svn info ${PKG_SOURCE_URL} | sed -ne's/^Last Changed Rev: //p')
6
7 PKG_NAME:=luci
8 PKG_VERSION:=0.5+svn$(PKG_REV)
9 PKG_RELEASE:=1
10
11 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
12 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
13 PKG_SOURCE_PROTO:=svn
14 PKG_SOURCE_VERSION:=$(PKG_REV)
15
16 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
17 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
18
19 LUA_TARGET:=source
20 PKG_SELECTED_MODULES:=
21
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Build/Configure
26 endef
27
28
29 define Build/Compile
30 for i in $(PKG_SELECTED_MODULES); do $(MAKE) -C$(PKG_BUILD_DIR)/$$$$i build LUA_TARGET=$(LUA_TARGET); done
31 endef
32
33 ### Templates ###
34
35 define Package/luci/libtemplate
36 SECTION:=admin
37 CATEGORY:=Administration
38 TITLE:=LuCI - Lua Configuration Interface
39 URL:=http://luci.freifunk-halle.net/
40 MAINTAINER:=Steven Barth <steven-at-midlink-dot-org>
41 SUBMENU:=LuCI - Libraries
42 DEPENDS:=+luci-core
43 endef
44
45 define Package/luci/fftemplate
46 $(call Package/luci/libtemplate)
47 SUBMENU:=LuCI - Freifunk Support
48 DEPENDS:=+luci-mod-freifunk
49 endef
50
51 define Package/luci/i18ntemplate
52 $(call Package/luci/libtemplate)
53 SUBMENU:=LuCI - Translations
54 DEPENDS:=+luci-web
55 endef
56
57 define Package/luci/thtemplate
58 $(call Package/luci/libtemplate)
59 SUBMENU:=LuCI - Themes
60 DEPENDS:=+luci-web
61 endef
62
63 define Package/luci/webtemplate
64 $(call Package/luci/libtemplate)
65 SUBMENU:=LuCI - Webinterface Components
66 endef
67
68
69 define Package/luci/install/template
70 $(CP) $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R
71 endef
72
73
74
75 ### Core package ###
76
77 define Package/luci-core
78 $(call Package/luci/libtemplate)
79 DEPENDS:=+lua +luaposix
80 TITLE:=LuCI core libraries
81 endef
82
83 define Package/luci-core/install
84 $(call Package/luci/install/template,$(1),libs/core)
85 endef
86
87 define Package/luci-core/config
88 choice
89 prompt "Build Target"
90 default PACKAGE_luci-core_compile
91
92 config PACKAGE_luci-core_compile
93 bool "Production"
94
95 config PACKAGE_luci-core_source
96 bool "Debug"
97
98 endchoice
99 endef
100
101 ifneq ($(CONFIG_PACKAGE_luci-core_compile),)
102 LUA_TARGET:=compile
103 endif
104
105
106 ### Libraries ###
107 define Package/luci-cbi
108 $(call Package/luci/libtemplate)
109 DEPENDS+=+luci-web
110 TITLE:=Configuration Binding Interface
111 endef
112
113 define Package/luci-cbi/install
114 $(call Package/luci/install/template,$(1),libs/cbi)
115 endef
116
117
118 define Package/luci-web
119 $(call Package/luci/libtemplate)
120 DEPENDS+=+luci-addons
121 TITLE:=MVC Webframework
122 endef
123
124 define Package/luci-web/conffiles
125 /etc/config/luci
126 endef
127
128 define Package/luci-web/install
129 $(call Package/luci/install/template,$(1),libs/web)
130 endef
131
132
133
134 ### Community Packages ###
135
136 define Package/luci-ff-halle
137 $(call Package/luci/fftemplate)
138 DEPENDS+= \
139 +luci-sgi-haserl +luci-app-splash \
140 +luci-app-ffwizard-leipzig \
141 +luci-theme-fledermaus \
142 +luci-i18n-german \
143 +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
144 +kmod-tun +ip
145 TITLE:=Freifunk Halle Community Meta-Package
146 endef
147
148 define Package/luci-ff-halle/install
149 $(call Package/luci/install/template,$(1),applications/community-halle)
150 $(CP) -a ./ipkg/luci-ff-halle.postinst $(1)/CONTROL/postinst
151 endef
152
153
154 define Package/luci-ff-leipzig
155 $(call Package/luci/fftemplate)
156 DEPENDS+= \
157 +luci-sgi-haserl +luci-app-splash \
158 +luci-app-ffwizard-leipzig \
159 +luci-theme-fledermaus \
160 +luci-i18n-german \
161 +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
162 +kmod-tun +ip
163 TITLE:=Freifunk Leipzig Community Meta-Package
164 endef
165
166 define Package/luci-ff-leipzig/install
167 $(call Package/luci/install/template,$(1),applications/community-leipzig)
168 $(CP) -a ./ipkg/luci-ff-leipzig.postinst $(1)/CONTROL/postinst
169 endef
170
171
172 define Package/luci-ff-hannover
173 $(call Package/luci/fftemplate)
174 DEPENDS+= \
175 +luci-sgi-haserl +luci-app-splash \
176 +luci-theme-fledermaus \
177 +luci-i18n-german \
178 +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice
179 TITLE:=Freifunk Hannover Community Meta-Package
180 URL:=http://www.freifunk-hannover.de/
181 MAINTAINER:=Mickey Knox <mickey-at-netfreaks-dot-org>
182 endef
183
184 define Package/luci-ff-hannover/install
185 $(call Package/luci/install/template,$(1),applications/community-hannover)
186 $(CP) -a ./ipkg/luci-ff-hannover.postinst $(1)/CONTROL/postinst
187 endef
188
189
190 ### Modules ###
191
192 define Package/luci-mod-admin-core
193 $(call Package/luci/webtemplate)
194 DEPENDS+=+luci-web +luci-cbi +luci-theme-openwrt +luci-i18n-english
195 TITLE:=Administration module
196 endef
197
198 define Package/luci-mod-admin-core/install
199 $(call Package/luci/install/template,$(1),modules/admin-core)
200 endef
201
202
203 define Package/luci-mod-freifunk
204 $(call Package/luci/fftemplate)
205 DEPENDS:=+luci-mod-admin-core
206 TITLE:=LuCI Freifunk module
207 endef
208
209 define Package/luci-mod-freifunk/conffiles
210 /etc/config/freifunk
211 endef
212
213 define Package/luci-mod-freifunk/install
214 $(call Package/luci/install/template,$(1),modules/freifunk)
215 endef
216
217
218
219 ### Applications ###
220
221 define Package/luci-app-ffwizard-leipzig
222 $(call Package/luci/fftemplate)
223 DEPENDS+=+luci-app-firewall
224 TITLE:=Freifunk Leipzig configuration wizard
225 endef
226
227 define Package/luci-app-ffwizard-leipzig/install
228 $(call Package/luci/install/template,$(1),applications/luci-ffwizard-leipzig)
229 endef
230
231
232 define Package/luci-app-firewall
233 $(call Package/luci/webtemplate)
234 DEPENDS+=+luci-mod-admin-core
235 TITLE:=Firewall and Portforwarding application
236 endef
237
238 define Package/luci-app-firewall/conffiles
239 /etc/config/luci_fw
240 endef
241
242 define Package/luci-app-firewall/install
243 $(call Package/luci/install/template,$(1),applications/luci-fw)
244 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-fw/dist/etc/init.d/luci_fw $(1)/etc/init.d
245 endef
246
247
248 define Package/luci-app-splash
249 $(call Package/luci/fftemplate)
250 DEPENDS+=+luci-sgi-haserl +iptables-mod-nat +iptables-mod-ipopt
251 TITLE:=Freifunk DHCP-Splash application
252 endef
253
254 define Package/luci-app-splash/conffiles
255 /etc/config/luci_splash
256 endef
257
258 define Package/luci-app-splash/install
259 $(call Package/luci/install/template,$(1),applications/luci-splash)
260 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/usr/sbin/luci-splash $(1)/usr/sbin
261 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/etc/init.d/luci_splash $(1)/etc/init.d
262 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/etc/cron.minutely/luci_splash $(1)/etc/cron.minutely
263 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/usr/lib/luci-splash/htdocs/cgi-bin/index.cgi $(1)/usr/lib/luci-splash/htdocs/cgi-bin
264 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-splash/dist/www/cgi-bin/luci-splash $(1)/www/cgi-bin/luci-splash
265 endef
266
267
268 define Package/luci-app-statistics
269 $(call Package/luci/webtemplate)
270 DEPENDS+=+luci-mod-admin-core +collectd +collectd-mod-rrdtool1 +rrdtool1
271 TITLE:=LuCI Statistics Application (incomplete)
272 endef
273
274 define Package/luci-app-statistics/conffiles
275 /etc/config/luci_statistics
276 endef
277
278 define Package/luci-app-statistics/install
279 $(call Package/luci/install/template,$(1),applications/luci-statistics)
280 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-statistics/dist/usr/bin/stat-genconfig $(1)/usr/bin
281 $(INSTALL_BIN) $(PKG_BUILD_DIR)/applications/luci-statistics/dist/etc/init.d/luci_statistics $(1)/etc/init.d
282 endef
283
284
285 ### Server Gateway Interfaces ###
286
287 define Package/luci-sgi-haserl
288 $(call Package/luci/libtemplate)
289 DEPENDS+=+luci-web +haserl-lua
290 TITLE:=SGI for Haserl
291 endef
292
293 define Package/luci-sgi-haserl/install
294 $(call Package/luci/install/template,$(1),libs/sgi-haserl)
295 $(CP) -a ./ipkg/luci-sgi-haserl.postinst $(1)/CONTROL/postinst
296 endef
297
298
299 define Package/luci-sgi-webuci
300 $(call Package/luci/libtemplate)
301 DEPENDS+=+luci-web
302 TITLE:=SGI for Webuci
303 endef
304
305 define Package/luci-sgi-webuci/install
306 $(call Package/luci/install/template,$(1),libs/sgi-webuci)
307 endef
308
309 ### Themes ###
310 define Package/luci-theme-fledermaus
311 $(call Package/luci/fftemplate)
312 DEPENDS:=+luci-web
313 TITLE:=Fledermaus Theme
314 endef
315
316 define Package/luci-theme-fledermaus/install
317 $(call Package/luci/install/template,$(1),themes/fledermaus)
318 endef
319
320 define Package/luci-theme-openwrt
321 $(call Package/luci/thtemplate)
322 TITLE:=OpenWRT.org (default)
323 endef
324
325 define Package/luci-theme-openwrt/install
326 $(call Package/luci/install/template,$(1),themes/openwrt.org)
327 endef
328
329 ### Translations ###
330 define Package/luci-i18n-german
331 $(call Package/luci/i18ntemplate)
332 TITLE:=German
333 endef
334
335 define Package/luci-i18n-german/install
336 $(call Package/luci/install/template,$(1),i18n/german)
337 endef
338
339
340 define Package/luci-i18n-english
341 $(call Package/luci/i18ntemplate)
342 TITLE:=English (incomplete)
343 endef
344
345 define Package/luci-i18n-english/install
346 $(call Package/luci/install/template,$(1),i18n/english)
347 endef
348
349
350
351 ### Compile ###
352 ifneq ($(CONFIG_PACKAGE_luci-core),)
353 PKG_SELECTED_MODULES+=libs/core
354 endif
355 ifneq ($(CONFIG_PACKAGE_luci-cbi),)
356 PKG_SELECTED_MODULES+=libs/cbi
357 endif
358 ifneq ($(CONFIG_PACKAGE_luci-web),)
359 PKG_SELECTED_MODULES+=libs/web
360 endif
361
362 ifneq ($(CONFIG_PACKAGE_luci-ff-halle),)
363 PKG_SELECTED_MODULES+=applications/community-halle
364 endif
365 ifneq ($(CONFIG_PACKAGE_luci-ff-leipzig),)
366 PKG_SELECTED_MODULES+=applications/community-leipzig
367 endif
368 ifneq ($(CONFIG_PACKAGE_luci-ff-hannover),)
369 PKG_SELECTED_MODULES+=applications/community-hannover
370 endif
371
372 ifneq ($(CONFIG_PACKAGE_luci-mod-admin-core),)
373 PKG_SELECTED_MODULES+=modules/admin-core
374 endif
375 ifneq ($(CONFIG_PACKAGE_luci-mod-freifunk),)
376 PKG_SELECTED_MODULES+=modules/freifunk
377 endif
378
379 ifneq ($(CONFIG_PACKAGE_luci-app-ffwizard-leipzig),)
380 PKG_SELECTED_MODULES+=applications/luci-ffwizard-leipzig
381 endif
382 ifneq ($(CONFIG_PACKAGE_luci-app-firewall),)
383 PKG_SELECTED_MODULES+=applications/luci-fw
384 endif
385 ifneq ($(CONFIG_PACKAGE_luci-app-splash),)
386 PKG_SELECTED_MODULES+=applications/luci-splash
387 endif
388 ifneq ($(CONFIG_PACKAGE_luci-app-statistics),)
389 PKG_SELECTED_MODULES+=applications/luci-statistics
390 endif
391
392 ifneq ($(CONFIG_PACKAGE_luci-sgi-haserl),)
393 PKG_SELECTED_MODULES+=libs/sgi-haserl
394 endif
395 ifneq ($(CONFIG_PACKAGE_luci-sgi-webuci),)
396 PKG_SELECTED_MODULES+=libs/sgi-webuci
397 endif
398
399 ifneq ($(CONFIG_PACKAGE_luci-theme-fledermaus),)
400 PKG_SELECTED_MODULES+=themes/fledermaus
401 endif
402 ifneq ($(CONFIG_PACKAGE_luci-theme-openwrt),)
403 PKG_SELECTED_MODULES+=themes/openwrt.org
404 endif
405
406 ifneq ($(CONFIG_PACKAGE_luci-i18n-german),)
407 PKG_SELECTED_MODULES+=i18n/german
408 endif
409 ifneq ($(CONFIG_PACKAGE_luci-i18n-english),)
410 PKG_SELECTED_MODULES+=i18n/english
411 endif
412
413
414 $(eval $(call BuildPackage,luci-core))
415 $(eval $(call BuildPackage,luci-cbi))
416 $(eval $(call BuildPackage,luci-web))
417
418 $(eval $(call BuildPackage,luci-ff-halle))
419 $(eval $(call BuildPackage,luci-ff-leipzig))
420 $(eval $(call BuildPackage,luci-ff-hannover))
421
422 $(eval $(call BuildPackage,luci-mod-admin-core))
423 $(eval $(call BuildPackage,luci-mod-freifunk))
424
425 $(eval $(call BuildPackage,luci-app-ffwizard-leipzig))
426 $(eval $(call BuildPackage,luci-app-firewall))
427 $(eval $(call BuildPackage,luci-app-splash))
428 $(eval $(call BuildPackage,luci-app-statistics))
429
430 $(eval $(call BuildPackage,luci-sgi-haserl))
431 $(eval $(call BuildPackage,luci-sgi-webuci))
432
433 $(eval $(call BuildPackage,luci-theme-fledermaus))
434 $(eval $(call BuildPackage,luci-theme-openwrt))
435
436 $(eval $(call BuildPackage,luci-i18n-german))
437 $(eval $(call BuildPackage,luci-i18n-english))