summaryrefslogtreecommitdiff
path: root/rules/build-package-way.mk
diff options
context:
space:
mode:
authorBen.Lippmeier@anu.edu.au <unknown>2009-11-14 06:11:09 +0000
committerBen.Lippmeier@anu.edu.au <unknown>2009-11-14 06:11:09 +0000
commitd318df63a1b11d5ebe33dfb6c7006b6bfe8bd8f8 (patch)
tree251844c14a8941e36025b7931652bf140f1c30b3 /rules/build-package-way.mk
parent8c84944d5782f2ee60d96c02977f15ba9e7ab935 (diff)
downloadhaskell-d318df63a1b11d5ebe33dfb6c7006b6bfe8bd8f8.tar.gz
Provide extralibs when linking Windows DLLs
Diffstat (limited to 'rules/build-package-way.mk')
-rw-r--r--rules/build-package-way.mk12
1 files changed, 12 insertions, 0 deletions
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk
index 901d66fe29..26eacfe93e 100644
--- a/rules/build-package-way.mk
+++ b/rules/build-package-way.mk
@@ -51,14 +51,26 @@ $1_$2_$3_NON_HS_OBJS = $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_
$1_$2_$3_ALL_OBJS = $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS)
ifeq "$3" "dyn"
+
# Link a dynamic library
+# On windows we have to supply the extra libs this one links to when building it.
+ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
$$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS)
"$$($1_$2_HC)" $$($1_$2_$3_ALL_OBJS) \
`$$($1_$2_$3_MKSTUBOBJS)` \
-shared -dynamic -dynload deploy \
+ $$(addprefix -l,$$($1_$2_EXTRA_LIBRARIES)) \
-no-auto-link-packages $$(addprefix -package,$$($1_$2_DEPS)) \
-o $$@
else
+$$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS)
+ "$$($1_$2_HC)" $$($1_$2_$3_ALL_OBJS) \
+ `$$($1_$2_$3_MKSTUBOBJS)` \
+ -shared -dynamic -dynload deploy \
+ -no-auto-link-packages $$(addprefix -package,$$($1_$2_DEPS)) \
+ -o $$@
+endif
+else
# Build the ordinary .a library
ifeq "$$($1_$2_SplitObjs)" "YES"
$$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS)