X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=utils%2FMakefile;h=e522c32ba83fa6ffc103b20d5d6d72ce03dc14e5;hp=4bbeb35f56b9e80db62ecb42916f6e083168283d;hb=HEAD;hpb=0e5f01904f7df065547e1558df8917c11f676f77 diff --git a/utils/Makefile b/utils/Makefile index 4bbeb35..e522c32 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -29,7 +29,6 @@ endif # Utils that are old and/or bitrotted: # stat2resid # debugNCG -# ext-core # genargs # heap-view # pvm @@ -50,17 +49,31 @@ boot :: $(MAKE) -C genprimopcode endif +############################################ + +# The utils may be built with the bootstrapping compiler, for use during +# the build, or with the stage2 compiler, for installing. Some of them +# are built with both; we can't install the utils built with the +# bootstrapping compiler as they may use different versions of C +# libraries. The reason we use stage2 rather than stage1 is that some +# utils, e.g. haddock, need the GHC API package. + WITH_BOOTSTRAPPING_COMPILER = installPackage ghc-pkg hsc2hs hpc -WITH_STAGE1 = installPackage ghc-pkg hasktags runghc hpc pwd +WITH_STAGE2 = installPackage ghc-pkg runghc hpc pwd haddock ifneq "$(NO_INSTALL_HSC2HS)" "YES" -WITH_STAGE1 += hsc2hs +WITH_STAGE2 += hsc2hs endif # sort removes duplicates - we don't actually care about the order -WITH_EITHER = $(sort $(WITH_BOOTSTRAPPING_COMPILER) $(WITH_STAGE1)) +WITH_EITHER = $(sort $(WITH_BOOTSTRAPPING_COMPILER) $(WITH_STAGE2)) + +# We need to build pwd with stage 2, as it goes in bindists, but we +# don't actually want to install it. Likewise the installPackage +# program. +DO_NOT_INSTALL = pwd installPackage -binary-dist: $(foreach P,$(WITH_STAGE1),binary-dist.$P) +binary-dist: $(foreach P,$(WITH_STAGE2),binary-dist.$P) ifeq "$(WHERE_AM_I)" "" echo "I don't know where I am" >&2 exit 1 @@ -75,9 +88,10 @@ distclean:: $(foreach P,$(WITH_EITHER),distclean.$P) with-bootstrapping-compiler: \ $(foreach P,$(WITH_BOOTSTRAPPING_COMPILER),with-bootstrapping-compiler.$P) -with-stage-1: $(foreach P,$(WITH_STAGE1),with-stage-1.$P) +with-stage-2: $(foreach P,$(WITH_STAGE2),with-stage-2.$P) + $(MAKE) -C haddock install-inplace -install:: $(foreach P,$(WITH_STAGE1),install.$P) +install:: $(foreach P,$(filter-out $(DO_NOT_INSTALL),$(WITH_STAGE2)),install.$P) $(foreach P,$(WITH_EITHER),clean.$P): \ clean.%: @@ -91,15 +105,15 @@ $(foreach P,$(WITH_BOOTSTRAPPING_COMPILER),with-bootstrapping-compiler.$P): \ with-bootstrapping-compiler.%: $(MAKE) -C $* with-bootstrapping-compiler -$(foreach P,$(WITH_STAGE1),with-stage-1.$P): \ -with-stage-1.%: - $(MAKE) -C $* with-stage-1 +$(foreach P,$(WITH_STAGE2),with-stage-2.$P): \ +with-stage-2.%: + $(MAKE) -C $* with-stage-2 -$(foreach P,$(WITH_STAGE1),install.$P): \ +$(foreach P,$(WITH_STAGE2),install.$P): \ install.%: $(MAKE) -C $* install -$(foreach P,$(WITH_STAGE1),binary-dist.$P): \ +$(foreach P,$(WITH_STAGE2),binary-dist.$P): \ binary-dist.%: $(MAKE) -C $* binary-dist WHERE_AM_I=$(WHERE_AM_I)/$*