X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Makefile;h=edad014a9d58094f0c1ca8bc101d8ec83254c573;hb=ad773dac21ea6960293246e836e9a143249e4e11;hp=9e3319e6db698bfdf5dbe6c13966a130f5b01aac;hpb=2002bc3d77b9e601287cd0499c0f815ebc992ea0;p=ghc-hetmet.git diff --git a/Makefile b/Makefile index 9e3319e..edad014 100644 --- a/Makefile +++ b/Makefile @@ -67,20 +67,31 @@ include $(TOP)/mk/boilerplate.mk # We can't 'make boot' in libraries until stage1 is built ifeq "$(BootingFromHc)" "YES" -SUBDIRS_BUILD = includes rts compiler docs utils driver +SUBDIRS_BUILD = includes compiler docs utils driver else -SUBDIRS_BUILD = includes utils driver docs compiler rts libraries/Cabal/doc +SUBDIRS_BUILD = includes utils driver docs compiler libraries/Cabal/doc endif -SUBDIRS = gmp libffi includes utils driver docs rts libraries compiler libraries/Cabal/doc +SUBDIRS = gmp libffi includes utils driver docs rts compiler ghc libraries libraries/Cabal/doc + +check-all: check-tools check-packages + +check-tools: + @: +ifeq "$(HADDOCK_DOCS)" "YES" +ifeq "$(HADDOCK)" "" + echo "Couldn't find haddock" >&2 + exit 1 +endif +endif # Sanity check that all the boot libraries are in the tree, to catch # failure to run darcs-all. check-packages : - @ds=`cat libraries/boot-packages`;\ + @ds=`grep "^[^# ][^ ]* *[^ ][^ ]*$$" packages | sed "s/ .*//"`;\ for d in $$ds; do \ - if test ! -d libraries/$$d; then \ - echo "Looks like you're missing libraries/$$d,"; \ + if test ! -d $$d; then \ + echo "Looks like you're missing $$d,"; \ echo "maybe you haven't done './darcs-all get'?"; \ exit 1; \ fi \ @@ -97,11 +108,12 @@ GCC_LIB_DEP = stamp.inplace-gcc-lib endif endif -stage1 : $(GCC_LIB_DEP) check-packages +stage1 : $(GCC_LIB_DEP) check-all $(MAKE) -C libraries boot $(MAKE) -C gmp all $(MAKE) -C libffi all $(MAKE) -C utils/mkdependC boot + $(MAKE) -C utils with-bootstrapping-compiler @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ for i in $(SUBDIRS_BUILD); do \ echo "------------------------------------------------------------------------"; \ @@ -119,7 +131,12 @@ stage1 : $(GCC_LIB_DEP) check-packages $(MAKE) --no-print-directory -C $$i $(MFLAGS) all; \ if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \ done + $(MAKE) -C ghc stage=1 boot + $(MAKE) -C ghc stage=1 + $(MAKE) -C rts boot + $(MAKE) -C rts $(MAKE) -C libraries all + $(MAKE) -C utils with-stage-1 # When making distributions (i.e., whether with binary-dist or using the # vanilla install target to create an installer package), we can have problems @@ -128,14 +145,20 @@ stage1 : $(GCC_LIB_DEP) check-packages # an example. Thus, we explicitly build a second version with the stage 1 # compiler of all utils that get installed and of all extra support binaries # includes in binary dists. -stage2 : check-packages - $(MAKE) -C compiler boot stage=2 +stage2 : check-all + $(MAKE) -C compiler stage=2 boot $(MAKE) -C compiler stage=2 +ifeq "$(HADDOCK_DOCS)" "YES" + $(MAKE) -C compiler stage=2 doc +endif + $(MAKE) -C ghc stage=2 boot + $(MAKE) -C ghc stage=2 - -stage3 : check-packages - $(MAKE) -C compiler boot stage=3 +stage3 : check-all + $(MAKE) -C compiler stage=3 boot $(MAKE) -C compiler stage=3 + $(MAKE) -C ghc stage=3 boot + $(MAKE) -C ghc stage=3 bootstrap : bootstrap2 @@ -156,13 +179,13 @@ all :: stamp.inplace-gcc-lib # tree somewhere, and then have install copy it from there rather than # from the filesystem. stamp.inplace-gcc-lib: - $(RM) -r compiler/gcc-lib - mkdir compiler/gcc-lib - cp $(LD) compiler/gcc-lib + $(RM) -r ghc/gcc-lib + mkdir ghc/gcc-lib + cp $(LD) ghc/gcc-lib touch $@ clean :: - $(RM) -r compiler/gcc-lib + $(RM) -r ghc/gcc-lib $(RM) -f inplace-gcc-lib endif endif