Commit 85f096f8 authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Make sure all the clean rules are always included

In particular, this fixes a problem where stage3 bits weren't being cleaned
parent 5a6c2ce7
......@@ -439,24 +439,18 @@ compiler_stage1_SplitObjs = NO
compiler_stage2_SplitObjs = NO
compiler_stage3_SplitObjs = NO
# For now, bindists always use stage 2
ifneq "$(BINDIST)" "YES"
# stage 1 is enabled unless $(stage) is set to something other than 1
ifeq "$(filter-out 1,$(stage))" ""
$(eval $(call build-package,compiler,stage1,0))
ifeq "$(stage)" "1"
compiler_stage2_NOT_NEEDED = YES
endif
ifneq "$(stage)" "3"
compiler_stage3_NOT_NEEDED = YES
endif
# stage 2 is enabled unless $(stage) is set to something other than 2
ifeq "$(filter-out 2,$(stage))" ""
$(eval $(call build-package,compiler,stage1,0))
$(eval $(call build-package,compiler,stage2,1))
endif
$(eval $(call build-package,compiler,stage3,2))
ifneq "$(BINDIST)" "YES"
# stage 3 has to be requested explicitly with stage=3
ifeq "$(stage)" "3"
$(eval $(call build-package,compiler,stage3,2))
endif
compiler_stage2_TAGS_HC_OPTS = -package ghc
$(eval $(call tags-package,compiler,stage2))
......
......@@ -103,20 +103,15 @@ define ghc_stage$(INSTALL_GHC_STAGE)_INSTALL_SHELL_WRAPPER_EXTRA
echo 'executablename="$$exedir/ghc"' >> "$(WRAPPER)"
endef
# stage 1 is enabled unless $(stage) is set to something other than 1
ifeq "$(filter-out 1,$(stage))" ""
$(eval $(call build-prog,ghc,stage1,0))
ifeq "$(stage)" "1"
ghc_stage2_NOT_NEEDED = YES
endif
# stage 2 is enabled unless $(stage) is set to something other than 2
ifeq "$(filter-out 2,$(stage))" ""
$(eval $(call build-prog,ghc,stage2,1))
ifneq "$(stage)" "3"
ghc_stage3_NOT_NEEDED = YES
endif
# stage 3 has to be requested explicitly with stage=3
ifeq "$(stage)" "3"
$(eval $(call build-prog,ghc,stage1,0))
$(eval $(call build-prog,ghc,stage2,1))
$(eval $(call build-prog,ghc,stage3,2))
endif
ifneq "$(BINDIST)" "YES"
......
......@@ -37,12 +37,33 @@ ifeq "$$(findstring $3,0 1 2)" ""
$$(error $1/$2: stage argument to build-package should be 0, 1, or 2)
endif
$(call clean-target,$1,$2,$1/$2)
distclean : clean_$1_$2_config
maintainer-clean : distclean
.PHONY: clean_$1_$2_config
clean_$1_$2_config:
"$$(RM)" $$(RM_OPTS) $1/config.log $1/config.status $1/include/Hs*Config.h
"$$(RM)" $$(RM_OPTS) -r $1/autom4te.cache
ifneq "$$($1_$2_NOT_NEEDED)" "YES"
$$(eval $$(call build-package-helper,$1,$2,$3))
endif
endef
define build-package-helper
# $1 = dir
# $2 = distdir
# $3 = GHC stage to use (0 == bootstrapping compiler)
# We don't install things compiled by stage 0, so no need to put them
# in the bindist.
ifneq "$$(BINDIST) $3" "YES 0"
$(call all-target,$1,all_$1_$2)
$(call clean-target,$1,$2,$1/$2)
# This give us things like
# all_libraries: all_libraries/base_dist-install
ifneq "$$($1_$2_GROUP)" ""
......@@ -57,15 +78,6 @@ check_$1: $$(GHC_CABAL_INPLACE)
$$(GHC_CABAL_INPLACE) check $1
endif
distclean : clean_$1_$2_config
maintainer-clean : distclean
.PHONY: clean_$1_$2_config
clean_$1_$2_config:
"$$(RM)" $$(RM_OPTS) $1/config.log $1/config.status $1/include/Hs*Config.h
"$$(RM)" $$(RM_OPTS) -r $1/autom4te.cache
# --- CONFIGURATION
$(call package-config,$1,$2,$3)
......
......@@ -34,10 +34,21 @@ ifeq "$$(findstring $3,0 1 2)" ""
$$(error $1/$2: stage argument to build-prog should be 0, 1, or 2)
endif
$(call all-target,$1,all_$1_$2)
$(call clean-target,$1,$2,$1/$2)
ifneq "$$($1_$2_NOT_NEEDED)" "YES"
$$(eval $$(call build-prog-helper,$1,$2,$3))
endif
endef
define build-prog-helper
# $1 = dir
# $2 = distdir
# $3 = GHC stage to use (0 == bootstrapping compiler)
$(call all-target,$1,all_$1_$2)
$(call package-config,$1,$2,$3)
ifeq "$$($1_USES_CABAL)" "YES"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment