If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
[ghc-hetmet.git] / compiler / Makefile
1 # -----------------------------------------------------------------------------
2 #
3 # (c) 2009 The University of Glasgow
4 #
5 # This file is part of the GHC build system.
6 #
7 # To understand how the build system works and how to modify it, see
8 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
9 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
10 #
11 # -----------------------------------------------------------------------------
12
13 # If the user says 'make' or 'make stage=2' here, we behave as if they were
14 # in the ghc directory instead, so that the executable GHC gets built.
15 .PHONY: default_to_ghc all_ghc
16 default_to_ghc : all_ghc
17
18 dir = compiler
19 TOP = ..
20 SPEC_TARGETS = 1 2 3
21 include $(TOP)/mk/sub-makefile.mk
22
23 all_ghc :
24         +$(TOPMAKE) all_ghc $(EXTRA_MAKE_OPTS)
25
26 FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES compiler_stage2_NO_BUILD_DEPS=YES compiler_stage3_NO_BUILD_DEPS=YES
27
28 .PHONY: 1 2 3
29
30 1:
31         +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS)
32
33 2:
34         +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS)
35
36 3:
37         +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS)
38
39 .PHONY: extra-help
40 help : extra-help
41 extra-help :
42         @echo "  make 1"
43         @echo "  make 2"
44         @echo "  make 3"
45         @echo
46         @echo "     Build the stage 1, 2 or 3 GHC respectively, omitting dependencies"
47         @echo "     and initial phases for speed."