scripts/metadata.pl: add support for generating profile make code for the image builder
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -282,12 +282,7 @@ EOF | |||||||
|  |  | ||||||
| 	foreach my $target (@target) { | 	foreach my $target (@target) { | ||||||
| 		my $profiles = $target->{profiles}; | 		my $profiles = $target->{profiles}; | ||||||
| 		$target->{sort} and @$profiles = sort { | 		foreach my $profile (@{$target->{profiles}}) { | ||||||
| 			$a->{priority} <=> $b->{priority} or |  | ||||||
| 			$a->{name} cmp $b->{name}; |  | ||||||
| 		} @$profiles; |  | ||||||
|  |  | ||||||
| 		foreach my $profile (@$profiles) { |  | ||||||
| 			print <<EOF; | 			print <<EOF; | ||||||
| config TARGET_$target->{conf}_$profile->{id} | config TARGET_$target->{conf}_$profile->{id} | ||||||
| 	bool "$profile->{name}" | 	bool "$profile->{name}" | ||||||
| @@ -912,11 +907,26 @@ sub gen_version_filtered_list() { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | sub gen_profile_mk() { | ||||||
|  | 	my $file = shift @ARGV; | ||||||
|  | 	my $target = shift @ARGV; | ||||||
|  | 	my @targets = parse_target_metadata($file); | ||||||
|  | 	foreach my $cur (@targets) { | ||||||
|  | 		next unless $cur->{id} eq $target; | ||||||
|  | 		print "PROFILE_NAMES = ".join(" ", map { $_->{id} } @{$cur->{profiles}})."\n"; | ||||||
|  | 		foreach my $profile (@{$cur->{profiles}}) { | ||||||
|  | 			print $profile->{id}.'_NAME:='.$profile->{name}."\n"; | ||||||
|  | 			print $profile->{id}.'_PACKAGES:='.join(' ', @{$profile->{packages}})."\n"; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| sub parse_command() { | sub parse_command() { | ||||||
| 	GetOptions("ignore=s", \@ignore); | 	GetOptions("ignore=s", \@ignore); | ||||||
| 	my $cmd = shift @ARGV; | 	my $cmd = shift @ARGV; | ||||||
| 	for ($cmd) { | 	for ($cmd) { | ||||||
| 		/^target_config$/ and return gen_target_config(); | 		/^target_config$/ and return gen_target_config(); | ||||||
|  | 		/^profile_mk$/ and return gen_profile_mk(); | ||||||
| 		/^package_mk$/ and return gen_package_mk(); | 		/^package_mk$/ and return gen_package_mk(); | ||||||
| 		/^package_config$/ and return gen_package_config(); | 		/^package_config$/ and return gen_package_config(); | ||||||
| 		/^kconfig/ and return gen_kconfig_overrides(); | 		/^kconfig/ and return gen_kconfig_overrides(); | ||||||
| @@ -929,6 +939,7 @@ sub parse_command() { | |||||||
| 	print <<EOF | 	print <<EOF | ||||||
| Available Commands: | Available Commands: | ||||||
| 	$0 target_config [file] 		Target metadata in Kconfig format | 	$0 target_config [file] 		Target metadata in Kconfig format | ||||||
|  | 	$0 profile_mk [file] [target]		Profile metadata in makefile format | ||||||
| 	$0 package_mk [file]			Package metadata in makefile format | 	$0 package_mk [file]			Package metadata in makefile format | ||||||
| 	$0 package_config [file] 		Package metadata in Kconfig format | 	$0 package_config [file] 		Package metadata in Kconfig format | ||||||
| 	$0 kconfig [file] [config] [patchver]	Kernel config overrides | 	$0 kconfig [file] [config] [patchver]	Kernel config overrides | ||||||
|   | |||||||
| @@ -112,6 +112,11 @@ sub parse_target_metadata($) { | |||||||
| 				packages => [] | 				packages => [] | ||||||
| 			} | 			} | ||||||
| 		]; | 		]; | ||||||
|  |  | ||||||
|  | 		$target->{sort} and @{$target->{profiles}} = sort { | ||||||
|  | 			$a->{priority} <=> $b->{priority} or | ||||||
|  | 			$a->{name} cmp $b->{name}; | ||||||
|  | 		} @{$target->{profiles}}; | ||||||
| 	} | 	} | ||||||
| 	return @target; | 	return @target; | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau