summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac15
-rw-r--r--mk/config.mk.in1
-rw-r--r--rts/ghc.mk2
3 files changed, 17 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 0af10c19ec..22801c99a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -428,6 +428,21 @@ FP_ARG_WITH_PATH_GNU_PROG([LD], [ld])
LdCmd="$LD"
AC_SUBST([LdCmd])
+dnl ** Check for dlltool on Windows
+dnl --------------------------------------------------------------
+case $HostOS_CPP in
+cygwin32|mingw32)
+ AC_PATH_PROG(DlltoolCmd,dlltool)
+ if test -z "$DlltoolCmd"; then
+ echo "Can't find dlltool in your path, can't make DLLs."
+ exit 1
+ fi
+ ;;
+*)
+ AC_SUBST(DlltoolCmd,"")
+ ;;
+esac
+
dnl ** Which nm to use?
dnl --------------------------------------------------------------
FP_ARG_WITH_PATH_GNU_PROG([NM], [nm])
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 36dd2d3fd7..4431dd8055 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -550,6 +550,7 @@ SRC_HSC2HS_OPTS += $(foreach d,$(GMP_INCLUDE_DIRS),-I$(d))
# Mingwex Library
#
HaveLibMingwEx = @HaveLibMingwEx@
+DLLTOOL = @DlltoolCmd@
#-----------------------------------------------------------------------------
# Flex (currently unused, could be moved to glafp-utils)
diff --git a/rts/ghc.mk b/rts/ghc.mk
index 220103d2a6..a4c31d8e80 100644
--- a/rts/ghc.mk
+++ b/rts/ghc.mk
@@ -118,7 +118,7 @@ ifneq "$$(findstring dyn, $1)" ""
$$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend
"$$(RM)" $$(RM_OPTS) $$@
ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
- dlltool -d rts/win32/libHSbase.def -l rts/dist/build/win32/libHSbase.so.a
+ "$$(DLLTOOL)" -d rts/win32/libHSbase.def -l rts/dist/build/win32/libHSbase.so.a
"$$(rts_dist_HC)" -shared -dynamic -dynload deploy \
-no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) rts/dist/build/win32/libHSbase.so.a -o $$@
else