X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rules%2Fbuild-dependencies.mk;h=e6d493ccf7314de64cf571ff8cf2e2477e14f1a2;hp=6d194165fe5c33c9669169437c84ceb4ae1910c4;hb=265bedd9b4869cf5f323ab32ed1e4af0f7a0bfe0;hpb=295016c3c0aa1f407436136e39ababf2dc8b50c6 diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index 6d19416..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,11 +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. +$(call profEnd, build-dependencies($1,$2,$3)) endef # This comment is outside the "define addCFileDeps" as that definition