This patch adds support for target DEFAULT_OPTIONS and profile OPTIONS variables. Those are simmilar to existing DEFAULT_PACKAGES and PACKAGES but one can use them to select other options by default in menuconfig.
Signed-off-by: Luka Perkov <[email protected]> --- include/target.mk | 4 ++++ scripts/metadata.pl | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/target.mk b/include/target.mk index e36cdd6..20179d1 100644 --- a/include/target.mk +++ b/include/target.mk @@ -11,6 +11,7 @@ __target_inc=1 # default device type DEVICE_TYPE?=router +DEFAULT_OPTIONS:= # Default packages - the really basic set DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools # For router targets @@ -56,6 +57,7 @@ extra_packages = $(if $(filter wpad-mini wpad nas,$(1)),iwinfo) define Profile/Default NAME:= + OPTIONS:= PACKAGES:= endef @@ -68,6 +70,7 @@ define Profile DUMPINFO += \ echo "Target-Profile: $(1)"; \ echo "Target-Profile-Name: $(NAME)"; \ + echo "Target-Profile-Options: $(OPTIONS)"; \ echo "Target-Profile-Packages: $(PACKAGES) $(call extra_packages,$(DEFAULT_PACKAGES) $(PACKAGES))"; \ if [ -f ./config/profile-$(1) ]; then \ echo "Target-Profile-Kconfig: yes"; \ @@ -276,6 +279,7 @@ define BuildTargets/DumpCurrent echo 'Target-Description:'; \ $(SH_FUNC) getvar $(call shvar,Target/Description); \ echo '@@'; \ + echo 'Default-Options: $(DEFAULT_OPTIONS)'; \ echo 'Default-Packages: $(DEFAULT_PACKAGES) $(call extra_packages,$(DEFAULT_PACKAGES))'; \ $(DUMPINFO) $(if $(SUBTARGET),,@$(foreach SUBTARGET,$(SUBTARGETS),$(SUBMAKE) -s DUMP=1 SUBTARGET=$(SUBTARGET); )) diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 79f930c..d7d168d 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -58,16 +58,19 @@ sub parse_target_metadata() { /^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1; /^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1; /^Default-Subtarget:\s*(.+)\s*$/ and $target->{def_subtarget} = $1; + /^Default-Options:\s*(.+)\s*$/ and $target->{options} = [ split(/\s+/, $1) ]; /^Default-Packages:\s*(.+)\s*$/ and $target->{packages} = [ split(/\s+/, $1) ]; /^Target-Profile:\s*(.+)\s*$/ and do { $profile = { id => $1, name => $1, + options => [], packages => [] }; push @{$target->{profiles}}, $profile; }; /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1; + /^Target-Profile-Options:\s*(.*)\s*$/ and $profile->{options} = [ split(/\s+/, $1) ]; /^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ]; /^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE); /^Target-Profile-Config:/ and $profile->{config} = get_multiline(*FILE, "\t"); @@ -83,6 +86,7 @@ sub parse_target_metadata() { { id => 'Default', name => 'Default', + options => [], packages => [] } ]; @@ -138,7 +142,7 @@ sub gen_kconfig_overrides() { } } -sub merge_package_lists($$) { +sub merge_lists($$) { my $list1 = shift; my $list2 = shift; my @l = (); @@ -331,7 +335,11 @@ config TARGET_$target->{conf}_$profile->{id} $profile->{config} EOF $profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n"; - my @pkglist = merge_package_lists($target->{packages}, $profile->{packages}); + my @optlist = merge_lists($target->{options}, $profile->{options}); + foreach my $opt (@optlist) { + print "\tselect $opt\n"; + } + my @pkglist = merge_lists($target->{packages}, $profile->{packages}); foreach my $pkg (@pkglist) { print "\tselect DEFAULT_$pkg\n"; $defaults{$pkg} = 1; -- 2.0.3 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
