summaryrefslogtreecommitdiff
path: root/rules/hs-suffix-way-rules.mk
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2013-02-22 23:36:53 +0000
committerIan Lynagh <ian@well-typed.com>2013-02-22 23:56:38 +0000
commite2249ff2c60fdade47489e7eb537a82fe397bd00 (patch)
tree46fe054a7f2e04dbfa847228723b87c444e1fb4f /rules/hs-suffix-way-rules.mk
parenta49e9cf3ff5af48c011c7ade9338b49b667b2201 (diff)
downloadhaskell-e2249ff2c60fdade47489e7eb537a82fe397bd00.tar.gz
Make the build system use -dynamic-too if both way v and dyn are being built
Diffstat (limited to 'rules/hs-suffix-way-rules.mk')
-rw-r--r--rules/hs-suffix-way-rules.mk22
1 files changed, 20 insertions, 2 deletions
diff --git a/rules/hs-suffix-way-rules.mk b/rules/hs-suffix-way-rules.mk
index 884ed7009f..e53821554a 100644
--- a/rules/hs-suffix-way-rules.mk
+++ b/rules/hs-suffix-way-rules.mk
@@ -13,24 +13,42 @@
define hs-suffix-way-rules # args: $1 = dir, $2 = distdir, $3 = way
+ifeq "$3 $$($1_$2_DYNAMIC_TOO)" "dyn YES"
+# We only want this rule to be used for Haskell sources, not for
+# e.g. C sources, so we depend on the v_hisuf rather than v_osuf.
+$1/$2/build/%.$$(dyn_osuf): $1/$2/build/%.$$(v_hisuf)
+ @if [ ! -f $$@ ] ; then \
+ echo "Panic! $$< exists, but $$@ does not."; \
+ exit 1; \
+ fi
+
+$1/$2/build/%.$$(dyn_osuf)-boot: $1/$2/build/%.$$(v_hisuf)-boot
+ @if [ ! -f $$@ ] ; then \
+ echo "Panic! $$< exists, but $$@ does not."; \
+ exit 1; \
+ fi
+else
+
ifneq "$$(BINDIST)" "YES"
$1/$2/build/%.$$($3_hcsuf) : $1/$2/build/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
$$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -C $$< -o $$@
$1/$2/build/%.$$($3_osuf) : $1/$2/build/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
- $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
+ $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@ $$(if $$(findstring YES,$$($1_$2_DYNAMIC_TOO)),-dyno $$(addsuffix .$$(dyn_osuf),$$(basename $$@)))
$1/$2/build/%.$$($3_hcsuf) : $1/$2/build/autogen/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
$$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -C $$< -o $$@
$1/$2/build/%.$$($3_osuf) : $1/$2/build/autogen/%.hs $$(LAX_DEPS_FOLLOW) $$($1_$2_HC_DEP)
- $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
+ $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@ $$(if $$(findstring YES,$$($1_$2_DYNAMIC_TOO)),-dyno $$(addsuffix .$$(dyn_osuf),$$(basename $$@)))
endif
$$(foreach dir,$$($1_$2_HS_SRC_DIRS),\
$$(eval $$(call hs-suffix-way-rules-srcdir,$1,$2,$3,$$(dir))))
+endif
+
endef # hs-suffix-way-rules