summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2011-01-22 19:09:28 +0000
committerIan Lynagh <igloo@earth.li>2011-01-22 19:09:28 +0000
commit295016c3c0aa1f407436136e39ababf2dc8b50c6 (patch)
tree1979e477cbd3b789acf723f6c871b15bdbcc1d36 /Makefile
parentd17afd1e4aa5c7a0992e5ac5b2cda325992706a8 (diff)
downloadhaskell-295016c3c0aa1f407436136e39ababf2dc8b50c6.tar.gz
Simplify the build system, and remove 2 phases
From http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering Phase 0: Includes: package-data.mk files for things built by the bootstrapping compiler. Builds: the dependency files for hsc2hs and genprimopcode. We need to do this now, as hsc2hs needs to be buildable in phase 1's includes (so that we can make the hpc library's .hs source files, which in turn is necessary for making its dependency files), and genprimopcode needs to be buildable in phase 1's includes (so that we can make the primop-*.hs-incl files, which are sources for the stage1 compiler library, and thus necessary for making its dependency files). Phase 1: Includes: dependency files for things built by the bootstrapping compiler. Builds: package-data.mk files for everything else. Note that this requires configuring the packages, which means telling cabal which ghc to use, and thus the stage1 compiler gets built during this phase. Phase "": Includes: dependency files for everything else. Builds: Everything else.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 2 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 8d49d0f1cd..0d53a15e60 100644
--- a/Makefile
+++ b/Makefile
@@ -61,18 +61,10 @@ REALGOALS=$(filter-out binary-dist binary-dist-prep bootstrapping-files framewor
.PHONY: $(REALGOALS)
$(REALGOALS) all: mk/config.mk.old mk/project.mk.old compiler/ghc.cabal.old
@echo "===--- building phase 0"
- $(MAKE) -r --no-print-directory -f ghc.mk phase=0 all
+ $(MAKE) -r --no-print-directory -f ghc.mk phase=0 phase_0_builds
ifneq "$(OMIT_PHASE_1)" "YES"
@echo "===--- building phase 1"
- $(MAKE) -r --no-print-directory -f ghc.mk phase=1 all
-endif
-ifneq "$(OMIT_PHASE_2)" "YES"
- @echo "===--- building phase 2"
- $(MAKE) -r --no-print-directory -f ghc.mk phase=2 all
-endif
-ifneq "$(OMIT_PHASE_3)" "YES"
- @echo "===--- building phase 3"
- $(MAKE) -r --no-print-directory -f ghc.mk phase=3 all
+ $(MAKE) -r --no-print-directory -f ghc.mk phase=1 phase_1_builds
endif
@echo "===--- building final phase"
$(MAKE) -r --no-print-directory -f ghc.mk $@