* luci: added community package for Freifunk Augsburg
[project/luci.git] / contrib / package / luci / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_BRANCH:=trunk
4
5 ifeq ($(DUMP),)
6   USELOCAL:=$(shell grep luci ../../../.project 2>/dev/null >/dev/null && echo 1)
7 endif
8
9 PKG_NAME:=luci
10 PKG_RELEASE:=1
11
12 ifeq ($(USELOCAL),1)
13   PKG_VERSION:=0.7+svn
14 else
15   PKG_SOURCE_URL:=https://dev.leipzig.freifunk.net/svn/ff-luci/$(PKG_BRANCH)
16   ifeq ($(DUMP),)
17     PKG_REV:=$(shell LC_ALL=C svn info ${PKG_SOURCE_URL} | sed -ne's/^Last Changed Rev: //p')
18     PKG_VERSION:=0.7+svn$(PKG_REV)
19   endif
20   PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
21   PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
22   PKG_SOURCE_PROTO:=svn
23   PKG_SOURCE_VERSION:=$(PKG_REV)
24 endif
25
26 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
27 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
28
29 PKG_BUILD_DEPENDS:=libnotimpl
30 LUA_TARGET:=source
31 PKG_SELECTED_MODULES:=
32
33
34 include $(INCLUDE_DIR)/package.mk
35
36 ifeq ($(USELOCAL),1)
37   define Build/Prepare
38         mkdir -p $(PKG_BUILD_DIR)
39         $(TAR) c -C ../../../ . \
40                 --exclude=.pc --exclude=.svn --exclude=.git \
41                 --exclude='boa-0*' --exclude='*.o' --exclude='*.so' \
42                 --exclude=dist | \
43                         tar x -C $(PKG_BUILD_DIR)/
44   endef
45 endif
46
47 define Build/Configure
48 endef
49
50 ### Templates ###
51
52 define Package/luci/libtemplate
53   SECTION:=admin
54   CATEGORY:=Administration
55   TITLE:=LuCI - Lua Configuration Interface
56   URL:=http://luci.freifunk-halle.net/
57   MAINTAINER:=Steven Barth <steven-at-midlink-dot-org>
58   SUBMENU:=LuCI - Libraries
59   DEPENDS:=+luci-core
60 endef
61
62 define Package/luci/fftemplate
63   $(call Package/luci/libtemplate)
64   SUBMENU:=LuCI - Freifunk Support
65   DEPENDS:=+luci-mod-freifunk
66 endef
67
68 define Package/luci/httpdtemplate
69   $(call Package/luci/libtemplate)
70   SUBMENU:=LuCI - Non-Forking HTTP-Daemon (EXPERIMENTAL)
71   DEPENDS:=+luci-httpd
72 endef
73
74 define Package/luci/i18ntemplate
75   $(call Package/luci/libtemplate)
76   SUBMENU:=LuCI - Translations
77   DEPENDS:=+luci-web
78 endef
79
80 define Package/luci/thtemplate
81   $(call Package/luci/libtemplate)
82   SUBMENU:=LuCI - Themes
83   DEPENDS:=+luci-web
84 endef
85
86 define Package/luci/webtemplate
87   $(call Package/luci/libtemplate)
88   SUBMENU:=LuCI - Webinterface Components
89 endef
90
91
92 define Package/luci/install/template
93         $(CP) -a $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R
94         $(CP) -a $(PKG_BUILD_DIR)/$(2)/ipkg/* $(1)/CONTROL/ 2>/dev/null || true
95 endef
96
97
98
99 ### Core package ###
100
101 define Package/luci-core
102   $(call Package/luci/libtemplate)
103   DEPENDS:=+lua +luaposix
104   TITLE:=LuCI core libraries
105 endef
106
107 define Package/luci-core/install                
108         $(call Package/luci/install/template,$(1),libs/core)
109 endef
110
111 define Package/luci-core/config
112        choice
113                prompt "Build Target"
114                default PACKAGE_luci-core_compile
115
116        config PACKAGE_luci-core_compile
117                bool "Production"
118
119        config PACKAGE_luci-core_source
120                bool "Debug"
121
122        endchoice
123 endef
124
125 ifneq ($(CONFIG_PACKAGE_luci-core_compile),)
126   LUA_TARGET:=compile
127 endif
128
129
130 ### Libraries ###
131 define Package/luci-cbi
132   $(call Package/luci/libtemplate)
133   DEPENDS+=+luci-web
134   TITLE:=Configuration Binding Interface
135 endef
136
137 define Package/luci-cbi/install
138         $(call Package/luci/install/template,$(1),libs/cbi)
139 endef
140
141
142 define Package/luci-uci
143   $(call Package/luci/libtemplate)
144   DEPENDS+=+libuci-lua
145   TITLE:=High-Level UCI API
146 endef
147
148 define Package/luci-uci/install
149         $(call Package/luci/install/template,$(1),libs/uci)
150 endef
151
152
153 define Package/luci-fastindex
154   $(call Package/luci/libtemplate)
155   TITLE:=Fastindex indexing module
156 endef
157
158 define Package/luci-fastindex/install
159         $(call Package/luci/install/template,$(1),libs/fastindex)
160 endef
161
162
163 define Package/luci-http
164   $(call Package/luci/libtemplate)
165   TITLE:=HTTP Protocol implementation
166 endef
167
168 define Package/luci-http/install
169         $(call Package/luci/install/template,$(1),libs/http)
170 endef
171
172
173 define Package/luci-web
174   $(call Package/luci/libtemplate)
175   DEPENDS+=+luci-http +luci-addons +luci-uci +luci-sgi-cgi
176   TITLE:=MVC Webframework
177 endef
178
179 define Package/luci-web/conffiles
180 /etc/config/luci
181 endef
182
183 define Package/luci-web/install
184         $(call Package/luci/install/template,$(1),libs/web)
185 endef
186
187
188
189 ### HTTPD ###
190
191 define Package/luci-httpd
192   $(call Package/luci/httpdtemplate)
193   DEPENDS:=+luci-http +luasocket
194   TITLE:=Server Core
195 endef
196
197 define Package/luci-httpd/install
198         $(call Package/luci/install/template,$(1),libs/httpd)
199 endef
200
201
202
203 ### Community Packages ###
204
205 define Package/luci-ff-halle
206   $(call Package/luci/fftemplate)
207   DEPENDS+= \
208    +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
209    +luci-app-ffwizard-leipzig \
210    +luci-theme-fledermaus \
211    +luci-i18n-german \
212    +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
213    +kmod-tun +ip
214   TITLE:=Freifunk Halle Community Meta-Package
215 endef
216
217 define Package/luci-ff-halle/install
218         $(call Package/luci/install/template,$(1),applications/community-halle)
219 endef
220
221
222 define Package/luci-ff-leipzig
223   $(call Package/luci/fftemplate)
224   DEPENDS+= \
225    +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
226    +luci-app-ffwizard-leipzig \
227    +luci-theme-fledermaus \
228    +luci-i18n-german \
229    +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \
230    +kmod-tun +ip
231   TITLE:=Freifunk Leipzig Community Meta-Package
232 endef
233
234 define Package/luci-ff-leipzig/install
235         $(call Package/luci/install/template,$(1),applications/community-leipzig)
236 endef
237
238
239 define Package/luci-ff-hannover
240   $(call Package/luci/fftemplate)
241   DEPENDS+= \
242    +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
243    +luci-theme-fledermaus \
244    +luci-i18n-german \
245    +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice
246   TITLE:=Freifunk Hannover Community Meta-Package
247   URL:=http://www.freifunk-hannover.de/
248   MAINTAINER:=Mickey Knox <mickey-at-netfreaks-dot-org>
249 endef
250
251 define Package/luci-ff-hannover/install
252         $(call Package/luci/install/template,$(1),applications/community-hannover)
253 endef
254
255
256 define Package/luci-ff-berlin
257   $(call Package/luci/fftemplate)
258   DEPENDS+= \
259    +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
260    +luci-theme-fledermaus \
261    +luci-i18n-german \
262    +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice
263   TITLE:=Freifunk Berlin Community Meta-Package
264 endef
265
266 define Package/luci-ff-berlin/install
267         $(call Package/luci/install/template,$(1),applications/community-berlin)
268 endef
269
270 define Package/luci-ff-augsburg
271   $(call Package/luci/fftemplate)
272   DEPENDS+= \
273    +luci-sgi-cgi +luci-app-splash +luci-app-olsr \
274    +luci-theme-fledermaus \
275    +luci-i18n-german \
276    +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice
277   TITLE:=Freifunk Augsburg Community Meta-Package
278 endef
279
280 define Package/luci-ff-augsburg/install
281         $(call Package/luci/install/template,$(1),applications/community-augsburg)
282 endef
283
284 ### Modules ###
285
286 define Package/luci-mod-admin-core
287   $(call Package/luci/webtemplate)
288   DEPENDS+=+luci-web +luci-cbi +luci-theme-openwrt +luci-i18n-english
289   TITLE:=Administration module
290 endef
291
292 define Package/luci-mod-admin-core/install
293         $(call Package/luci/install/template,$(1),modules/admin-core)
294 endef
295
296
297 define Package/luci-mod-freifunk
298   $(call Package/luci/fftemplate)
299   DEPENDS:=+luci-mod-admin-core
300   TITLE:=LuCI Freifunk module
301 endef
302
303 define Package/luci-mod-freifunk/conffiles
304 /etc/config/freifunk
305 endef
306
307 define Package/luci-mod-freifunk/install
308         $(call Package/luci/install/template,$(1),modules/freifunk)
309 endef
310
311
312
313 ### Applications ###
314
315 define Package/luci-app-ffwizard-leipzig
316   $(call Package/luci/fftemplate)
317   DEPENDS+=+luci-app-firewall
318   TITLE:=Freifunk Leipzig configuration wizard
319 endef
320
321 define Package/luci-app-ffwizard-leipzig/install
322         $(call Package/luci/install/template,$(1),applications/luci-ffwizard-leipzig)
323 endef
324
325
326 define Package/luci-app-firewall
327   $(call Package/luci/webtemplate)
328   DEPENDS+=+luci-mod-admin-core
329   TITLE:=Firewall and Portforwarding application
330 endef
331
332 define Package/luci-app-firewall/conffiles
333 /etc/config/luci_fw
334 endef
335
336 define Package/luci-app-firewall/install
337         $(call Package/luci/install/template,$(1),applications/luci-fw)
338 endef
339
340
341 define Package/luci-app-olsr
342   $(call Package/luci/webtemplate)
343   DEPENDS+=+luci-mod-admin-core +olsrd-mod-txtinfo
344   TITLE:=OLSR configuration and status module
345 endef
346
347 define Package/luci-app-olsr/install
348         $(call Package/luci/install/template,$(1),applications/luci-olsr)
349 endef
350
351
352 define Package/luci-app-qos
353   $(call Package/luci/webtemplate)
354   DEPENDS+=+luci-mod-admin-core +qos-scripts
355   TITLE:=Quality of Service configuration module
356 endef
357
358 define Package/luci-app-qos/install
359         $(call Package/luci/install/template,$(1),applications/luci-qos)
360 endef
361
362
363 define Package/luci-app-splash
364   $(call Package/luci/fftemplate)
365   DEPENDS+=+luasocket +iptables-mod-nat +iptables-mod-ipopt
366   TITLE:=Freifunk DHCP-Splash application
367 endef
368
369 define Package/luci-app-splash/conffiles
370 /etc/config/luci_splash
371 endef
372
373 define Package/luci-app-splash/install
374         $(call Package/luci/install/template,$(1),applications/luci-splash)
375 endef
376
377
378 define Package/luci-app-statistics
379   $(call Package/luci/webtemplate)
380   DEPENDS+=+luci-mod-admin-core +collectd +collectd-mod-rrdtool1 +rrdtool1
381   TITLE:=LuCI Statistics Application
382 endef
383
384 define Package/luci-app-statistics/conffiles
385 /etc/config/luci_statistics
386 endef
387
388 define Package/luci-app-statistics/install
389         $(call Package/luci/install/template,$(1),applications/luci-statistics)
390 endef
391
392
393 ### Server Gateway Interfaces ###
394
395 define Package/luci-sgi-cgi
396   $(call Package/luci/libtemplate)
397   TITLE:=SGI for CGI
398 endef
399
400 define Package/luci-sgi-cgi/install
401         $(call Package/luci/install/template,$(1),libs/sgi-cgi)
402 endef
403
404 define Package/luci-sgi-luci
405   $(call Package/luci/libtemplate)
406   DEPENDS+=+luci-httpd
407   TITLE:=SGI for LuCI HTTPD
408 endef
409
410 define Package/luci-sgi-luci/install
411         $(call Package/luci/install/template,$(1),libs/sgi-luci)
412 endef
413
414 define Package/luci-sgi-webuci
415   $(call Package/luci/libtemplate)
416   TITLE:=SGI for Webuci
417 endef
418
419 define Package/luci-sgi-webuci/install
420         $(call Package/luci/install/template,$(1),libs/sgi-webuci)
421 endef
422
423 ### Themes ###
424 define Package/luci-theme-fledermaus
425   $(call Package/luci/fftemplate)
426   DEPENDS:=+luci-web
427   TITLE:=Fledermaus Theme
428 endef
429
430 define Package/luci-theme-fledermaus/install
431         $(call Package/luci/install/template,$(1),themes/fledermaus)
432 endef
433
434 define Package/luci-theme-openwrt
435   $(call Package/luci/thtemplate)
436   TITLE:=OpenWRT.org (default)
437 endef
438
439 define Package/luci-theme-openwrt/install
440         $(call Package/luci/install/template,$(1),themes/openwrt.org)
441 endef
442
443 ### Translations ###
444 define Package/luci-i18n-german
445   $(call Package/luci/i18ntemplate)
446   TITLE:=German
447 endef
448
449 define Package/luci-i18n-german/install
450         $(call Package/luci/install/template,$(1),i18n/german)
451 endef
452
453
454 define Package/luci-i18n-english
455   $(call Package/luci/i18ntemplate)
456   TITLE:=English
457 endef
458
459 define Package/luci-i18n-english/install
460         $(call Package/luci/install/template,$(1),i18n/english)
461 endef
462
463
464 define Package/luci-i18n-french
465   $(call Package/luci/i18ntemplate)
466   TITLE:=French
467 endef
468
469 define Package/luci-i18n-french/install
470         $(call Package/luci/install/template,$(1),i18n/french)
471 endef
472
473
474
475
476 ### Compile ###
477 ifneq ($(CONFIG_PACKAGE_luci-core),)
478         PKG_SELECTED_MODULES+=libs/core
479 endif
480 ifneq ($(CONFIG_PACKAGE_luci-cbi),)
481         PKG_SELECTED_MODULES+=libs/cbi
482 endif
483 ifneq ($(CONFIG_PACKAGE_luci-fastindex),)
484         PKG_SELECTED_MODULES+=libs/fastindex
485 endif
486 ifneq ($(CONFIG_PACKAGE_luci-http),)
487         PKG_SELECTED_MODULES+=libs/http
488 endif
489 ifneq ($(CONFIG_PACKAGE_luci-uci),)
490         PKG_SELECTED_MODULES+=libs/uci
491 endif
492 ifneq ($(CONFIG_PACKAGE_luci-web),)
493         PKG_SELECTED_MODULES+=libs/web
494 endif
495
496 ifneq ($(CONFIG_PACKAGE_luci-httpd),)
497         PKG_SELECTED_MODULES+=libs/httpd
498 endif
499
500 ifneq ($(CONFIG_PACKAGE_luci-ff-halle),)
501         PKG_SELECTED_MODULES+=applications/community-halle
502 endif
503 ifneq ($(CONFIG_PACKAGE_luci-ff-leipzig),)
504         PKG_SELECTED_MODULES+=applications/community-leipzig
505 endif
506 ifneq ($(CONFIG_PACKAGE_luci-ff-hannover),)
507         PKG_SELECTED_MODULES+=applications/community-hannover
508 endif
509 ifneq ($(CONFIG_PACKAGE_luci-ff-berlin),)
510         PKG_SELECTED_MODULES+=applications/community-berlin
511 endif
512 ifneq ($(CONFIG_PACKAGE_luci-ff-augsburg),)
513         PKG_SELECTED_MODULES+=applications/community-augsburg
514 endif
515
516 ifneq ($(CONFIG_PACKAGE_luci-mod-admin-core),)
517         PKG_SELECTED_MODULES+=modules/admin-core
518 endif
519 ifneq ($(CONFIG_PACKAGE_luci-mod-freifunk),)
520         PKG_SELECTED_MODULES+=modules/freifunk
521 endif
522
523 ifneq ($(CONFIG_PACKAGE_luci-app-ffwizard-leipzig),)
524         PKG_SELECTED_MODULES+=applications/luci-ffwizard-leipzig
525 endif
526 ifneq ($(CONFIG_PACKAGE_luci-app-firewall),)
527         PKG_SELECTED_MODULES+=applications/luci-fw
528 endif
529 ifneq ($(CONFIG_PACKAGE_luci-app-olsr),)
530         PKG_SELECTED_MODULES+=applications/luci-olsr
531 endif
532 ifneq ($(CONFIG_PACKAGE_luci-app-qos),)
533         PKG_SELECTED_MODULES+=applications/luci-qos
534 endif
535 ifneq ($(CONFIG_PACKAGE_luci-app-splash),)
536         PKG_SELECTED_MODULES+=applications/luci-splash
537 endif
538 ifneq ($(CONFIG_PACKAGE_luci-app-statistics),)
539         PKG_SELECTED_MODULES+=applications/luci-statistics
540 endif
541
542 ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),)
543         PKG_SELECTED_MODULES+=libs/sgi-cgi
544 endif
545 ifneq ($(CONFIG_PACKAGE_luci-sgi-luci),)
546         PKG_SELECTED_MODULES+=libs/sgi-luci
547 endif
548 ifneq ($(CONFIG_PACKAGE_luci-sgi-webuci),)
549         PKG_SELECTED_MODULES+=libs/sgi-webuci
550 endif
551
552 ifneq ($(CONFIG_PACKAGE_luci-theme-fledermaus),)
553         PKG_SELECTED_MODULES+=themes/fledermaus
554 endif
555 ifneq ($(CONFIG_PACKAGE_luci-theme-openwrt),)
556         PKG_SELECTED_MODULES+=themes/openwrt.org
557 endif
558
559 ifneq ($(CONFIG_PACKAGE_luci-i18n-german),)
560         PKG_SELECTED_MODULES+=i18n/german
561 endif
562 ifneq ($(CONFIG_PACKAGE_luci-i18n-english),)
563         PKG_SELECTED_MODULES+=i18n/english
564 endif
565 ifneq ($(CONFIG_PACKAGE_luci-i18n-french),)
566         PKG_SELECTED_MODULES+=i18n/french
567 endif
568
569
570 MAKE_FLAGS += \
571         MODULES="$(PKG_SELECTED_MODULES)" \
572         LUA_TARGET="$(LUA_TARGET)" \
573         LUA_SHLIBS="-llua -lm" \
574         CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
575         LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib" \
576         OS="Linux"
577
578
579 $(eval $(call BuildPackage,luci-core))
580 $(eval $(call BuildPackage,luci-cbi))
581 $(eval $(call BuildPackage,luci-fastindex))
582 $(eval $(call BuildPackage,luci-http))
583 $(eval $(call BuildPackage,luci-uci))
584 $(eval $(call BuildPackage,luci-web))
585
586 $(eval $(call BuildPackage,luci-httpd))
587
588 $(eval $(call BuildPackage,luci-ff-halle))
589 $(eval $(call BuildPackage,luci-ff-leipzig))
590 $(eval $(call BuildPackage,luci-ff-hannover))
591 $(eval $(call BuildPackage,luci-ff-berlin))
592 $(eval $(call BuildPackage,luci-ff-augsburg))
593
594 $(eval $(call BuildPackage,luci-mod-admin-core))
595 $(eval $(call BuildPackage,luci-mod-freifunk))
596
597 $(eval $(call BuildPackage,luci-app-ffwizard-leipzig))
598 $(eval $(call BuildPackage,luci-app-firewall))
599 $(eval $(call BuildPackage,luci-app-olsr))
600 $(eval $(call BuildPackage,luci-app-qos))
601 $(eval $(call BuildPackage,luci-app-splash))
602 $(eval $(call BuildPackage,luci-app-statistics))
603
604 $(eval $(call BuildPackage,luci-sgi-cgi))
605 $(eval $(call BuildPackage,luci-sgi-luci))
606 $(eval $(call BuildPackage,luci-sgi-webuci))
607
608 $(eval $(call BuildPackage,luci-theme-fledermaus))
609 $(eval $(call BuildPackage,luci-theme-openwrt))
610
611 $(eval $(call BuildPackage,luci-i18n-german))
612 $(eval $(call BuildPackage,luci-i18n-english))
613 $(eval $(call BuildPackage,luci-i18n-french))