properly support dependencies on packages that just use Build/DefaultTargets
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 15 Jul 2007 23:36:02 +0000 (23:36 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 15 Jul 2007 23:36:02 +0000 (23:36 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7983 3c298f89-4303-0410-b956-a3cf2f4a3e73

include/scan.mk
scripts/metadata.pl

index cd1e47e1a35bf6fa7c15b4b6a092e34de92dfa7b..9bd0f379dabaee9e978e408f011aa2ade4f7b5f1 100644 (file)
@@ -31,7 +31,7 @@ endef
 
 $(FILELIST):
        rm -f tmp/info/.files-$(SCAN_TARGET)-*
-       find $(SCAN_DIR) $(SCAN_EXTRA) -mindepth 1 $(if $(SCAN_DEPTH),-maxdepth $(SCAN_DEPTH)) -name Makefile | xargs grep -HE 'call (KernelPackage|Build(Package|Kernel))' | sed -e 's#^$(SCAN_DIR)/##' -e 's#/Makefile:.*##' | uniq > $@
+       find $(SCAN_DIR) $(SCAN_EXTRA) -mindepth 1 $(if $(SCAN_DEPTH),-maxdepth $(SCAN_DEPTH)) -name Makefile | xargs grep -HE 'call (Build/DefaultTargets|KernelPackage|Build(Package|Kernel))' | sed -e 's#^$(SCAN_DIR)/##' -e 's#/Makefile:.*##' | uniq > $@
 
 tmp/info/.files-$(SCAN_TARGET).mk: $(FILELIST)
        ( \
index e8a7c1b4a88acc4f306913f301f1c51500b85930..46f66446a817fb20760521ba3921e38db6594d78 100755 (executable)
@@ -4,6 +4,7 @@ my %preconfig;
 my %package;
 my %srcpackage;
 my %category;
+my %subdir;
 
 sub get_multiline {
        my $prefix = shift;
@@ -81,6 +82,7 @@ sub parse_package_metadata() {
                        $subdir = $2;
                        $src = $3;
                        $subdir =~ s/^package\///;
+                       $subdir{$src} = $subdir;
                        $srcpackage{$src} = [];
                        undef $pkg;
                };
@@ -518,14 +520,12 @@ sub gen_package_mk() {
                        $dep =~ s/\+//;
                        my $idx;
                        my $pkg_dep = $package{$dep};
-                       $pkg_dep or $pkg_dep = $srcpackage{$dep}->[0];
-                       next unless defined $pkg_dep;
                        next if defined $pkg_dep->{vdepends};
 
                        if (defined $pkg_dep->{src}) {
                                ($pkg->{src} ne $pkg_dep->{src}) and $idx = $pkg_dep->{subdir}.$pkg_dep->{src};
-                       } elsif (defined($pkg_dep) && !defined($ENV{SDK})) {
-                               $idx = $dep;
+                       } elsif (defined($srcpackage{$dep})) {
+                               $idx = $subdir{$dep}.$dep;
                        }
                        undef $idx if $idx =~ /^(kernel)|(base-files)$/;
                        if ($idx) {