From ca531442afedc94c5916262477d82d89f03c74f4 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 5 Oct 2006 12:39:52 +0000 Subject: [PATCH] speed up package prereq check (only run make on those directories that actually contain prereq checks) SVN-Revision: 4927 --- openwrt/include/package.mk | 3 ++- openwrt/include/prereq.mk | 1 + openwrt/package/Makefile | 2 +- openwrt/scripts/gen_deps.pl | 8 +++++++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/openwrt/include/package.mk b/openwrt/include/package.mk index 709bb44155..3f2f7d41be 100644 --- a/openwrt/include/package.mk +++ b/openwrt/include/package.mk @@ -163,13 +163,14 @@ define BuildPackage 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; \ diff --git a/openwrt/include/prereq.mk b/openwrt/include/prereq.mk index c9b82d2947..eda7ca35a6 100644 --- a/openwrt/include/prereq.mk +++ b/openwrt/include/prereq.mk @@ -22,6 +22,7 @@ prereq: .SILENT: $(TMP_DIR) prereq define Require + export PREREQ_CHECK=1 ifeq ($$(CHECK_$(1)),) prereq: prereq-$(1) diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index b9392c0490..b6165b8567 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk 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)) diff --git a/openwrt/scripts/gen_deps.pl b/openwrt/scripts/gen_deps.pl index 70c07b70a8..e7daf18866 100755 --- a/openwrt/scripts/gen_deps.pl +++ b/openwrt/scripts/gen_deps.pl @@ -13,6 +13,8 @@ my $src; my $makefile; my %conf; my %pkg; +my %prereq; +my $prereq; my %dep; my %options; my $opt; @@ -33,6 +35,10 @@ while ($line = <>) { 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} ||= []; foreach my $v (split /\s+/, $2) { @@ -75,5 +81,5 @@ foreach $name (sort {uc($a) cmp uc($b)} keys %pkg) { } if ($line ne "") { - print "\n$line"; + print "\n$line\n$prereq"; } -- 2.30.2