build: add class specific GLUON_FEATURES

This commit is contained in:
David Bauer 2019-12-31 00:28:46 +01:00 committed by David Bauer
parent 7903d9eb64
commit 1df243d1b3
2 changed files with 34 additions and 16 deletions

View File

@ -112,22 +112,30 @@ lint-sh: FORCE
@scripts/lint-sh.sh @scripts/lint-sh.sh
GLUON_DEFAULT_PACKAGES := hostapd-mini GLUON_DEFAULT_PACKAGES := hostapd-mini
GLUON_CLASS_PACKAGES_standard := define merge_lists
GLUON_CLASS_PACKAGES_tiny := $(1) :=
$(foreach pkg,$(2),
GLUON_FEATURE_PACKAGES := $(shell scripts/features.sh '$(GLUON_FEATURES)' || echo '__ERROR__') $(1) := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$(value $(1))) $(pkg))
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))
) )
endef 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 LUA := openwrt/staging_dir/hostpkg/bin/lua

View File

@ -527,8 +527,18 @@ GLUON_DEPRECATED
deployments of low-flash devices are required). deployments of low-flash devices are required).
GLUON_FEATURES GLUON_FEATURES
Defines a list of features to include. The feature list is used to generate Defines a list of features to include. Depending on the device, the feature list
the default package set. 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 GLUON_SITE_PACKAGES
Defines a list of packages which should be installed in addition to the Defines a list of packages which should be installed in addition to the