From 1df243d1b3257177888c9cddae516abf737c32e5 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Tue, 31 Dec 2019 00:28:46 +0100 Subject: [PATCH] build: add class specific GLUON_FEATURES --- Makefile | 36 ++++++++++++++++++++++-------------- docs/user/site.rst | 14 ++++++++++++-- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index c228db77..cf5fc265 100644 --- a/Makefile +++ b/Makefile @@ -112,22 +112,30 @@ lint-sh: FORCE @scripts/lint-sh.sh GLUON_DEFAULT_PACKAGES := hostapd-mini -GLUON_CLASS_PACKAGES_standard := -GLUON_CLASS_PACKAGES_tiny := - -GLUON_FEATURE_PACKAGES := $(shell scripts/features.sh '$(GLUON_FEATURES)' || echo '__ERROR__') -ifneq ($(filter __ERROR__,$(GLUON_FEATURE_PACKAGES)),) -$(error Error while evaluating GLUON_FEATURES) -endif - - -GLUON_PACKAGES := -define merge_packages - $(foreach pkg,$(1), - GLUON_PACKAGES := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$(GLUON_PACKAGES)) $(pkg)) +define merge_lists + $(1) := + $(foreach pkg,$(2), + $(1) := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$(value $(1))) $(pkg)) ) endef -$(eval $(call merge_packages,$(GLUON_DEFAULT_PACKAGES) $(GLUON_FEATURE_PACKAGES) $(GLUON_SITE_PACKAGES))) + +define feature_packages + $(1) := $(shell scripts/features.sh '$(2)' || echo '__ERROR__') +endef + +$(eval $(call merge_lists,GLUON_FEATURE_LIST_standard,$(GLUON_FEATURES) $(GLUON_FEATURES_standard))) +$(eval $(call merge_lists,GLUON_FEATURE_LIST_tiny,$(GLUON_FEATURES) $(GLUON_FEATURES_tiny))) + +$(eval $(call feature_packages,GLUON_FEATURE_PACKAGES_standard,$(GLUON_FEATURE_LIST_standard))) +$(eval $(call feature_packages,GLUON_FEATURE_PACKAGES_tiny,$(GLUON_FEATURE_LIST_tiny))) + +ifneq ($(filter __ERROR__,$(GLUON_FEATURES_standard) $(GLUON_FEATURES_tiny)),) + $(error Error while evaluating features) +endif + +$(eval $(call merge_lists,GLUON_DEFAULT_PACKAGES,$(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES))) +$(eval $(call merge_lists,GLUON_CLASS_PACKAGES_standard,$(GLUON_FEATURE_PACKAGES_standard))) +$(eval $(call merge_lists,GLUON_CLASS_PACKAGES_tiny,$(GLUON_FEATURE_PACKAGES_tiny))) LUA := openwrt/staging_dir/hostpkg/bin/lua diff --git a/docs/user/site.rst b/docs/user/site.rst index 387efcf6..7dd5bc14 100644 --- a/docs/user/site.rst +++ b/docs/user/site.rst @@ -527,8 +527,18 @@ GLUON_DEPRECATED deployments of low-flash devices are required). GLUON_FEATURES - Defines a list of features to include. The feature list is used to generate - the default package set. + Defines a list of features to include. Depending on the device, the feature list + defined from this value is combined with the feature list for either the standard + or the tiny device-class. The resulting feature list is used to generate the default + package set. + +GLUON_FEATURES_standard + Defines a list of additional features to include or exclude for devices of + the standard device-class. + +GLUON_FEATURES_tiny + Defines a list of additional features to include or exclude for devices of + the tiny device-class. GLUON_SITE_PACKAGES Defines a list of packages which should be installed in addition to the