speed up package prereq check (only run make on those directories that actually contain prereq checks)
speed up package prereq check (only run make on those directories that actually contain prereq checks)

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4927 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/include/package.mk
+++ b/include/package.mk
@@ -163,13 +163,14 @@
     endif
 
     DUMPINFO += \
+	if [ "$$$$PREREQ_CHECK" = 1 ]; then echo "Prereq-Check: 1"; fi; \
 	echo "Version: $(VERSION)"; \
 	echo "Depends: $$(IDEPEND_$(1))"; \
 	echo "Build-Depends: $(PKG_BUILDDEP)"; \
 	echo "Category: $(CATEGORY)"; \
 	echo "Title: $(TITLE)"; \
 	echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g';
-
+	
     ifneq ($(URL),)
       DUMPINFO += \
 	echo; \

--- a/include/prereq.mk
+++ b/include/prereq.mk
@@ -22,6 +22,7 @@
 .SILENT: $(TMP_DIR) prereq
 
 define Require
+  export PREREQ_CHECK=1
   ifeq ($$(CHECK_$(1)),)
     prereq: prereq-$(1)
 

--- a/package/Makefile
+++ b/package/Makefile
@@ -10,7 +10,7 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/.pkgdeps
 
-PREREQ_PACKAGES:=$(patsubst %,%-prereq,$(package-y) $(package-m))
+PREREQ_PACKAGES:=$(patsubst %,%-prereq,$(package-prereq))
 DOWNLOAD_PACKAGES:=$(patsubst %,%-download,$(package-y) $(package-m))
 COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
 INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))

--- a/scripts/gen_deps.pl
+++ b/scripts/gen_deps.pl
@@ -13,6 +13,8 @@
 my $makefile;
 my %conf;
 my %pkg;
+my %prereq;
+my $prereq;
 my %dep;
 my %options;
 my $opt;
@@ -32,6 +34,10 @@
 		$name = $1;
 		defined $pkg{$name} or $pkg{$name} = {};
 		$pkg{$name}->{src} = $src;
+	};
+	$line =~ /^Prereq-Check:/ and !defined $prereq{$src} and do {
+		$prereq{$src} = 1;
+		$prereq .= "package-prereq += $src\n";
 	};
 	$line =~ /^(Build-)?Depends: \s*(.+)\s*$/ and do {
 		$pkg{$name}->{depends} ||= [];
@@ -75,6 +81,6 @@
 }
 
 if ($line ne "") {
-	print "\n$line";
+	print "\n$line\n$prereq";
 }
 

comments