allow targets to select/deselect config symbols
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 5 Oct 2007 21:44:43 +0000 (21:44 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 5 Oct 2007 21:44:43 +0000 (21:44 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9150 3c298f89-4303-0410-b956-a3cf2f4a3e73

include/target.mk
scripts/metadata.pl

index 0217fcf..9ee369d 100644 (file)
@@ -150,6 +150,7 @@ define BuildTargets/DumpCurrent
         echo 'Target-Path: $(subst $(TOPDIR)/,,$(PWD))'; \
         echo 'Target-Arch: $(ARCH)'; \
         echo 'Target-Features: $(FEATURES)'; \
+        echo 'Target-Depends: $(DEPENDS)'; \
         echo 'Linux-Version: $(LINUX_VERSION)'; \
         echo 'Linux-Release: $(LINUX_RELEASE)'; \
         echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \
index aa5df6f..580e29e 100755 (executable)
@@ -25,7 +25,9 @@ sub parse_target_metadata() {
                        $target = {
                                id => $1,
                                conf => confstr($1),
-                               profiles => []
+                               profiles => [],
+                               features => [],
+                               depends => []
                        };
                        push @target, $target;
                };
@@ -38,6 +40,7 @@ sub parse_target_metadata() {
                /^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1;
                /^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $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);
                /^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1;
                /^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1;
@@ -189,6 +192,20 @@ EOF
                if ($target->{id} ne $target->{board}) {
                        print "\tselect TARGET_".$target->{boardconf}."\n";
                }
+               foreach my $dep (@{$target->{depends}}) {
+                       my $mode = "depends";
+                       my $flags;
+                       my $name;
+
+                       $dep =~ /^([@\+\-]+)(.+)$/;
+                       $flags = $1;
+                       $name = $2;
+
+                       $flags =~ /-/ and $mode = "deselect";
+                       $flags =~ /\+/ and $mode = "select";
+                       $flags =~ /@/ and print "\t$mode $name\n";
+               }
+               
                print "$features$help\n\n"
        }