use gcc 4.3.5 for avr32
[openwrt/openwrt.git] / scripts / metadata.pl
index c963964ba3ad8e7d781b3f17cb995a6fd518c5ff..e86178d423c9f14d1d6ae2c5b4008bac72f19a4b 100755 (executable)
@@ -49,6 +49,7 @@ sub parse_target_metadata() {
                /^Target-Name:\s*(.+)\s*$/ and $target->{name} = $1;
                /^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1;
                /^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1;
+               /^Target-Arch-Packages:\s*(.+)\s*$/ and $target->{arch_packages} = $1;
                /^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ];
                /^Target-Depends:\s*(.+)\s*$/ and $target->{depends} = [ split(/\s+/, $1) ];
                /^Target-Description:/ and $target->{desc} = get_multiline(*FILE);
@@ -158,11 +159,12 @@ sub target_config_features(@) {
                /pci/ and $ret .= "\tselect PCI_SUPPORT\n";
                /pcie/ and $ret .= "\tselect PCIE_SUPPORT\n";
                /usb/ and $ret .= "\tselect USB_SUPPORT\n";
+               /usbgadget/ and $ret .= "\tselect USB_GADGET_SUPPORT\n";
                /pcmcia/ and $ret .= "\tselect PCMCIA_SUPPORT\n";
                /squashfs/ and $ret .= "\tselect USES_SQUASHFS\n";
                /jffs2/ and $ret .= "\tselect USES_JFFS2\n";
                /ext2/ and $ret .= "\tselect USES_EXT2\n";
-               /tgz/ and $ret .= "\tselect USES_TGZ\n";
+               /targz/ and $ret .= "\tselect USES_TARGZ\n";
                /cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n";
                /ubifs/ and $ret .= "\tselect USES_UBIFS\n";
                /fpu/ and $ret .= "\tselect HAS_FPU\n";
@@ -194,9 +196,7 @@ sub print_target($) {
        my $target = shift;
        my $features = target_config_features(@{$target->{features}});
        my $help = $target->{desc};
-       my $kernel = $target->{kernel};
        my $confstr;
-       $kernel =~ tr/./_/;
 
        chomp $features;
        $features .= "\n";
@@ -212,7 +212,6 @@ sub print_target($) {
        $confstr = <<EOF;
 config TARGET_$target->{conf}
        bool "$target->{name}"
-       select LINUX_$kernel
        select LINUX_$v
 EOF
        }
@@ -263,7 +262,7 @@ sub gen_target_config() {
        print <<EOF;
 choice
        prompt "Target System"
-       default TARGET_brcm_2_4
+       default TARGET_brcm47xx
        reset if !DEVEL
        
 EOF
@@ -334,6 +333,15 @@ EOF
                $target->{subtarget} or print "\t\tdefault \"".$target->{board}."\" if TARGET_".$target->{conf}."\n";
        }
        print <<EOF;
+config TARGET_ARCH_PACKAGES
+       string
+       
+EOF
+       foreach my $target (@target) {
+               next if @{$target->{subtargets}} > 0;
+               print "\t\tdefault \"".($target->{arch_packages} || $target->{board})."\" if TARGET_".$target->{conf}."\n";
+       }
+       print <<EOF;
 
 config DEFAULT_TARGET_OPTIMIZATION
        string
@@ -423,6 +431,9 @@ sub mconf_depends {
                my $vdep;
                my $condition = $parent_condition;
 
+               next if $condition eq $depend;
+               next if $seen->{"$parent_condition:$depend"};
+               $seen->{"$parent_condition:$depend"} = 1;
                if ($depend =~ /^(.+):(.+)$/) {
                        if ($1 ne "PACKAGE_$pkgname") {
                                if ($condition) {
@@ -433,9 +444,7 @@ sub mconf_depends {
                        }
                        $depend = $2;
                }
-               next if $seen->{$depend};
                next if $package{$depend} and $package{$depend}->{buildonly};
-               $seen->{$depend} = 1;
                if ($vdep = $package{$depend}->{vdepends}) {
                        $depend = join("||", map { "PACKAGE_".$_ } @$vdep);
                } else {
@@ -628,6 +637,9 @@ sub gen_package_mk() {
                        $pkg->{buildonly} and $config = "";
                        print "package-$config += $pkg->{subdir}$pkg->{src}\n";
                        if ($pkg->{variant}) {
+                               if (!defined($done{$pkg->{src}})) {
+                                       print "\$(curdir)/$pkg->{subdir}$pkg->{src}/default-variant := $pkg->{variant}\n";
+                               }
                                print "\$(curdir)/$pkg->{subdir}$pkg->{src}/variants += \$(if $config,$pkg->{variant})\n"
                        }
                        $pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n";
@@ -665,14 +677,15 @@ sub gen_package_mk() {
                                        $dep = $1;
                                        $suffix = $2;
                                }
-                               my $pkg_dep = $package{$dep};
-                               next unless $pkg_dep;
 
                                my $idx = "";
-                               if (defined $pkg_dep->{src}) {
+                               my $pkg_dep = $package{$dep};
+                               if (defined($pkg_dep) && defined($pkg_dep->{src})) {
                                        $idx = $pkg_dep->{subdir}.$pkg_dep->{src};
                                } elsif (defined($srcpackage{$dep})) {
                                        $idx = $subdir{$dep}.$dep;
+                               } else {
+                                       next;
                                }
                                my $depstr = "\$(curdir)/$idx$suffix/compile";
                                my $depline = get_conditional_dep($condition, $depstr);
@@ -761,6 +774,7 @@ sub gen_package_mk() {
                next unless $cmds;
                print <<EOF
 
+ifndef DUMP_TARGET_DB
 \$(TARGET_DIR)/etc/uci-defaults/$preconfig: FORCE
        ( \\
 $cmds \\
@@ -769,6 +783,8 @@ $cmds \\
 ifneq (\$(IMAGEOPT)\$(CONFIG_IMAGEOPT),)
   package/preconfig: \$(TARGET_DIR)/etc/uci-defaults/$preconfig
 endif
+endif
+
 EOF
        }
 }