diff --git a/ghc.mk b/ghc.mk index 0dfad2ffa842f244b0ad8e256afe11d09abcb4f5..4184e19990627ddab9e03c0160ae2ed9a5039221 100644 --- a/ghc.mk +++ b/ghc.mk @@ -153,6 +153,7 @@ endif # ----------------------------------------------------------------------------- # Utility definitions +include rules/trace.mk include rules/make-command.mk # ----------------------------------------------------------------------------- diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index b1b5fe831c1116033ae6443ae7d66828ed48f1d4..f223288ea7c6f6a0a218323fe6c14e21e5b47270 100644 --- a/rules/build-dependencies.mk +++ b/rules/build-dependencies.mk @@ -11,6 +11,7 @@ # ----------------------------------------------------------------------------- define build-dependencies +$(call trace, build-dependencies($1,$2,$3)) # $1 = dir # $2 = distdir # $3 = GHC stage to use (0 == bootstrapping compiler) diff --git a/rules/build-package-data.mk b/rules/build-package-data.mk index d2546380dae76893071bac7b35b586a229260b1e..2ed47e149941ea9354dc901da0f1b1a8a695938d 100644 --- a/rules/build-package-data.mk +++ b/rules/build-package-data.mk @@ -11,6 +11,7 @@ # ----------------------------------------------------------------------------- define build-package-data +$(call trace, build-package-data($1,$2,$3)) # args: # $1 = dir # $2 = distdir diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index 575270919427fd2e94a64c5a12975bddfe8a8fd0..d829a001a19edba0c33037b827064894f7f81639 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -12,6 +12,7 @@ define build-package-way # $1 = dir, $2 = distdir, $3 = way, $4 = stage +$(call trace, build-package-way($1,$2,$3)) $(call distdir-way-opts,$1,$2,$3,$4) $(call hs-suffix-rules,$1,$2,$3) diff --git a/rules/build-package.mk b/rules/build-package.mk index cd02646884035f12644f7c787776b51fede5b01c..fc3d0f71a60562ac296f69f71f66a43a495592ce 100644 --- a/rules/build-package.mk +++ b/rules/build-package.mk @@ -29,6 +29,7 @@ # libraries/base_dist_LD_OPTS = -package ghc-prim-0.1.0.0 define build-package +$(call trace, build-package($1,$2,$3)) # $1 = dir # $2 = distdir # $3 = GHC stage to use (0 == bootstrapping compiler) diff --git a/rules/build-perl.mk b/rules/build-perl.mk index 5ee1d2350b0f4a982f337644bd9d2e75e0ee98c9..cd231854620ab161fe4ee4b8b26261345f6b261f 100644 --- a/rules/build-perl.mk +++ b/rules/build-perl.mk @@ -19,6 +19,7 @@ # $(eval $(call build-perl,driver/mangler,dist)) define build-perl +$(call trace, build-perl($1,$2)) # $1 = dir # $2 = distdir diff --git a/rules/build-prog.mk b/rules/build-prog.mk index e9252eb65ce94414f95860472e753afe48e2b876..76e2cb671e7f6dfc12ad3111292207b16f28a64e 100644 --- a/rules/build-prog.mk +++ b/rules/build-prog.mk @@ -20,6 +20,7 @@ # $(eval $(call build-prog,utils/genapply,dist-install,1)) define build-prog +$(call trace, build-prog($1,$2,$3)) # $1 = dir # $2 = distdir # $3 = GHC stage to use (0 == bootstrapping compiler) diff --git a/rules/docbook.mk b/rules/docbook.mk index ccc0fa47a7f13d8cf6e86232485f761a2a3651c3..8488de14842686d35c5628861aab929f01aecc8f 100644 --- a/rules/docbook.mk +++ b/rules/docbook.mk @@ -14,6 +14,7 @@ # Build docbook docs define docbook +$(call trace, docbook($1,$2)) # $1 = dir # $2 = docname diff --git a/rules/extra-packages.mk b/rules/extra-packages.mk index c54c60496f1fb7269e78ad287563966734b20481..7218a6f569fe641e432f759375a5980d9df0a6f7 100644 --- a/rules/extra-packages.mk +++ b/rules/extra-packages.mk @@ -36,11 +36,13 @@ $$(foreach p,$$(patsubst libraries/%,%,$$(wildcard $$(shell grep '^[^ ]\+ \+\(dp endef define extra-package # $1 = package root, $2 = package +$(call trace, extra-package($1,$2)) + EXTRA_PACKAGES += $2 ifeq "$(wildcard libraries/$1/ghc-stage2-package)" "" $$(eval $$(call addPackage,$2)) else $$(eval $$(call addPackage2,$2)) endif -endef +endef diff --git a/rules/haddock.mk b/rules/haddock.mk index f943610bdcfbd7ccc54bce507eb0d88969bb1861..04544963d79b19c37ab5687bf1f5b73a54c1f844 100644 --- a/rules/haddock.mk +++ b/rules/haddock.mk @@ -12,6 +12,7 @@ define haddock # args: $1 = dir, $2 = distdir +$(call trace, haddock($1,$2)) ifneq "$$($1_$2_DO_HADDOCK)" "NO" diff --git a/rules/manual-package-config.mk b/rules/manual-package-config.mk index 8d1eba9322647bdd7de13f6d4a4ff2771dcd8352..6b2b2ac2cb3252ab12e0b75abe15e0d18c69f28d 100644 --- a/rules/manual-package-config.mk +++ b/rules/manual-package-config.mk @@ -12,6 +12,7 @@ define manual-package-config # args: $1 = dir +$(call trace, manual-package-config($1)) $1/package.conf.inplace : $1/package.conf.in $(GHC_PKG_INPLACE) $$(CPP) $$(RAWCPP_FLAGS) -P \ diff --git a/rules/package-config.mk b/rules/package-config.mk index b68f2e1de5927a6175aa702a3fe58aa98335aa29..bd962e15ac48ffd4b1daa00b26841edade1c941d 100644 --- a/rules/package-config.mk +++ b/rules/package-config.mk @@ -12,6 +12,7 @@ define package-config # args: $1 = dir, $2 = distdir, $3 = GHC stage +$(call trace, package-config($1,$2,$3)) $1_$2_HC = $$(GHC_STAGE$3) diff --git a/rules/shell-wrapper.mk b/rules/shell-wrapper.mk index 5df9ff29303d7006ce2e15bc829b99d3d23c50cc..1315ea35a4a3e7112afa412aa2ffe24a873a528b 100644 --- a/rules/shell-wrapper.mk +++ b/rules/shell-wrapper.mk @@ -11,6 +11,7 @@ # ----------------------------------------------------------------------------- define shell-wrapper +$(call trace, shell-wrapper($1,$2)) # $1 = dir # $2 = distdir diff --git a/rules/tags-package.mk b/rules/tags-package.mk index a7e46d19344ba7e38bc52bb5ae67f2cf3aebdcd9..e9116487fba18dce85605d6cc70eeddba435b3e7 100644 --- a/rules/tags-package.mk +++ b/rules/tags-package.mk @@ -18,6 +18,7 @@ # Uses the same metadata as build-package. define tags-package +$(call trace, tags-package($1,$2)) # $1 = dir # $2 = distdir diff --git a/rules/trace.mk b/rules/trace.mk new file mode 100644 index 0000000000000000000000000000000000000000..356f121d23fa2d99c5c1fb2ab0ddfaa935a1b8f1 --- /dev/null +++ b/rules/trace.mk @@ -0,0 +1,21 @@ +# ----------------------------------------------------------------------------- +# +# (c) 2010 The University of Glasgow +# +# This file is part of the GHC build system. +# +# To understand how the build system works and how to modify it, see +# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture +# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying +# +# ----------------------------------------------------------------------------- + +# A helpful little debug macro. Call it from a macro like this: +# +# $(call trace, this-macro($1,$2,$3)) +# +# And invoke the build system with TRACE=1 to turn on tracing. + +define trace +$$(if $(TRACE),$$(warning $1),) +endef