summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-09-13 13:49:15 +0100
committerSimon Marlow <marlowsd@gmail.com>2011-09-16 14:03:12 +0100
commit493146ac822f05cebacf819d2f6a396f6e11d704 (patch)
tree8ce35f4cfdb34ab7824e190142efdb50b9d5d821
parent3137073c530414304bbe498f16105f066aa593e3 (diff)
downloadhaskell-493146ac822f05cebacf819d2f6a396f6e11d704.tar.gz
Add some missing dependencies; should fix make after re-configure
Every Haskell compilation in a package should depend on the package-data.mk file for that package. Then, if a package's version number is bumped, we will recompile all the modules in the package so that their interface files get the new version number. This should mean that a simple 'make' will succeed in a couple of scenarios where it didn't before: 1. re-configuring bumps the version number of GHC, so everything in the ghc package (stages 1 & 2) must be recompiled. 2. bumping the version of one of the boot packages does not require a make clean any more. I have tested (1) but not (2). LAX_DEPENDENCIES=YES disabled these new dependencies too.
-rw-r--r--rules/build-package.mk4
-rw-r--r--rules/hs-suffix-rules-srcdir.mk12
2 files changed, 10 insertions, 6 deletions
diff --git a/rules/build-package.mk b/rules/build-package.mk
index c15a8c5c50..32556579cb 100644
--- a/rules/build-package.mk
+++ b/rules/build-package.mk
@@ -85,6 +85,10 @@ include $1/$2/package-data.mk
else ifeq "$(phase)" "final"
include $1/$2/package-data.mk
endif
+# Each Haskell compilation in this package will depend on the
+# package-data.mk file because e.g. if the version of the package
+# changes we need to recompile everything in it.
+$1_$2_PKGDATA_DEP = $1/$2/package-data.mk
endif
# We don't bother splitting the bootstrap packages (built with stage 0)
diff --git a/rules/hs-suffix-rules-srcdir.mk b/rules/hs-suffix-rules-srcdir.mk
index 00ad679127..ce579c4d09 100644
--- a/rules/hs-suffix-rules-srcdir.mk
+++ b/rules/hs-suffix-rules-srcdir.mk
@@ -34,16 +34,16 @@ $1/$2/build/%_hsc.c $1/$2/build/%_hsc.h $1/$2/build/%.hs : $1/$4/%.hsc $$(HSC2HS
# Compiling Haskell source
-$1/$2/build/%.$$($3_osuf) : $1/$4/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_osuf) : $1/$4/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
-$1/$2/build/%.$$($3_osuf) : $1/$4/%.lhs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_osuf) : $1/$4/%.lhs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
-$1/$2/build/%.$$($3_hcsuf) : $1/$4/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_hcsuf) : $1/$4/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -C $$< -o $$@
-$1/$2/build/%.$$($3_hcsuf) : $1/$4/%.lhs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_hcsuf) : $1/$4/%.lhs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -C $$< -o $$@
endif
@@ -74,10 +74,10 @@ $1/$2/build/%.hs-boot : $1/$4/%.hs-boot
$1/$2/build/%.lhs-boot : $1/$4/%.lhs-boot
"$$(CP)" $$< $$@
-$1/$2/build/%.$$($3_way_)o-boot : $1/$4/%.hs-boot $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_way_)o-boot : $1/$4/%.hs-boot $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
-$1/$2/build/%.$$($3_way_)o-boot : $1/$4/%.lhs-boot $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
+$1/$2/build/%.$$($3_way_)o-boot : $1/$4/%.lhs-boot $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP) $$($1_$2_PKGDATA_DEP)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
ifneq "$$(BootingFromHc)" "YES"