Fix Trac #2467: decent warnings for orphan instances
[ghc-hetmet.git] / Makefile
index f5b1706..edad014 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -67,9 +67,9 @@ include $(TOP)/mk/boilerplate.mk
 
 # We can't 'make boot' in libraries until stage1 is built
 ifeq "$(BootingFromHc)" "YES"
-SUBDIRS_BUILD = includes rts compiler ghc docs utils driver
+SUBDIRS_BUILD = includes compiler docs utils driver
 else
-SUBDIRS_BUILD = includes utils driver docs compiler ghc rts libraries/Cabal/doc
+SUBDIRS_BUILD = includes utils driver docs compiler libraries/Cabal/doc
 endif
 
 SUBDIRS = gmp libffi includes utils driver docs rts compiler ghc libraries libraries/Cabal/doc
@@ -88,10 +88,10 @@ 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 \
@@ -113,6 +113,7 @@ stage1 : $(GCC_LIB_DEP) check-all
        $(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 "------------------------------------------------------------------------"; \
@@ -130,7 +131,12 @@ stage1 : $(GCC_LIB_DEP) check-all
          $(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
@@ -140,14 +146,19 @@ stage1 : $(GCC_LIB_DEP) check-all
 # compiler of all utils that get installed and of all extra support binaries
 # includes in binary dists.
 stage2 : check-all
-       $(MAKE) -C compiler boot stage=2
+       $(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-all
-       $(MAKE) -C compiler boot stage=3
+       $(MAKE) -C compiler stage=3 boot
        $(MAKE) -C compiler stage=3
+       $(MAKE) -C ghc      stage=3 boot
+       $(MAKE) -C ghc      stage=3
 
 bootstrap  : bootstrap2
 
@@ -168,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