+$(eval $(call library,web,MVC Webframework,+luci-lib-sys +luci-lib-nixio +luci-lib-core +luci-sgi-cgi))
+
+
+### Protocols ###
+define protocol
+ define Package/luci-proto-$(1)
+ SECTION:=luci
+ CATEGORY:=LuCI
+ TITLE:=LuCI - Lua Configuration Interface
+ URL:=http://luci.subsignal.org/
+ MAINTAINER:=LuCI Development Team <luci@lists.subsignal.org>
+ SUBMENU:=6. Protocols
+ TITLE:=$(if $(2),$(2),LuCI $(1) protocol support)
+ DEPENDS:=$(3)
+ endef
+
+ define Package/luci-proto-$(1)/install
+ $(call Package/luci/install/template,$$(1),protocols/$(1))
+ endef
+
+ ifneq ($(CONFIG_PACKAGE_luci-proto-$(1)),)
+ LUCI_SELECTED_MODULES+=protocols/$(1)
+ endif
+
+ LUCI_BUILD_PACKAGES += luci-proto-$(1)
+endef
+
+$(eval $(call protocol,core,Support for static/dhcp/none))
+$(eval $(call protocol,ppp,Support for PPP/PPPoE/PPPoA/PPtP))
+$(eval $(call protocol,ipv6,Support for DHCPv6/6in4/6to4/6rd,+PACKAGE_luci-proto-ipv6:6in4 +PACKAGE_luci-proto-ipv6:6to4 +PACKAGE_luci-proto-ipv6:6rd +PACKAGE_luci-proto-ipv6:ipv6-support))
+$(eval $(call protocol,3g,Support for 3G,+PACKAGE_luci-proto-3g:comgt))
+$(eval $(call protocol,relay,Support for relayd pseudo bridges,+PACKAGE_luci-proto-relay:relayd))