X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=scripts%2Fmetadata.pl;h=17040d9e365a8808411be3b3dc613c188c633c64;hb=91bf0a9f9d4b452b5cf597ff66898008f0fefd0e;hp=3acdb16a82fa7fca8d338ad3f8a6e7bc9053b5be;hpb=205e89a75abc6d44fe82c7d76daf5db94793bc55;p=openwrt.git diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 3acdb16a82..17040d9e36 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -56,6 +56,7 @@ sub parse_target_metadata() { /^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1; /^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-Packages:\s*(.+)\s*$/ and $target->{packages} = [ split(/\s+/, $1) ]; /^Target-Profile:\s*(.+)\s*$/ and do { $profile = { @@ -114,6 +115,7 @@ sub gen_kconfig_overrides() { $val = $2; } if ($config{"CONFIG_PACKAGE_$package"} and ($config ne 'n')) { + next if $kconfig{$config} eq 'y'; $kconfig{$config} = $val; } elsif (!$override) { $kconfig{$config} or $kconfig{$config} = 'n'; @@ -151,7 +153,8 @@ sub target_config_features(@) { my $ret; while ($_ = shift @_) { - /broken/ and $ret .= "\tdepends BROKEN\n"; + /arm_v(\w+)/ and $ret .= "\tselect arm_v$1\n"; + /broken/ and $ret .= "\tdepends on BROKEN\n"; /audio/ and $ret .= "\tselect AUDIO_SUPPORT\n"; /display/ and $ret .= "\tselect DISPLAY_SUPPORT\n"; /gpio/ and $ret .= "\tselect GPIO_SUPPORT\n"; @@ -160,8 +163,10 @@ sub target_config_features(@) { /usb/ and $ret .= "\tselect USB_SUPPORT\n"; /usbgadget/ and $ret .= "\tselect USB_GADGET_SUPPORT\n"; /pcmcia/ and $ret .= "\tselect PCMCIA_SUPPORT\n"; + /rtc/ and $ret .= "\tselect RTC_SUPPORT\n"; /squashfs/ and $ret .= "\tselect USES_SQUASHFS\n"; - /jffs2/ and $ret .= "\tselect USES_JFFS2\n"; + /jffs2$/ and $ret .= "\tselect USES_JFFS2\n"; + /jffs2_nand/ and $ret .= "\tselect USES_JFFS2_NAND\n"; /ext4/ and $ret .= "\tselect USES_EXT4\n"; /targz/ and $ret .= "\tselect USES_TARGZ\n"; /cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n"; @@ -171,6 +176,7 @@ sub target_config_features(@) { /ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n"; /powerpc64/ and $ret .= "\tselect powerpc64\n"; /nommu/ and $ret .= "\tselect NOMMU\n"; + /mips16/ and $ret .= "\tselect HAS_MIPS16\n"; } return $ret; } @@ -226,10 +232,11 @@ config TARGET_$target->{conf} EOF } if ($target->{subtarget}) { - $confstr .= "\tdepends TARGET_$target->{boardconf}\n"; + $confstr .= "\tdepends on TARGET_$target->{boardconf}\n"; } if (@{$target->{subtargets}} > 0) { $confstr .= "\tselect HAS_SUBTARGETS\n"; + grep { /broken/ } @{$target->{features}} and $confstr .= "\tdepends on BROKEN\n"; } else { $confstr .= $features; } @@ -238,7 +245,7 @@ EOF $confstr .= "\tselect $target->{arch}\n"; } foreach my $dep (@{$target->{depends}}) { - my $mode = "depends"; + my $mode = "depends on"; my $flags; my $name; @@ -267,7 +274,7 @@ sub gen_target_config() { print <{def_subtarget}; + print <{conf}_$target->{def_subtarget} if TARGET_$target->{conf} +EOF + } + print <{conf}_$profile->{id} bool "$profile->{name}" - depends TARGET_$target->{conf} + depends on TARGET_$target->{conf} $profile->{config} EOF $profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n"; @@ -430,7 +445,7 @@ sub mconf_depends { $depends or return; my @depends = @$depends; foreach my $depend (@depends) { - my $m = "depends"; + my $m = "depends on"; my $flags = ""; $depend =~ s/^([@\+]+)// and $flags = $1; my $vdep; @@ -466,6 +481,7 @@ sub mconf_depends { $flags =~ /@/ or $depend = "PACKAGE_$depend"; if ($condition) { if ($m =~ /select/) { + next if $depend eq $condition; $depend = "$depend if $condition"; } else { $depend = "!($condition) || $depend"; @@ -588,7 +604,7 @@ sub gen_package_config() { print <{$cfg}->{label}" if IMAGEOPT - depends PACKAGE_$preconfig + depends on PACKAGE_$preconfig default "$preconfig{$preconfig}->{$cfg}->{default}" EOF @@ -741,7 +757,7 @@ sub gen_package_mk() { $idx = $subdir{$dep}.$dep; } $idx .= $suffix; - undef $idx if $idx =~ /^(kernel)|(base-files)$/; + undef $idx if $idx =~ /^(kernel\/linux)|(base-files)$/; if ($idx) { my $depline; next if $pkg->{src} eq $pkg_dep->{src}.$suffix;