X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=contrib%2Fpackage%2Fluci-addons%2FMakefile;h=9a2e26bd4cf8e11c2e86621d5e7a840839a0c561;hp=aab8485d9490214285ee23807b43fe0a1b385a0f;hb=0da9160ec1fbe1aebe1f964e49f74ff1b368fd33;hpb=be767cb726d23a4e2daa27f8b4ecde161c15c0ed diff --git a/contrib/package/luci-addons/Makefile b/contrib/package/luci-addons/Makefile index aab8485d9..9a2e26bd4 100644 --- a/contrib/package/luci-addons/Makefile +++ b/contrib/package/luci-addons/Makefile @@ -1,43 +1,282 @@ include $(TOPDIR)/rules.mk +LUCI_TOPDIR=../../.. + PKG_NAME:=luci-addons -PKG_VERSION:=0.3 PKG_RELEASE:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_BUILD_PARALLEL:=0 + +PKG_VERSION:=$(shell $(LUCI_TOPDIR)/build/mkrevision.sh 2>/dev/null || echo unknown) + +PKG_BUILD_DEPENDS:=$(if $(STAGING_DIR_ROOT),lua/host) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install +PKG_USE_MIPS16:=0 -include $(INCLUDE_DIR)/package.mk +LUA_TARGET:=source +LUCI_CFLAGS:= +LUCI_BUILD_PACKAGES:= +LUCI_SELECTED_MODULES:= + + +# 1: luci component +# 2: package names +define add_deps + $(foreach dep,$(2), \ + $(if $(patsubst @%,,$(dep)), \ + $(if $(patsubst luci-%,,$(dep)), \ + +PACKAGE_luci-$(1):$(dep), \ + +$(dep)), \ + $(dep))) +endef + +### Templates ### +define Package/luci-addons/install/template + $(CP) -a $(PKG_BUILD_DIR)/$(2)/dist/* $(1)/ -R + $(CP) -a $(PKG_BUILD_DIR)/$(2)/ipkg/* $(1)/CONTROL/ 2>/dev/null || true +endef + + +### Community Packages ### +define Package/luci-mod-freifunk-community + SECTION:=luci + CATEGORY:=LuCI + TITLE:=LuCI - Lua Configuration Interface + URL:=http://luci.subsignal.org/ + MAINTAINER:=LuCI Development Team + SUBMENU:=9. Freifunk + TITLE:=Freifunk Community Meta-Package + DEPENDS+=$(call add_deps,mod-freifunk-community, \ + iptables-mod-nat-extra iptables-mod-ipopt \ + luci-app-splash luci-i18n-german \ + olsrd olsrd-mod-dyn-gw-plain \ + olsrd-mod-jsoninfo olsrd-mod-nameservice \ + olsrd-mod-watchdog kmod-tun \ + ip freifunk-watchdog luci-app-olsr \ + luci-app-olsr-services freifunk-gwcheck freifunk-mapupdate \ + ) +endef + +define Package/luci-mod-freifunk-community/install + $(call Package/luci-addons/install/template,$(1),applications/freifunk-community) +endef + +ifneq ($(CONFIG_PACKAGE_luci-mod-freifunk-community),) + LUCI_SELECTED_MODULES+=applications/freifunk-community +endif + +LUCI_BUILD_PACKAGES += luci-mod-freifunk-community + + +### Modules ### +define module + define Package/luci-mod-$(1) + SECTION:=luci + CATEGORY:=LuCI + TITLE:=LuCI - Lua Configuration Interface + URL:=http://luci.subsignal.org/ + MAINTAINER:=LuCI Development Team + SUBMENU:=2. Modules + TITLE:=$(if $(2),$(2),LuCI $(1) module) + $(if $(3),DEPENDS+=$(3)) + endef + + define Package/luci-mod-$(1)/install + $(call Package/luci-addons/install/template,$$(1),modules/$(1)) + $(call Package/luci-mod-$(1)/extra-install) + endef + + ifneq ($(CONFIG_PACKAGE_luci-mod-$(1)),) + LUCI_SELECTED_MODULES+=modules/$(1) + endif + + LUCI_BUILD_PACKAGES += luci-mod-$(1) +endef + + +$(eval $(call module,freifunk,LuCI Freifunk module,+luci-mod-admin-full +luci-lib-json +PACKAGE_luci-mod-freifunk:freifunk-firewall +freifunk-common)) + + +### Applications ### +define application + define Package/luci-app-$(1) + SECTION:=luci + CATEGORY:=LuCI + TITLE:=LuCI - Lua Configuration Interface + URL:=http://luci.subsignal.org/ + MAINTAINER:=LuCI Development Team + SUBMENU:=3. Applications + TITLE:=$(if $(2),$(2),LuCI $(1) application) + DEPENDS:=$(call add_deps,app-$(1),$(3)) + endef + + define Package/luci-app-$(1)/install + $(call Package/luci-addons/install/template,$$(1),applications/luci-$(1)) + endef + ifneq ($(CONFIG_PACKAGE_luci-app-$(1)),) + LUCI_SELECTED_MODULES+=applications/luci-$(1) + endif -define Build/Compile + LUCI_BUILD_PACKAGES += luci-app-$(1) endef +define Package/luci-app-splash/conffiles +/etc/config/luci_splash +/usr/lib/luci-splash/splashtext.html +/usr/lib/luci-splash/splashtextinclude.html +endef + +define Package/luci-app-statistics/conffiles +/etc/config/luci_statistics +endef -define Package/luci-addons - SECTION:=utils - CATEGORY:=Utilities - TITLE:=LuCI System Addons for Kamikaze - URL:=http://luci.freifunk-halle.net +define Package/luci-app-diag-devinfo/conffiles +/etc/config/luci_devinfo endef -define Package/luci-addons/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_DIR) $(1)/sbin - $(INSTALL_DIR) $(1)/etc/crontabs - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_BIN) ./dist/usr/bin/run-parts $(1)/usr/bin - $(INSTALL_BIN) ./dist/sbin/luci-flash $(1)/sbin - $(INSTALL_BIN) ./dist/etc/init.d/luci_fixtime $(1)/etc/init.d - $(INSTALL_BIN) ./dist/etc/init.d/luci_ethers $(1)/etc/init.d - $(INSTALL_BIN) ./dist/etc/init.d/luci_hosts $(1)/etc/init.d +$(eval $(call application,siitwizard,SIIT IPv4-over-IPv6 configuration wizard,kmod-siit)) +$(eval $(call application,freifunk-policyrouting,Policy routing for mesh traffic,freifunk-policyrouting)) +$(eval $(call application,freifunk-widgets,Widgets for the Freifunk index page,luci-mod-freifunk)) +$(eval $(call application,meshwizard, Shellscript based wizard to setup mesh networks,meshwizard)) +$(eval $(call application,olsr,OLSR configuration and status module,olsrd olsrd-mod-jsoninfo luci-lib-luaneightbl)) +$(eval $(call application,olsr-viz,OLSR Visualisation,luci-app-olsr olsrd-mod-txtinfo)) +$(eval $(call application,freifunk-diagnostics,Tools for network diagnosis like traceroute and ping)) +$(eval $(call application,olsr-services,Show services announced with the nameservice plugin,luci-app-olsr olsrd-mod-nameservice)) +$(eval $(call application,splash,Freifunk DHCP-Splash application,luci-lib-nixio tc kmod-sched iptables-mod-nat-extra iptables-mod-ipopt)) + +$(eval $(call application,statistics,LuCI Statistics Application,\ + collectd \ + rrdtool1 \ + collectd-mod-rrdtool \ + collectd-mod-iwinfo \ + collectd-mod-interface \ + collectd-mod-load \ + collectd-mod-network)) + + +$(eval $(call application,diag-core,LuCI Diagnostics Tools (Core))) + +$(eval $(call application,diag-devinfo,LuCI Diagnostics Tools (Device Info),\ + luci-app-diag-core \ + smap \ + netdiscover \ + mac-to-devinfo \ + httping \ + smap-to-devinfo \ + netdiscover-to-devinfo)) + +$(eval $(call application,voice-core,LuCI Voice Software (Core))) +$(eval $(call application,voice-diag,LuCI Voice Software (Diagnostics),luci-app-diag-devinfo)) + +$(eval $(call application,upnp,Universal Plug & Play configuration module,miniupnpd)) +$(eval $(call application,ntpc,NTP time synchronisation configuration module,ntpclient)) +$(eval $(call application,ddns,Dynamic DNS configuration module,ddns-scripts)) +$(eval $(call application,samba,Network Shares - Samba SMB/CIFS module,samba36-server)) +$(eval $(call application,mmc-over-gpio,MMC-over-GPIO configuration module,kmod-mmc-over-gpio)) +$(eval $(call application,p910nd,p910nd - Printer server module,p910nd)) +$(eval $(call application,ushare,uShare - UPnP A/V & DLNA Media Server,ushare)) +$(eval $(call application,hd-idle,Hard Disk Idle Spin-Down module,hd-idle)) +$(eval $(call application,tinyproxy,Tinyproxy - HTTP(S)-Proxy configuration,tinyproxy)) +$(eval $(call application,polipo,LuCI Support for the Polipo Proxy,polipo)) +$(eval $(call application,openvpn,LuCI Support for OpenVPN,openvpn @BROKEN)) +$(eval $(call application,p2pblock,LuCI Support for the Freifunk P2P-Block addon,luci-app-firewall freifunk-p2pblock)) +$(eval $(call application,multiwan,LuCI Support for the OpenWrt MultiWAN agent,luci-app-firewall multiwan)) +$(eval $(call application,wol,LuCI Support for Wake-on-LAN,etherwake)) +$(eval $(call application,vnstat,LuCI Support for VnStat,vnstat vnstati)) +$(eval $(call application,radvd,LuCI Support for Radvd,radvd)) +$(eval $(call application,ahcp,LuCI Support for AHCPd,ahcpd)) +$(eval $(call application,wshaper,LuCI Support for wshaper,wshaper)) + +$(eval $(call application,pbx,LuCI PBX Administration,\ + asterisk18 \ + asterisk18-app-authenticate \ + asterisk18-app-disa \ + asterisk18-app-setcallerid \ + asterisk18-app-system \ + asterisk18-chan-gtalk \ + asterisk18-codec-a-mu \ + asterisk18-codec-alaw \ + asterisk18-func-cut \ + asterisk18-res-clioriginate \ + asterisk18-func-channel \ + asterisk18-chan-local \ + asterisk18-app-record \ + asterisk18-app-senddtmf \ + asterisk18-res-crypto)) + +$(eval $(call application,pbx-voicemail,LuCI PBX Administration Voicemail Support,luci-app-pbx asterisk18 msmtp coreutils-base64)) +$(eval $(call application,ltqtapi,Lantiq voip)) +$(eval $(call application,minidlna,LuCI Support for miniDLNA,minidlna)) +$(eval $(call application,transmission,LuCI Support for Transmission,transmission-daemon)) +$(eval $(call application,watchcat,LuCI Support for Watchcat,watchcat)) + + +### Themes ### +define theme + define Package/luci-theme-$(1) + SECTION:=luci + CATEGORY:=LuCI + TITLE:=LuCI - Lua Configuration Interface + URL:=http://luci.subsignal.org/ + SUBMENU:=4. Themes + TITLE:=$(if $(2),$(2),LuCI $(1) theme) + MAINTAINER:=$(if $(3),$(3),LuCI Development Team ) + DEPENDS:=+luci-base $(4) + endef + + define Package/luci-theme-$(1)/install + $(call Package/luci-addons/install/template,$$(1),themes/$(1)) + endef - $(INSTALL_CONF) ./dist/etc/config/luci_ethers $(1)/etc/config - $(INSTALL_CONF) ./dist/etc/config/luci_hosts $(1)/etc/config + ifneq ($(CONFIG_PACKAGE_luci-theme-$(1)),) + LUCI_SELECTED_MODULES+=themes/$(1) + endif - $(CP) ./dist/etc/crontabs/root $(1)/etc/crontabs/root + LUCI_BUILD_PACKAGES += luci-theme-$(1) endef -$(eval $(call BuildPackage,luci-addons)) + +$(eval $(call theme,freifunk-bno,Freifunk Berlin Nordost Theme,\ + Stefan Pirwitz )) + +$(eval $(call theme,freifunk-generic,Freifunk Generic Theme,\ + Manuel Munz )) + + +### Compile ### +PKG_CONFIG_DEPENDS=$(patsubst %,CONFIG_PACKAGE_%,$(LUCI_BUILD_PACKAGES)) + +include $(INCLUDE_DIR)/package.mk + +define Build/Prepare + @if [ ! -x $(LUCI_TOPDIR)/build/mkrevision.sh ]; then \ + echo "*** Repository layout changed!" >&2; \ + echo "*** Please change the LuCI url in feeds.conf to http://svn.luci.subsignal.org/luci/trunk and reinstall the feed with" >&2; \ + echo "*** ./scripts/feeds update luci; ./scripts/feeds install -a -p luci" >&2; \ + exit 1; \ + fi + mkdir -p $(PKG_BUILD_DIR) + $(TAR) c -C $(LUCI_TOPDIR) . \ + --exclude=.pc --exclude=.svn --exclude=.git \ + --exclude='*.o' --exclude='*.so' \ + --exclude=dist | \ + tar x -C $(PKG_BUILD_DIR)/ + $(call Build/Prepare/Default) +endef + +define Build/Configure +endef + +MAKE_FLAGS += \ + MODULES="$(LUCI_SELECTED_MODULES)" \ + LUA_TARGET="$(LUA_TARGET)" \ + LUA_SHLIBS="-llua -lm -ldl -lcrypt" \ + CFLAGS="$(TARGET_CFLAGS) $(LUCI_CFLAGS) -I$(STAGING_DIR)/usr/include" \ + LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib" \ + NIXIO_TLS="$(NIXIO_TLS)" OS="Linux" + + +$(foreach b,$(LUCI_BUILD_PACKAGES),$(eval $(call BuildPackage,$(b))))