X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rules%2Fbuild-dependencies.mk;h=e6d493ccf7314de64cf571ff8cf2e2477e14f1a2;hb=5c4a4c4bfe2a007f41f42ebab689bcd7219bed0d;hp=f896b9fb6f58586857cde8e4566266245d7ca6f5;hpb=437f89151dac9f70b833b7ab0d34bf170f8a3585;p=ghc-hetmet.git diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index f896b9f..e6d493c 100644 --- a/rules/build-dependencies.mk +++ b/rules/build-dependencies.mk @@ -12,6 +12,7 @@ define build-dependencies $(call trace, build-dependencies($1,$2,$3)) +$(call profStart, build-dependencies($1,$2,$3)) # $1 = dir # $2 = distdir # $3 = GHC stage to use (0 == bootstrapping compiler) @@ -24,7 +25,11 @@ $1_$2_C_FILES_DEPS = $$(filter-out $$($1_$2_C_FILES_NODEPS),$$($1_$2_C_FILES)) $1_$2_MKDEPENDHS_FLAGS = -dep-makefile $$($1_$2_depfile_haskell).tmp $$(foreach way,$$(filter-out v,$$($1_$2_WAYS)),-dep-suffix $$(way)) $1_$2_MKDEPENDHS_FLAGS += -include-pkg-deps -ifneq "$$($1_$2_NO_BUILD_DEPS)" "YES" +ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES" + +# Some of the Haskell files (e.g. utils/hsc2hs/Main.hs) (directly or +# indirectly) include the generated includes files. +$$($1_$2_depfile_haskell) : $$(includes_H_CONFIG) $$(includes_H_PLATFORM) $$($1_$2_depfile_haskell) : $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS) $$($1_$2_HC_MK_DEPEND_DEP) | $$$$(dir $$$$@)/. "$$(RM)" $$(RM_OPTS) $$@.tmp @@ -45,7 +50,8 @@ endif # like bad rules, due to the two colons, so we filter them out. grep -v ' : [a-zA-Z]:/' $$@.tmp > $$@ -# Some of the C files depend on the generated includes files. +# Some of the C files (directly or indirectly) include the generated +# includes files. $$($1_$2_depfile_c_asm) : $$(includes_H_CONFIG) $$(includes_H_PLATFORM) $$($1_$2_depfile_c_asm) : $$($1_$2_C_FILES_DEPS) $$($1_$2_S_FILES) | $$$$(dir $$$$@)/. @@ -63,27 +69,12 @@ endif echo "$1_$2_depfile_c_asm_EXISTS = YES" >> $$@.tmp mv $$@.tmp $$@ -endif # $1_$2_NO_BUILD_DEPS +endif # NO_GENERATED_MAKEFILE_RULES # Note sed magic above: mkdependC can't do -odir stuff, so we have to # munge the dependencies it generates to refer to the correct targets. -# Seems as good a place as any to attach the unlit dependency -$$($1_$2_depfile_haskell) : $$(UNLIT) - -ifneq "$$(NO_INCLUDE_DEPS)" "YES" -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 - +$(call profEnd, build-dependencies($1,$2,$3)) endef # This comment is outside the "define addCFileDeps" as that definition