X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fboilerplate.mk;h=0e7e752020d3fa8f3bb823745f7bceca470b82c7;hp=cdf920b6fadddc6a02344f0f87ae26ff22376d3a;hb=74e1368d4688ee16f6decdf2cd3ebe27506b26ba;hpb=df7e457273153461399378a243946302ea9a8440 diff --git a/mk/boilerplate.mk b/mk/boilerplate.mk index cdf920b..0e7e752 100644 --- a/mk/boilerplate.mk +++ b/mk/boilerplate.mk @@ -2,10 +2,10 @@ # # mk/boilerplate.mk # -# The Glorious fptools Boilerplate Makefile +# The Glorious GHC Boilerplate Makefile # # This one file should be included (directly or indirectly) by all Makefiles -# in the fptools hierarchy. +# in the GHC hierarchy. # ################################################################################# @@ -14,10 +14,7 @@ # Setting .SUFFIXES to empty disables them all. MAKEFLAGS += --no-builtin-rules -# FPTOOLS_TOP is the *relative* path to the fptools toplevel directory from the -# location where a project Makefile was invoked. It is set by looking at the -# current value of TOP. -# +# $(FPTOOLS_TOP) is the old name for $(TOP), kept for backwards compat FPTOOLS_TOP := $(TOP) @@ -25,21 +22,32 @@ FPTOOLS_TOP := $(TOP) # THIS RULE MUST REMAIN FIRST! default: all +#------------------------------------------------------------ +# Makefile debugging +# to see the effective value used for a Makefile variable, do +# make show VALUE=MY_VALUE +# + +show: + @echo '$(VALUE)="$($(VALUE))"' # ----------------------------------------------------------------------------- -# make sure the autoconf stuff is up to date... +# Misc bits -$(TOP)/mk/config.mk : $(TOP)/mk/config.mk.in $(TOP)/mk/config.h.in $(TOP)/configure - @if test ! -f $(FPTOOLS_TOP)/config.status; then \ - echo "You haven't run $(FPTOOLS_TOP)/configure yet."; \ - exit 1; \ - fi - @echo "Running $(FPTOOLS_TOP)/config.status to update configuration info..." - @( cd $(FPTOOLS_TOP) && ./config.status ) +# If $(way) is set then we define $(way_) and $(_way) from it in the +# obvious fashion. This must be done before suffix.mk is included, +# because the pattern rules in that file depend on these variables. + +ifneq "$(way)" "" + way_ := $(way)_ + _way := _$(way) +endif -$(TOP)/configure : $(TOP)/configure.in $(TOP)/aclocal.m4 - @echo "Regenerating $(FPTOOLS_TOP)/configure..." - @( cd $(FPTOOLS_TOP) && make -f Makefile.config ./configure ) + +# When using $(patsubst ...) and friends, you can't use a literal comma +# freely - so we use ${comma} instead. (See PACKAGE_CPP_OPTS in package.mk +# for an example usage.) +comma=, # ----------------------------------------------------------------------------- # Now follow the pieces of boilerplate @@ -61,19 +69,14 @@ include $(TOP)/mk/opts.mk # Variables that control the option flags for all the # language processors -include $(TOP)/mk/suffix.mk -# Suffix rules for Haskell, C and literate - ifeq "$(BootingFromHc)" "YES" include $(TOP)/mk/bootstrap.mk endif --include $(TOP)/mk/build.mk # (Optional) build-specific configuration -# +include $(TOP)/mk/custom-settings.mk ifndef FAST -include .depend endif # The dependencies file from the current directory -