properly support dependencies on packages that just use Build/DefaultTargets
properly support dependencies on packages that just use Build/DefaultTargets

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7983 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/include/scan.mk
+++ b/include/scan.mk
@@ -31,7 +31,7 @@
 
 $(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)
 	( \

--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -4,6 +4,7 @@
 my %package;
 my %srcpackage;
 my %category;
+my %subdir;
 
 sub get_multiline {
 	my $prefix = shift;
@@ -81,6 +82,7 @@
 			$subdir = $2;
 			$src = $3;
 			$subdir =~ s/^package\///;
+			$subdir{$src} = $subdir;
 			$srcpackage{$src} = [];
 			undef $pkg;
 		};
@@ -518,14 +520,12 @@
 			$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) {

comments