From 7a50ff1e44710335e935ff199cd95616840b9f02 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Tue, 10 Aug 2010 09:34:46 +0000 Subject: [PATCH] Do the dependency-omitting for 'make 1' in a slightly different way I encountered a couple of things that broke after Ian's previous patch: one was my nightly build scripts that use 'make stage=2' at the top level, and the other is 'make fast' in libraries/base, which uses 'stage=0' to avoid building any compilers. So my version of this patch is more direct: it just turns off the appropriate dependencies using a variable set by 'make 1', 'make 2', etc. --- compiler/Makefile | 6 +++--- ghc/Makefile | 7 ++++--- rules/build-dependencies.mk | 9 ++------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/compiler/Makefile b/compiler/Makefile index f2c31e8..639076a 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -28,13 +28,13 @@ FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES compiler_stage2_NO_BUILD_DEP .PHONY: 1 2 3 1: - +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS) NO_STAGE1_DEPS=YES NO_STAGE2_DEPS=YES 2: - +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS) NO_STAGE2_DEPS=YES 3: - +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS) NO_STAGE3_DEPS=YES .PHONY: extra-help help : extra-help diff --git a/ghc/Makefile b/ghc/Makefile index f61df55..d903517 100644 --- a/ghc/Makefile +++ b/ghc/Makefile @@ -25,13 +25,14 @@ FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES \ .PHONY: 1 2 3 1: - +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS) NO_STAGE1_DEPS=YES NO_STAGE2_DEPS=YES 2: - +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS) NO_STAGE2_DEPS=YES 3: - +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS) + +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS) NO_STAGE3_DEPS=YES + .PHONY: extra-help help : extra-help diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index a1b55b6..2562611 100644 --- a/rules/build-dependencies.mk +++ b/rules/build-dependencies.mk @@ -67,22 +67,17 @@ endif # $1_$2_NO_BUILD_DEPS $$($1_$2_depfile_haskell) : $$(UNLIT) ifneq "$$(NO_INCLUDE_DEPS)" "YES" -# This next test stops us rebuilding all the dep files when doing e.g. -# "make 1" in compiler or ghc. If stage is blank (just building normally. -# so we want all deps), or if $3 is stage-1 (when building stage n, we -# use stage n-1, so we want any dependencies used by the stage n-1 -# compiler), then we want to include the dependencies. -ifneq "$$(or $$(if $$(stage),,YES),$$(findstring $3,$$(word $$(stage),0 1 2 3)))" "" ifneq "$$(strip $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS))" "" +ifneq "$$(NO_STAGE$3_DEPS)" "YES" include $$($1_$2_depfile_haskell) endif +endif include $$($1_$2_depfile_c_asm) else ifeq "$$(DEBUG)" "YES" $$(warning not building dependencies in $1) endif endif -endif endef -- 1.7.10.4