summaryrefslogtreecommitdiff
path: root/rules/build-dependencies.mk
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2010-07-26 21:15:12 +0000
committerIan Lynagh <igloo@earth.li>2010-07-26 21:15:12 +0000
commit7720e1503ee9b6ea2b949f95287a32b8d3361bb0 (patch)
tree3396320af41f29691aa5b07486335710da3e057c /rules/build-dependencies.mk
parent18d222d7124d62e6950efffdbdbee637493be834 (diff)
downloadhaskell-7720e1503ee9b6ea2b949f95287a32b8d3361bb0.tar.gz
Don't rebuild dependency files unnecessarily when doing "make 1" etc
Diffstat (limited to 'rules/build-dependencies.mk')
-rw-r--r--rules/build-dependencies.mk7
1 files changed, 7 insertions, 0 deletions
diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk
index 4bcd6d16db..a1b55b649f 100644
--- a/rules/build-dependencies.mk
+++ b/rules/build-dependencies.mk
@@ -67,6 +67,12 @@ endif # $1_$2_NO_BUILD_DEPS
$$($1_$2_depfile_haskell) : $$(UNLIT)
ifneq "$$(NO_INCLUDE_DEPS)" "YES"
+# This next test stops us rebuilding all the dep files when doing e.g.
+# "make 1" in compiler or ghc. If stage is blank (just building normally.
+# so we want all deps), or if $3 is stage-1 (when building stage n, we
+# use stage n-1, so we want any dependencies used by the stage n-1
+# compiler), then we want to include the dependencies.
+ifneq "$$(or $$(if $$(stage),,YES),$$(findstring $3,$$(word $$(stage),0 1 2 3)))" ""
ifneq "$$(strip $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS))" ""
include $$($1_$2_depfile_haskell)
endif
@@ -76,6 +82,7 @@ ifeq "$$(DEBUG)" "YES"
$$(warning not building dependencies in $1)
endif
endif
+endif
endef