On 30/10/2012 02:48, Ian Lynagh wrote:
+# Setting hisuf/osuf is a kludge. If DYNAMIC_BY_DEFAULT is on, dyn is
+# the first way, and p is another way, then without this kludge we run
+# ghc -M -hisuf dyn_hi -osuf dyn_o -dep-suffix dyn -dep-suffix p
+# which means we get dependencies for .dyn_hi/.dyn_o and .p_dyn_hi/.p_dyn_o
+# rather than .dyn_hi/.dyn_o and .p_hi/.p_o.
+# With the kludge we also get .hi/.o dependencies that we don't need, but
+# they don't do any harm.
+# We also specify -static, as otherwise we end up with some dependencies
+# on .dyn_dyn_hi files
+$1_$2_MKDEPENDHS_FLAGS += -static -hisuf hi -osuf o
ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES"
@@ -34,8 +44,9 @@ $$($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 $$$$@)/.
$$(call removeFiles,$$@.tmp)
ifneq "$$($1_$2_HS_SRCS)" ""
- "$$($1_$2_HC_MK_DEPEND)" -M $$($1_$2_MKDEPENDHS_FLAGS) \
+ "$$($1_$2_HC_MK_DEPEND)" -M \
$$(filter-out -split-objs, $$($1_$2_$$(firstword
$$($1_$2_WAYS))_ALL_HC_OPTS)) \
+ $$($1_$2_MKDEPENDHS_FLAGS) \
$$($1_$2_HS_SRCS)
endif
echo "$1_$2_depfile_haskell_EXISTS = YES" >> $$@.tmp
I encountered this yesterday. I wonder whether we could just use
$$($1_$2_v_ALL_HC_OPTS) instead of $$($1_$2_$$(firstword
$$($1_$2_WAYS))_ALL_HC_OPTS), and then we wouldn't need the kludge
(though we'd still need a comment to explain why). Wouldn't that be better?
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc