summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/Makefile8
-rw-r--r--ghc/Makefile8
-rw-r--r--mk/sub-makefile.mk22
3 files changed, 27 insertions, 11 deletions
diff --git a/compiler/Makefile b/compiler/Makefile
index 7618f680a1..cde254ae78 100644
--- a/compiler/Makefile
+++ b/compiler/Makefile
@@ -15,16 +15,18 @@ TOP = ..
SPEC_TARGETS = 1 2 3
include $(TOP)/mk/sub-makefile.mk
+FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES compiler_stage2_NO_BUILD_DEPS=YES compiler_stage3_NO_BUILD_DEPS=YES
+
.PHONY: 1 2 3
1:
- +$(TOPMAKE) stage=1 all_ghc_stage1 compiler_stage1_NO_BUILD_DEPS=YES OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES
+ +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS)
2:
- +$(TOPMAKE) stage=2 all_ghc_stage2 compiler_stage2_NO_BUILD_DEPS=YES OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES
+ +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS)
3:
- +$(TOPMAKE) stage=3 all_ghc_stage3 compiler_stage3_NO_BUILD_DEPS=YES OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES
+ +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS)
.PHONY: extra-help
help : extra-help
diff --git a/ghc/Makefile b/ghc/Makefile
index 7e6b416cf3..669c938dd7 100644
--- a/ghc/Makefile
+++ b/ghc/Makefile
@@ -15,16 +15,18 @@ TOP = ..
SPEC_TARGETS = 1 2 3
include $(TOP)/mk/sub-makefile.mk
+FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES compiler_stage2_NO_BUILD_DEPS=YES compiler_stage3_NO_BUILD_DEPS=YES
+
.PHONY: 1 2 3
1:
- +$(TOPMAKE) stage=1 all_ghc_stage1 compiler_stage1_NO_BUILD_DEPS=YES
+ +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS)
2:
- +$(TOPMAKE) stage=2 all_ghc_stage2 compiler_stage2_NO_BUILD_DEPS=YES
+ +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS)
3:
- +$(TOPMAKE) stage=3 all_ghc_stage3 compiler_stage3_NO_BUILD_DEPS=YES
+ +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS)
.PHONY: extra-help
help : extra-help
diff --git a/mk/sub-makefile.mk b/mk/sub-makefile.mk
index 989c0c91b9..caeefa6c4a 100644
--- a/mk/sub-makefile.mk
+++ b/mk/sub-makefile.mk
@@ -16,9 +16,21 @@ TOPMAKE = $(MAKE) -C $(TOP)
default: all
-fast :
- +$(TOPMAKE) all_$(dir) $(dir)_dist-install_NO_BUILD_DEPS=YES \
- OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES
+fast: all
+
+FAST_MAKE_OPTS =\
+ $(dir)_dist_NO_BUILD_DEPS=YES \
+ $(dir)_dist-boot_NO_BUILD_DEPS=YES \
+ $(dir)_dist-install_NO_BUILD_DEPS=YES \
+ OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES
+
+ifneq "$(filter fast,$(MAKECMDGOALS))" ""
+EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS)
+else
+ifeq "$(FAST)" "YES"
+EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS)
+endif
+endif
# We must not execute multiple recursive invocations of make in parallel.
.NOTPARALLEL:
@@ -28,12 +40,12 @@ STD_TARGETS = all clean distclean maintainer_clean install html ps pdf
# The + tells make that we're recursively invoking make, otherwise 'make -j2'
# goes wrong.
$(STD_TARGETS):
- +$(TOPMAKE) $@_$(dir)
+ +$(TOPMAKE) $@_$(dir) $(EXTRA_MAKE_OPTS)
OTHERTARGETS=$(filter-out fast help $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS))
.PHONY: $(OTHERTARGETS)
$(OTHERTARGETS):
- +$(TOPMAKE) $(dir)/$@
+ +$(TOPMAKE) $(dir)/$@ $(EXTRA_MAKE_OPTS)
.PHONY: help
help : sub-help