Fix build on cygwin: Normalise slashes in .depend files to be /
[ghc-hetmet.git] / rules / build-prog.mk
index 0efac4c..e9252eb 100644 (file)
@@ -103,7 +103,13 @@ $(call build-dependencies,$1,$2,$3)
 # Just the 'v' way for programs
 $(call distdir-way-opts,$1,$2,v,$3)
 
+ifeq "$3" "0"
+# For stage 0, we use GHC to compile C sources so that we don't have to
+# worry about where the RTS header files are
 $(call c-suffix-rules,$1,$2,v,YES)
+else
+$(call c-suffix-rules,$1,$2,v,NO)
+endif
 
 $(call hs-suffix-rules,$1,$2,v)
 $$(foreach dir,$$($1_$2_HS_SRC_DIRS),\
@@ -112,7 +118,15 @@ $$(foreach dir,$$($1_$2_HS_SRC_DIRS),\
 $(call c-objs,$1,$2,v)
 $(call hs-objs,$1,$2,v)
 
-ifeq "$$(BootingFromHc)" "NO"
+$1_$2_LINK_WITH_GCC = NO
+ifeq "$$(BootingFromHc)" "YES"
+$1_$2_LINK_WITH_GCC = YES
+endif
+ifeq "$$($1_$2_v_HS_OBJS)" ""
+$1_$2_LINK_WITH_GCC = YES
+endif
+
+ifeq "$$($1_$2_LINK_WITH_GCC)" "NO"
 $1/$2/build/tmp/$$($1_$2_PROG) : $$($1_$2_v_HS_OBJS) $$($1_$2_v_C_OBJS) $$($1_$2_v_S_OBJS) $$($1_$2_OTHER_OBJS) | $$$$(dir $$$$@)/.
        "$$($1_$2_HC)" -o $$@ $$($1_$2_v_ALL_HC_OPTS) $$(LD_OPTS) $$($1_$2_v_HS_OBJS) $$($1_$2_v_C_OBJS) $$($1_$2_v_S_OBJS) $$($1_$2_OTHER_OBJS)
 else