build: introduce device classes
This commit allows to define a device-class flag in the target definitions. This way, it is possible to distinguish between groups of devices in the build-process in terms of package or feature selection.
This commit is contained in:
parent
3d5a693026
commit
9c52365077
6
Makefile
6
Makefile
@ -112,6 +112,8 @@ 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 :=
|
||||||
|
GLUON_CLASS_PACKAGES_tiny :=
|
||||||
|
|
||||||
GLUON_FEATURE_PACKAGES := $(shell scripts/features.sh '$(GLUON_FEATURES)' || echo '__ERROR__')
|
GLUON_FEATURE_PACKAGES := $(shell scripts/features.sh '$(GLUON_FEATURES)' || echo '__ERROR__')
|
||||||
ifneq ($(filter __ERROR__,$(GLUON_FEATURE_PACKAGES)),)
|
ifneq ($(filter __ERROR__,$(GLUON_FEATURE_PACKAGES)),)
|
||||||
@ -144,12 +146,12 @@ config: $(LUA) FORCE
|
|||||||
$(foreach conf,site $(patsubst $(GLUON_SITEDIR)/%.conf,%,$(wildcard $(GLUON_SITEDIR)/domains/*.conf)),$(call CheckSite,$(conf)))
|
$(foreach conf,site $(patsubst $(GLUON_SITEDIR)/%.conf,%,$(wildcard $(GLUON_SITEDIR)/domains/*.conf)),$(call CheckSite,$(conf)))
|
||||||
|
|
||||||
@$(GLUON_CONFIG_VARS) \
|
@$(GLUON_CONFIG_VARS) \
|
||||||
$(LUA) scripts/target_config.lua '$(GLUON_TARGET)' '$(GLUON_PACKAGES)' \
|
$(LUA) scripts/target_config.lua '$(GLUON_TARGET)' '$(GLUON_DEFAULT_PACKAGES)' '$(GLUON_CLASS_PACKAGES_standard)' '$(GLUON_CLASS_PACKAGES_tiny)' \
|
||||||
> openwrt/.config
|
> openwrt/.config
|
||||||
+@$(OPENWRTMAKE) defconfig
|
+@$(OPENWRTMAKE) defconfig
|
||||||
|
|
||||||
@$(GLUON_CONFIG_VARS) \
|
@$(GLUON_CONFIG_VARS) \
|
||||||
$(LUA) scripts/target_config_check.lua '$(GLUON_TARGET)' '$(GLUON_PACKAGES)'
|
$(LUA) scripts/target_config_check.lua '$(GLUON_TARGET)' '$(GLUON_DEFAULT_PACKAGES)' '$(GLUON_CLASS_PACKAGES_standard)' '$(GLUON_CLASS_PACKAGES_tiny)'
|
||||||
|
|
||||||
|
|
||||||
all: config
|
all: config
|
||||||
|
@ -7,6 +7,10 @@ return function(funcs)
|
|||||||
|
|
||||||
local target = arg[1]
|
local target = arg[1]
|
||||||
local extra_packages = arg[2]
|
local extra_packages = arg[2]
|
||||||
|
local class_packages = {
|
||||||
|
standard = arg[3],
|
||||||
|
tiny = arg[4],
|
||||||
|
}
|
||||||
|
|
||||||
local openwrt_config_target
|
local openwrt_config_target
|
||||||
if env.SUBTARGET ~= '' then
|
if env.SUBTARGET ~= '' then
|
||||||
@ -64,13 +68,19 @@ END_MAKE
|
|||||||
end
|
end
|
||||||
device_pkgs = device_pkgs .. ' ' .. pkg
|
device_pkgs = device_pkgs .. ' ' .. pkg
|
||||||
end
|
end
|
||||||
|
local function handle_pkgs(pkgs)
|
||||||
|
local packages = string.gmatch(pkgs or '', '%S+')
|
||||||
|
for pkg in packages do
|
||||||
|
handle_pkg(pkg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
for _, pkg in ipairs(dev.options.packages or {}) do
|
for _, pkg in ipairs(dev.options.packages or {}) do
|
||||||
handle_pkg(pkg)
|
handle_pkg(pkg)
|
||||||
end
|
end
|
||||||
for pkg in string.gmatch(site_packages(dev.image), '%S+') do
|
handle_pkgs(site_packages(dev.image))
|
||||||
handle_pkg(pkg)
|
|
||||||
end
|
handle_pkgs(class_packages[dev.options.class])
|
||||||
|
|
||||||
funcs.config_message(lib.config, string.format("unable to enable device '%s'", profile),
|
funcs.config_message(lib.config, string.format("unable to enable device '%s'", profile),
|
||||||
'CONFIG_TARGET_DEVICE_%s_DEVICE_%s=y', openwrt_config_target, profile)
|
'CONFIG_TARGET_DEVICE_%s_DEVICE_%s=y', openwrt_config_target, profile)
|
||||||
|
@ -39,6 +39,7 @@ local default_options = {
|
|||||||
aliases = {},
|
aliases = {},
|
||||||
manifest_aliases = {},
|
manifest_aliases = {},
|
||||||
packages = {},
|
packages = {},
|
||||||
|
class = "standard",
|
||||||
deprecated = false,
|
deprecated = false,
|
||||||
broken = false,
|
broken = false,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user