# -----------------------------------------------------------------------------
# Utility definitions
+include rules/trace.mk
include rules/make-command.mk
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
define build-dependencies
+$(call trace, build-dependencies($1,$2,$3))
# $1 = dir
# $2 = distdir
# $3 = GHC stage to use (0 == bootstrapping compiler)
# -----------------------------------------------------------------------------
define build-package-data
+$(call trace, build-package-data($1,$2,$3))
# args:
# $1 = dir
# $2 = distdir
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)
# 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)
# $(eval $(call build-perl,driver/mangler,dist))
define build-perl
+$(call trace, build-perl($1,$2))
# $1 = dir
# $2 = distdir
# $(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)
# Build docbook docs
define docbook
+$(call trace, docbook($1,$2))
# $1 = dir
# $2 = docname
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
define haddock # args: $1 = dir, $2 = distdir
+$(call trace, haddock($1,$2))
ifneq "$$($1_$2_DO_HADDOCK)" "NO"
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 \
define package-config # args: $1 = dir, $2 = distdir, $3 = GHC stage
+$(call trace, package-config($1,$2,$3))
$1_$2_HC = $$(GHC_STAGE$3)
# -----------------------------------------------------------------------------
define shell-wrapper
+$(call trace, shell-wrapper($1,$2))
# $1 = dir
# $2 = distdir
# Uses the same metadata as build-package.
define tags-package
+$(call trace, tags-package($1,$2))
# $1 = dir
# $2 = distdir
--- /dev/null
+# -----------------------------------------------------------------------------
+#
+# (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