diff options
author | Simon Marlow <marlowsd@gmail.com> | 2010-09-21 13:47:29 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2010-09-21 13:47:29 +0000 |
commit | 75d9236613acdcfa54deb81b12bd4546c31e7c9f (patch) | |
tree | aba9667bbdc8518d431ee79a6190069f736a61b0 | |
parent | 6a1dd52566ae92ce133e751d9a800a8631b05b73 (diff) | |
download | haskell-75d9236613acdcfa54deb81b12bd4546c31e7c9f.tar.gz |
add a simple trace facility to the build system
saying
make TRACE=1
prints most of the macro calls and their arguments. It's easy to
trace new macros; see rules/trace.mk.
-rw-r--r-- | ghc.mk | 1 | ||||
-rw-r--r-- | rules/build-dependencies.mk | 1 | ||||
-rw-r--r-- | rules/build-package-data.mk | 1 | ||||
-rw-r--r-- | rules/build-package-way.mk | 1 | ||||
-rw-r--r-- | rules/build-package.mk | 1 | ||||
-rw-r--r-- | rules/build-perl.mk | 1 | ||||
-rw-r--r-- | rules/build-prog.mk | 1 | ||||
-rw-r--r-- | rules/docbook.mk | 1 | ||||
-rw-r--r-- | rules/extra-packages.mk | 4 | ||||
-rw-r--r-- | rules/haddock.mk | 1 | ||||
-rw-r--r-- | rules/manual-package-config.mk | 1 | ||||
-rw-r--r-- | rules/package-config.mk | 1 | ||||
-rw-r--r-- | rules/shell-wrapper.mk | 1 | ||||
-rw-r--r-- | rules/tags-package.mk | 1 | ||||
-rw-r--r-- | rules/trace.mk | 21 |
15 files changed, 37 insertions, 1 deletions
@@ -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 b1b5fe831c..f223288ea7 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 d2546380da..2ed47e1499 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 5752709194..d829a001a1 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 cd02646884..fc3d0f71a6 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 5ee1d2350b..cd23185462 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 e9252eb65c..76e2cb671e 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 ccc0fa47a7..8488de1484 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 c54c60496f..7218a6f569 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 f943610bdc..04544963d7 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 8d1eba9322..6b2b2ac2cb 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 b68f2e1de5..bd962e15ac 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 5df9ff2930..1315ea35a4 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 a7e46d1934..e9116487fb 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 0000000000..356f121d23 --- /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 |