Fix build on cygwin: Normalise slashes in .depend files to be /
[ghc-hetmet.git] / rules / build-dependencies.mk
index 6ebc7ef..b1b5fe8 100644 (file)
@@ -67,7 +67,11 @@ endif # $1_$2_NO_BUILD_DEPS
 $$($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"
@@ -89,6 +93,12 @@ endef
 # The formatting of this definition (e.g. the blank line above) is
 # important, in order to get make to generate the right makefile code.
 #
+# 's|\\|/|g'
+#    We first normalise all slashes to be forward slashes. Note that
+#    $(TOP) also uses forward slashes.
+# 's| /$$| \\|'
+#    But now we need to fix the line continuation characters that we
+#    just broke.
 # "1s|\.o|\.$($w_osuf)|"
 #    We will have dependencies for .o files, so we need to fix them up
 #    for the right object suffix for the way we're doing
@@ -122,7 +132,7 @@ endef
 define addCFileDeps
 
        $(CPP) $($1_$2_MKDEPENDC_OPTS) $($1_$2_v_ALL_CC_OPTS) $($(basename $4)_CC_OPTS) -MM $4 -MF $3.bit
-       $(foreach w,$5,sed -e "1s|\.o|\.$($w_osuf)|" -e "1s|^|$(dir $4)|" -e "1s|$1/|$1/$2/build/|" -e "1s|$2/build/$2/build|$2/build|g" -e "s|$(TOP)/||g$(CASE_INSENSITIVE_SED)" $3.bit >> $3.tmp &&) true
+       $(foreach w,$5,sed -e 's|\\|/|g' -e 's| /$$| \\|' -e "1s|\.o|\.$($w_osuf)|" -e "1s|^|$(dir $4)|" -e "1s|$1/|$1/$2/build/|" -e "1s|$2/build/$2/build|$2/build|g" -e "s|$(TOP)/||g$(CASE_INSENSITIVE_SED)" $3.bit >> $3.tmp &&) true
 endef
 
 ifeq "$(Windows)" "YES"