From c1bfca04e1ef17ec837f08647fb163f4e0b67dc2 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Wed, 20 Mar 2002 22:19:06 +0000
Subject: [PATCH] Changed builtin dlls file names to make it clear they are not
 normal Unix libraries, and install them in $libdir/wine instead of $libdir to
 avoid name conflicts in /usr/lib.

---
 Make.rules.in               |    2 +
 Makefile.in                 |   36 +-
 configure                   |  599 ++++++++++----------
 configure.ac                |    3 +
 dlls/Makedll.rules.in       |   47 +-
 dlls/Makefile.in            | 1053 ++++++++++++++++++-----------------
 dlls/advapi32/Makefile.in   |    2 +-
 dlls/avicap32/Makefile.in   |    2 +-
 dlls/avifil32/Makefile.in   |    4 +-
 dlls/comctl32/Makefile.in   |    2 +-
 dlls/commdlg/Makefile.in    |    4 +-
 dlls/crtdll/Makefile.in     |    2 +-
 dlls/crypt32/Makefile.in    |    2 +-
 dlls/dciman32/Makefile.in   |    2 +-
 dlls/ddraw/Makefile.in      |    4 +-
 dlls/devenum/Makefile.in    |    2 +-
 dlls/dinput/Makefile.in     |    2 +-
 dlls/dplay/Makefile.in      |    2 +-
 dlls/dplayx/Makefile.in     |    2 +-
 dlls/dsound/Makefile.in     |    2 +-
 dlls/gdi/Makefile.in        |   11 +-
 dlls/glu32/Makefile.in      |    2 +-
 dlls/icmp/Makefile.in       |    2 +-
 dlls/imagehlp/Makefile.in   |    2 +-
 dlls/imm32/Makefile.in      |    4 +-
 dlls/kernel/Makefile.in     |   10 +-
 dlls/lzexpand/Makefile.in   |    4 +-
 dlls/make_dlls              |   65 ++-
 dlls/mapi32/Makefile.in     |    2 +-
 dlls/mpr/Makefile.in        |    2 +-
 dlls/msacm/Makefile.in      |    4 +-
 dlls/msdmo/Makefile.in      |    2 +-
 dlls/msimg32/Makefile.in    |    2 +-
 dlls/msnet32/Makefile.in    |    2 +-
 dlls/msrle32/Makefile.in    |    2 +-
 dlls/msvcrt/Makefile.in     |    2 +-
 dlls/msvcrt20/Makefile.in   |    2 +-
 dlls/msvideo/Makefile.in    |    4 +-
 dlls/netapi32/Makefile.in   |    2 +-
 dlls/ntdll/Makefile.in      |    5 +-
 dlls/odbc32/Makefile.in     |    2 +-
 dlls/ole32/Makefile.in      |    4 +-
 dlls/oleaut32/Makefile.in   |    4 +-
 dlls/olecli/Makefile.in     |    4 +-
 dlls/oledlg/Makefile.in     |    2 +-
 dlls/olepro32/Makefile.in   |    2 +-
 dlls/olesvr/Makefile.in     |    4 +-
 dlls/opengl32/Makefile.in   |    4 +-
 dlls/psapi/Makefile.in      |    2 +-
 dlls/qcap/Makefile.in       |    2 +-
 dlls/quartz/Makefile.in     |    2 +-
 dlls/rasapi32/Makefile.in   |    4 +-
 dlls/richedit/Makefile.in   |    2 +-
 dlls/rpcrt4/Makefile.in     |    2 +-
 dlls/serialui/Makefile.in   |    2 +-
 dlls/setupapi/Makefile.in   |    5 +-
 dlls/shdocvw/Makefile.in    |    2 +-
 dlls/shell32/Makefile.in    |    4 +-
 dlls/shfolder/Makefile.in   |    2 +-
 dlls/shfolder/shfolder.spec |    2 +-
 dlls/shlwapi/Makefile.in    |    2 +-
 dlls/sti/Makefile.in        |    2 +-
 dlls/tapi32/Makefile.in     |    2 +-
 dlls/ttydrv/Makefile.in     |    5 +-
 dlls/url/Makefile.in        |    2 +-
 dlls/urlmon/Makefile.in     |    2 +-
 dlls/user/Makefile.in       |   10 +-
 dlls/version/Makefile.in    |    4 +-
 dlls/win32s/Makefile.in     |    5 +-
 dlls/winaspi/Makefile.in    |    4 +-
 dlls/winedos/Makefile.in    |    5 +-
 dlls/wineps/Makefile.in     |    7 +-
 dlls/wininet/Makefile.in    |    2 +-
 dlls/winmm/Makefile.in      |    4 +-
 dlls/winnls/Makefile.in     |    4 +-
 dlls/winsock/Makefile.in    |    7 +-
 dlls/winspool/Makefile.in   |    4 +-
 dlls/wintrust/Makefile.in   |    2 +-
 dlls/wow32/Makefile.in      |    2 +-
 dlls/wsock32/Makefile.in    |    2 +-
 dlls/x11drv/Makefile.in     |    8 +-
 include/Makefile.in         |    2 +-
 library/Makefile.in         |    2 +-
 library/loader.c            |   77 +--
 tools/winebuild/import.c    |   19 +-
 tools/winebuild/spec32.c    |    4 +-
 86 files changed, 1138 insertions(+), 1013 deletions(-)

diff --git a/Make.rules.in b/Make.rules.in
index 4ca02141ecb..24989426bab 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -36,6 +36,7 @@ YACC      = @YACC@
 LEX       = @LEX@
 LEXLIB    = @LEXLIB@
 LIBEXT    = @LIBEXT@
+DLLEXT    = @DLLEXT@
 LDSHARED  = @LDSHARED@
 DLLWRAP   = @DLLWRAP@
 DLLWRAPFLAGS = --add-stdcall-alias
@@ -93,6 +94,7 @@ bindir          = @bindir@
 libdir          = @libdir@
 infodir         = @infodir@
 mandir          = @mandir@
+dlldir          = @libdir@/wine
 prog_manext     = 1
 conf_manext     = 5
 includedir      = @includedir@/wine
diff --git a/Makefile.in b/Makefile.in
index e357cc21673..cf35f808af9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,7 +21,7 @@ VPATH     = @srcdir@
 LIBEXT    = @LIBEXT@
 LDCONFIG  = @LDCONFIG@
 MODULE    = wine
-IMPORTS   = ntdll
+IMPORTS   = ntdll.dll
 
 # Stand-alone programs
 PROGRAMS = \
@@ -39,8 +39,12 @@ LIBRARIES = \
 	tsx11/libwine_tsx11.$(LIBEXT) \
 	unicode/libwine_unicode.$(LIBEXT)
 
+# Dlls that we need to link against (should go away)
+LINKABLE_DLLS = winspool.drv x11drv.dll user32.dll gdi32.dll kernel32.dll ntdll.dll
+
 # Libraries symlinks to create at the top level
 LIBSYMLINKS = \
+	$(LINKABLE_DLLS:%=lib%.$(LIBEXT)) \
 	libwine.$(LIBEXT) \
 	libwine_tsx11.$(LIBEXT) \
 	libwine_unicode.$(LIBEXT) \
@@ -70,7 +74,7 @@ INSTALLSUBDIRS = \
 EMUOBJS = \
 	miscemu/miscemu.o
 
-all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) $(LIBSYMLINKS) wine
+all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) wine
 	@echo "Wine build complete."
 
 WINAPI_CHECK_EXTRA_FLAGS = --global
@@ -81,10 +85,10 @@ Make.rules: Make.rules.in configure
 	@echo $? is newer than 'Make.rules', please rerun ./configure!
 	@exit 1
 
-wine: dlls $(EMUOBJS)
-	$(CC) -o wine $(EMUOBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBS) $(LDFLAGS)
+wine: $(EMUOBJS) $(LIBSYMLINKS) $(IMPORTS:%=lib%.$(LIBEXT)) library/libwine.$(LIBEXT)
+	$(CC) -o wine $(EMUOBJS) -L. $(IMPORTS:%=-l%) $(LIBWINE) $(LIBS) $(LDFLAGS)
 
-install_wine:
+install_wine: dummy
 	[ -d $(bindir) ] || $(MKDIR) $(bindir)
 	$(INSTALL_PROGRAM) wine $(bindir)/wine
 
@@ -97,6 +101,8 @@ uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__)
 $(EMUOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy
 	@cd `dirname $@` && $(MAKE) `basename $@`
 
+# Symlinks to libraries that we need to link against
+
 libwine.$(LIBEXT): library/libwine.$(LIBEXT)
 	$(RM) $@ && $(LN_S) library/libwine.$(LIBEXT) $@
 
@@ -109,6 +115,26 @@ libwine_unicode.$(LIBEXT): unicode/libwine_unicode.$(LIBEXT)
 libwine_uuid.a: ole/libwine_uuid.a
 	$(RM) $@ && $(LN_S) ole/libwine_uuid.a $@
 
+libwinspool.drv.$(LIBEXT): dlls/winspool.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/winspool.drv$(DLLEXT) $@
+
+libx11drv.dll.$(LIBEXT): dlls/x11drv.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/x11drv.dll$(DLLEXT) $@
+
+libuser32.dll.$(LIBEXT): dlls/user32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/user32.dll$(DLLEXT) $@
+
+libgdi32.dll.$(LIBEXT): dlls/gdi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/gdi32.dll$(DLLEXT) $@
+
+libkernel32.dll.$(LIBEXT): dlls/kernel32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/kernel32.dll$(DLLEXT) $@
+
+libntdll.dll.$(LIBEXT): dlls/ntdll.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dlls/ntdll.dll$(DLLEXT) $@
+
+$(LINKABLE_DLLS:%=dlls/%$(DLLEXT)): dlls
+
 # Dependencies between directories
 
 $(PROGRAMS): tools
diff --git a/configure b/configure
index 6b88eccd5b7..6635f37a51c 100755
--- a/configure
+++ b/configure
@@ -7678,15 +7678,17 @@ LDPATH=""
 
 if test "$LIBEXT" = "so"; then
     DLLFLAGS="-fPIC"
+    DLLEXT=".so"
     LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
 elif test "$LIBEXT" = "dll"; then
     #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
+    DLLEXT=""
     LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
 fi
 
 wine_cv_libc_reentrant=no
 
-  echo "$as_me:7689: checking for reentrant libc: __errno_location" >&5
+  echo "$as_me:7691: checking for reentrant libc: __errno_location" >&5
 echo $ECHO_N "checking for reentrant libc: __errno_location... $ECHO_C" >&6
 if test "${wine_cv_libc_r___errno_location+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7695,7 +7697,7 @@ else
   wine_cv_libc_r___errno_location=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7698 "configure"
+#line 7700 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
@@ -7703,15 +7705,15 @@ int *__errno_location(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7706: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7708: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7709: \$? = $ac_status" >&5
+  echo "$as_me:7711: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7711: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7713: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7714: \$? = $ac_status" >&5
+  echo "$as_me:7716: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_libc_r___errno_location=yes
 else
@@ -7724,14 +7726,14 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:7727: result: $wine_cv_libc_r___errno_location" >&5
+echo "$as_me:7729: result: $wine_cv_libc_r___errno_location" >&5
 echo "${ECHO_T}$wine_cv_libc_r___errno_location" >&6
 if test "$wine_cv_libc_r___errno_location" = "yes"
 then
     wine_cv_libc_reentrant=__errno_location
 fi
 
-  echo "$as_me:7734: checking for reentrant libc: __error" >&5
+  echo "$as_me:7736: checking for reentrant libc: __error" >&5
 echo $ECHO_N "checking for reentrant libc: __error... $ECHO_C" >&6
 if test "${wine_cv_libc_r___error+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7740,7 +7742,7 @@ else
   wine_cv_libc_r___error=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7743 "configure"
+#line 7745 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
@@ -7748,15 +7750,15 @@ int *__error(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7751: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7753: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7754: \$? = $ac_status" >&5
+  echo "$as_me:7756: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7756: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7758: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7759: \$? = $ac_status" >&5
+  echo "$as_me:7761: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_libc_r___error=yes
 else
@@ -7769,14 +7771,14 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:7772: result: $wine_cv_libc_r___error" >&5
+echo "$as_me:7774: result: $wine_cv_libc_r___error" >&5
 echo "${ECHO_T}$wine_cv_libc_r___error" >&6
 if test "$wine_cv_libc_r___error" = "yes"
 then
     wine_cv_libc_reentrant=__error
 fi
 
-  echo "$as_me:7779: checking for reentrant libc: ___errno" >&5
+  echo "$as_me:7781: checking for reentrant libc: ___errno" >&5
 echo $ECHO_N "checking for reentrant libc: ___errno... $ECHO_C" >&6
 if test "${wine_cv_libc_r____errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7785,7 +7787,7 @@ else
   wine_cv_libc_r____errno=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7788 "configure"
+#line 7790 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
@@ -7793,15 +7795,15 @@ int *___errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7796: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7798: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7799: \$? = $ac_status" >&5
+  echo "$as_me:7801: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7801: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7803: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7804: \$? = $ac_status" >&5
+  echo "$as_me:7806: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_libc_r____errno=yes
 else
@@ -7814,14 +7816,14 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:7817: result: $wine_cv_libc_r____errno" >&5
+echo "$as_me:7819: result: $wine_cv_libc_r____errno" >&5
 echo "${ECHO_T}$wine_cv_libc_r____errno" >&6
 if test "$wine_cv_libc_r____errno" = "yes"
 then
     wine_cv_libc_reentrant=___errno
 fi
 
-  echo "$as_me:7824: checking for reentrant libc: __thr_errno" >&5
+  echo "$as_me:7826: checking for reentrant libc: __thr_errno" >&5
 echo $ECHO_N "checking for reentrant libc: __thr_errno... $ECHO_C" >&6
 if test "${wine_cv_libc_r___thr_errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7830,7 +7832,7 @@ else
   wine_cv_libc_r___thr_errno=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7833 "configure"
+#line 7835 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
@@ -7838,15 +7840,15 @@ int *__thr_errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7841: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7843: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7844: \$? = $ac_status" >&5
+  echo "$as_me:7846: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7846: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7848: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7849: \$? = $ac_status" >&5
+  echo "$as_me:7851: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_libc_r___thr_errno=yes
 else
@@ -7859,14 +7861,14 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:7862: result: $wine_cv_libc_r___thr_errno" >&5
+echo "$as_me:7864: result: $wine_cv_libc_r___thr_errno" >&5
 echo "${ECHO_T}$wine_cv_libc_r___thr_errno" >&6
 if test "$wine_cv_libc_r___thr_errno" = "yes"
 then
     wine_cv_libc_reentrant=__thr_errno
 fi
 
-  echo "$as_me:7869: checking for reentrant libc: __errno" >&5
+  echo "$as_me:7871: checking for reentrant libc: __errno" >&5
 echo $ECHO_N "checking for reentrant libc: __errno... $ECHO_C" >&6
 if test "${wine_cv_libc_r___errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7875,7 +7877,7 @@ else
   wine_cv_libc_r___errno=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7878 "configure"
+#line 7880 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
@@ -7883,15 +7885,15 @@ int *__errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7886: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7888: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7889: \$? = $ac_status" >&5
+  echo "$as_me:7891: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7891: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7893: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7894: \$? = $ac_status" >&5
+  echo "$as_me:7896: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_libc_r___errno=yes
 else
@@ -7904,7 +7906,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:7907: result: $wine_cv_libc_r___errno" >&5
+echo "$as_me:7909: result: $wine_cv_libc_r___errno" >&5
 echo "${ECHO_T}$wine_cv_libc_r___errno" >&6
 if test "$wine_cv_libc_r___errno" = "yes"
 then
@@ -7922,7 +7924,7 @@ fi
 
 if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
 then
-echo "$as_me:7925: checking for reentrant X libraries" >&5
+echo "$as_me:7927: checking for reentrant X libraries" >&5
 echo $ECHO_N "checking for reentrant X libraries... $ECHO_C" >&6
 if test "${wine_cv_x_reentrant+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7954,7 +7956,7 @@ else
 	fi
     fi
 fi
-echo "$as_me:7957: result: $wine_cv_x_reentrant" >&5
+echo "$as_me:7959: result: $wine_cv_x_reentrant" >&5
 echo "${ECHO_T}$wine_cv_x_reentrant" >&6
 else
     wine_cv_x_reentrant=no
@@ -7970,13 +7972,13 @@ fi
 
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
-echo "$as_me:7973: checking for working alloca.h" >&5
+echo "$as_me:7975: checking for working alloca.h" >&5
 echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
 if test "${ac_cv_working_alloca_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7979 "configure"
+#line 7981 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int
@@ -7988,16 +7990,16 @@ char *p = (char *) alloca (2 * sizeof (int));
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7991: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7993: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7994: \$? = $ac_status" >&5
+  echo "$as_me:7996: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7997: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7999: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8000: \$? = $ac_status" >&5
+  echo "$as_me:8002: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_working_alloca_h=yes
 else
@@ -8007,7 +8009,7 @@ ac_cv_working_alloca_h=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8010: result: $ac_cv_working_alloca_h" >&5
+echo "$as_me:8012: result: $ac_cv_working_alloca_h" >&5
 echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
 if test $ac_cv_working_alloca_h = yes; then
 
@@ -8017,13 +8019,13 @@ EOF
 
 fi
 
-echo "$as_me:8020: checking for alloca" >&5
+echo "$as_me:8022: checking for alloca" >&5
 echo $ECHO_N "checking for alloca... $ECHO_C" >&6
 if test "${ac_cv_func_alloca_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8026 "configure"
+#line 8028 "configure"
 #include "confdefs.h"
 #ifdef __GNUC__
 # define alloca __builtin_alloca
@@ -8055,16 +8057,16 @@ char *p = (char *) alloca (1);
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8058: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8060: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8061: \$? = $ac_status" >&5
+  echo "$as_me:8063: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8064: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8066: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8067: \$? = $ac_status" >&5
+  echo "$as_me:8069: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_alloca_works=yes
 else
@@ -8074,7 +8076,7 @@ ac_cv_func_alloca_works=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8077: result: $ac_cv_func_alloca_works" >&5
+echo "$as_me:8079: result: $ac_cv_func_alloca_works" >&5
 echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
 
 if test $ac_cv_func_alloca_works = yes; then
@@ -8095,13 +8097,13 @@ cat >>confdefs.h <<\EOF
 #define C_ALLOCA 1
 EOF
 
-echo "$as_me:8098: checking whether \`alloca.c' needs Cray hooks" >&5
+echo "$as_me:8100: checking whether \`alloca.c' needs Cray hooks" >&5
 echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
 if test "${ac_cv_os_cray+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8104 "configure"
+#line 8106 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -8119,18 +8121,18 @@ fi
 rm -f conftest*
 
 fi
-echo "$as_me:8122: result: $ac_cv_os_cray" >&5
+echo "$as_me:8124: result: $ac_cv_os_cray" >&5
 echo "${ECHO_T}$ac_cv_os_cray" >&6
 if test $ac_cv_os_cray = yes; then
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:8127: checking for $ac_func" >&5
+echo "$as_me:8129: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8133 "configure"
+#line 8135 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -8161,16 +8163,16 @@ f = $ac_func;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8164: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8166: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8167: \$? = $ac_status" >&5
+  echo "$as_me:8169: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8170: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8172: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8173: \$? = $ac_status" >&5
+  echo "$as_me:8175: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -8180,7 +8182,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8183: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:8185: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
 
@@ -8194,7 +8196,7 @@ fi
   done
 fi
 
-echo "$as_me:8197: checking stack direction for C alloca" >&5
+echo "$as_me:8199: checking stack direction for C alloca" >&5
 echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
 if test "${ac_cv_c_stack_direction+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8203,7 +8205,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8206 "configure"
+#line 8208 "configure"
 #include "confdefs.h"
 int
 find_stack_direction ()
@@ -8226,15 +8228,15 @@ main ()
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8229: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8231: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8232: \$? = $ac_status" >&5
+  echo "$as_me:8234: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8234: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8236: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8237: \$? = $ac_status" >&5
+  echo "$as_me:8239: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_stack_direction=1
 else
@@ -8246,7 +8248,7 @@ fi
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:8249: result: $ac_cv_c_stack_direction" >&5
+echo "$as_me:8251: result: $ac_cv_c_stack_direction" >&5
 echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
 
 cat >>confdefs.h <<EOF
@@ -8302,13 +8304,13 @@ for ac_func in \
 
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:8305: checking for $ac_func" >&5
+echo "$as_me:8307: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8311 "configure"
+#line 8313 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -8339,16 +8341,16 @@ f = $ac_func;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8342: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8344: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8345: \$? = $ac_status" >&5
+  echo "$as_me:8347: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8348: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8350: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8351: \$? = $ac_status" >&5
+  echo "$as_me:8353: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -8358,7 +8360,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8361: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:8363: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -8430,23 +8432,23 @@ for ac_header in \
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8433: checking for $ac_header" >&5
+echo "$as_me:8435: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8439 "configure"
+#line 8441 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:8443: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:8445: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:8449: \$? = $ac_status" >&5
+  echo "$as_me:8451: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -8465,7 +8467,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:8468: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:8470: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -8475,13 +8477,13 @@ EOF
 fi
 done
 
-echo "$as_me:8478: checking whether stat file-mode macros are broken" >&5
+echo "$as_me:8480: checking whether stat file-mode macros are broken" >&5
 echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
 if test "${ac_cv_header_stat_broken+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8484 "configure"
+#line 8486 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -8520,7 +8522,7 @@ fi
 rm -f conftest*
 
 fi
-echo "$as_me:8523: result: $ac_cv_header_stat_broken" >&5
+echo "$as_me:8525: result: $ac_cv_header_stat_broken" >&5
 echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
 if test $ac_cv_header_stat_broken = yes; then
 
@@ -8530,7 +8532,7 @@ EOF
 
 fi
 
-echo "$as_me:8533: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:8535: checking for $CC option to accept ANSI C" >&5
 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8538,7 +8540,7 @@ else
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line 8541 "configure"
+#line 8543 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -8587,16 +8589,16 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8590: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8592: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8593: \$? = $ac_status" >&5
+  echo "$as_me:8595: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8596: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8598: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8599: \$? = $ac_status" >&5
+  echo "$as_me:8601: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_stdc=$ac_arg
 break
@@ -8613,21 +8615,21 @@ fi
 
 case "x$ac_cv_prog_cc_stdc" in
   x|xno)
-    echo "$as_me:8616: result: none needed" >&5
+    echo "$as_me:8618: result: none needed" >&5
 echo "${ECHO_T}none needed" >&6 ;;
   *)
-    echo "$as_me:8619: result: $ac_cv_prog_cc_stdc" >&5
+    echo "$as_me:8621: result: $ac_cv_prog_cc_stdc" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
     CC="$CC $ac_cv_prog_cc_stdc" ;;
 esac
 
-echo "$as_me:8624: checking for an ANSI C-conforming const" >&5
+echo "$as_me:8626: checking for an ANSI C-conforming const" >&5
 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
 if test "${ac_cv_c_const+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8630 "configure"
+#line 8632 "configure"
 #include "confdefs.h"
 
 int
@@ -8685,16 +8687,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8688: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8690: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8691: \$? = $ac_status" >&5
+  echo "$as_me:8693: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8694: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8696: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8697: \$? = $ac_status" >&5
+  echo "$as_me:8699: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
@@ -8704,7 +8706,7 @@ ac_cv_c_const=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8707: result: $ac_cv_c_const" >&5
+echo "$as_me:8709: result: $ac_cv_c_const" >&5
 echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
 
@@ -8714,7 +8716,7 @@ EOF
 
 fi
 
-echo "$as_me:8717: checking for inline" >&5
+echo "$as_me:8719: checking for inline" >&5
 echo $ECHO_N "checking for inline... $ECHO_C" >&6
 if test "${ac_cv_c_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8722,7 +8724,7 @@ else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat >conftest.$ac_ext <<_ACEOF
-#line 8725 "configure"
+#line 8727 "configure"
 #include "confdefs.h"
 #ifndef __cplusplus
 static $ac_kw int static_foo () {return 0; }
@@ -8731,16 +8733,16 @@ $ac_kw int foo () {return 0; }
 
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8734: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8736: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8737: \$? = $ac_status" >&5
+  echo "$as_me:8739: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8740: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8742: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8743: \$? = $ac_status" >&5
+  echo "$as_me:8745: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_inline=$ac_kw; break
 else
@@ -8751,7 +8753,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 done
 
 fi
-echo "$as_me:8754: result: $ac_cv_c_inline" >&5
+echo "$as_me:8756: result: $ac_cv_c_inline" >&5
 echo "${ECHO_T}$ac_cv_c_inline" >&6
 case $ac_cv_c_inline in
   inline | yes) ;;
@@ -8766,13 +8768,13 @@ EOF
  ;;
 esac
 
-echo "$as_me:8769: checking for ANSI C header files" >&5
+echo "$as_me:8771: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8775 "configure"
+#line 8777 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -8780,13 +8782,13 @@ else
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:8783: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:8785: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:8789: \$? = $ac_status" >&5
+  echo "$as_me:8791: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -8808,7 +8810,7 @@ rm -f conftest.err conftest.$ac_ext
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 8811 "configure"
+#line 8813 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -8826,7 +8828,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 8829 "configure"
+#line 8831 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -8847,7 +8849,7 @@ if test $ac_cv_header_stdc = yes; then
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8850 "configure"
+#line 8852 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -8873,15 +8875,15 @@ main ()
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8876: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8878: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8879: \$? = $ac_status" >&5
+  echo "$as_me:8881: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8881: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8883: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8884: \$? = $ac_status" >&5
+  echo "$as_me:8886: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -8894,7 +8896,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
-echo "$as_me:8897: result: $ac_cv_header_stdc" >&5
+echo "$as_me:8899: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -8910,28 +8912,28 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
                   inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8913: checking for $ac_header" >&5
+echo "$as_me:8915: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8919 "configure"
+#line 8921 "configure"
 #include "confdefs.h"
 $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8925: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8927: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8928: \$? = $ac_status" >&5
+  echo "$as_me:8930: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8931: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8933: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8934: \$? = $ac_status" >&5
+  echo "$as_me:8936: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -8941,7 +8943,7 @@ eval "$as_ac_Header=no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8944: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:8946: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -8951,13 +8953,13 @@ EOF
 fi
 done
 
-echo "$as_me:8954: checking for mode_t" >&5
+echo "$as_me:8956: checking for mode_t" >&5
 echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
 if test "${ac_cv_type_mode_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8960 "configure"
+#line 8962 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8972,16 +8974,16 @@ if (sizeof (mode_t))
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8975: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8977: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8978: \$? = $ac_status" >&5
+  echo "$as_me:8980: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8981: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8983: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8984: \$? = $ac_status" >&5
+  echo "$as_me:8986: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_mode_t=yes
 else
@@ -8991,7 +8993,7 @@ ac_cv_type_mode_t=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8994: result: $ac_cv_type_mode_t" >&5
+echo "$as_me:8996: result: $ac_cv_type_mode_t" >&5
 echo "${ECHO_T}$ac_cv_type_mode_t" >&6
 if test $ac_cv_type_mode_t = yes; then
   :
@@ -9003,13 +9005,13 @@ EOF
 
 fi
 
-echo "$as_me:9006: checking for off_t" >&5
+echo "$as_me:9008: checking for off_t" >&5
 echo $ECHO_N "checking for off_t... $ECHO_C" >&6
 if test "${ac_cv_type_off_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9012 "configure"
+#line 9014 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9024,16 +9026,16 @@ if (sizeof (off_t))
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9027: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9029: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9030: \$? = $ac_status" >&5
+  echo "$as_me:9032: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9033: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9035: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9036: \$? = $ac_status" >&5
+  echo "$as_me:9038: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_off_t=yes
 else
@@ -9043,7 +9045,7 @@ ac_cv_type_off_t=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9046: result: $ac_cv_type_off_t" >&5
+echo "$as_me:9048: result: $ac_cv_type_off_t" >&5
 echo "${ECHO_T}$ac_cv_type_off_t" >&6
 if test $ac_cv_type_off_t = yes; then
   :
@@ -9055,13 +9057,13 @@ EOF
 
 fi
 
-echo "$as_me:9058: checking for pid_t" >&5
+echo "$as_me:9060: checking for pid_t" >&5
 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
 if test "${ac_cv_type_pid_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9064 "configure"
+#line 9066 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9076,16 +9078,16 @@ if (sizeof (pid_t))
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9079: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9081: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9082: \$? = $ac_status" >&5
+  echo "$as_me:9084: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9085: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9087: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9088: \$? = $ac_status" >&5
+  echo "$as_me:9090: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_pid_t=yes
 else
@@ -9095,7 +9097,7 @@ ac_cv_type_pid_t=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9098: result: $ac_cv_type_pid_t" >&5
+echo "$as_me:9100: result: $ac_cv_type_pid_t" >&5
 echo "${ECHO_T}$ac_cv_type_pid_t" >&6
 if test $ac_cv_type_pid_t = yes; then
   :
@@ -9107,13 +9109,13 @@ EOF
 
 fi
 
-echo "$as_me:9110: checking for size_t" >&5
+echo "$as_me:9112: checking for size_t" >&5
 echo $ECHO_N "checking for size_t... $ECHO_C" >&6
 if test "${ac_cv_type_size_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9116 "configure"
+#line 9118 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9128,16 +9130,16 @@ if (sizeof (size_t))
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9131: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9133: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9134: \$? = $ac_status" >&5
+  echo "$as_me:9136: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9137: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9139: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9140: \$? = $ac_status" >&5
+  echo "$as_me:9142: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_size_t=yes
 else
@@ -9147,7 +9149,7 @@ ac_cv_type_size_t=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9150: result: $ac_cv_type_size_t" >&5
+echo "$as_me:9152: result: $ac_cv_type_size_t" >&5
 echo "${ECHO_T}$ac_cv_type_size_t" >&6
 if test $ac_cv_type_size_t = yes; then
   :
@@ -9159,13 +9161,13 @@ EOF
 
 fi
 
-echo "$as_me:9162: checking for long long" >&5
+echo "$as_me:9164: checking for long long" >&5
 echo $ECHO_N "checking for long long... $ECHO_C" >&6
 if test "${ac_cv_type_long_long+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9168 "configure"
+#line 9170 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9180,16 +9182,16 @@ if (sizeof (long long))
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9183: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9185: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9186: \$? = $ac_status" >&5
+  echo "$as_me:9188: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9189: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9191: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9192: \$? = $ac_status" >&5
+  echo "$as_me:9194: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_long_long=yes
 else
@@ -9199,10 +9201,10 @@ ac_cv_type_long_long=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9202: result: $ac_cv_type_long_long" >&5
+echo "$as_me:9204: result: $ac_cv_type_long_long" >&5
 echo "${ECHO_T}$ac_cv_type_long_long" >&6
 
-echo "$as_me:9205: checking size of long long" >&5
+echo "$as_me:9207: checking size of long long" >&5
 echo $ECHO_N "checking size of long long... $ECHO_C" >&6
 if test "${ac_cv_sizeof_long_long+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9211,7 +9213,7 @@ else
   if test "$cross_compiling" = yes; then
   # Depending upon the size, compute the lo and hi bounds.
 cat >conftest.$ac_ext <<_ACEOF
-#line 9214 "configure"
+#line 9216 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9223,21 +9225,21 @@ int _array_ [1 - 2 * !((sizeof (long long)) >= 0)]
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9226: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9228: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9229: \$? = $ac_status" >&5
+  echo "$as_me:9231: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9232: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9234: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9235: \$? = $ac_status" >&5
+  echo "$as_me:9237: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=0 ac_mid=0
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 9240 "configure"
+#line 9242 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9249,16 +9251,16 @@ int _array_ [1 - 2 * !((sizeof (long long)) <= $ac_mid)]
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9252: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9254: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9255: \$? = $ac_status" >&5
+  echo "$as_me:9257: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9258: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9260: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9261: \$? = $ac_status" >&5
+  echo "$as_me:9263: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid; break
 else
@@ -9274,7 +9276,7 @@ cat conftest.$ac_ext >&5
 ac_hi=-1 ac_mid=-1
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 9277 "configure"
+#line 9279 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9286,16 +9288,16 @@ int _array_ [1 - 2 * !((sizeof (long long)) >= $ac_mid)]
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9289: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9291: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9292: \$? = $ac_status" >&5
+  echo "$as_me:9294: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9295: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9297: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9298: \$? = $ac_status" >&5
+  echo "$as_me:9300: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=$ac_mid; break
 else
@@ -9311,7 +9313,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 while test "x$ac_lo" != "x$ac_hi"; do
   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
   cat >conftest.$ac_ext <<_ACEOF
-#line 9314 "configure"
+#line 9316 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9323,16 +9325,16 @@ int _array_ [1 - 2 * !((sizeof (long long)) <= $ac_mid)]
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9326: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9328: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9329: \$? = $ac_status" >&5
+  echo "$as_me:9331: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9332: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9334: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9335: \$? = $ac_status" >&5
+  echo "$as_me:9337: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid
 else
@@ -9345,12 +9347,12 @@ done
 ac_cv_sizeof_long_long=$ac_lo
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:9348: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:9350: error: cannot run test program while cross compiling" >&5
 echo "$as_me: error: cannot run test program while cross compiling" >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9353 "configure"
+#line 9355 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9366,15 +9368,15 @@ fclose (f);
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9369: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9371: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9372: \$? = $ac_status" >&5
+  echo "$as_me:9374: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:9374: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9376: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9377: \$? = $ac_status" >&5
+  echo "$as_me:9379: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sizeof_long_long=`cat conftest.val`
 else
@@ -9390,19 +9392,19 @@ else
   ac_cv_sizeof_long_long=0
 fi
 fi
-echo "$as_me:9393: result: $ac_cv_sizeof_long_long" >&5
+echo "$as_me:9395: result: $ac_cv_sizeof_long_long" >&5
 echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6
 cat >>confdefs.h <<EOF
 #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
 EOF
 
-echo "$as_me:9399: checking whether linux/input.h is for real" >&5
+echo "$as_me:9401: checking whether linux/input.h is for real" >&5
 echo $ECHO_N "checking whether linux/input.h is for real... $ECHO_C" >&6
 if test "${wine_cv_linux_input_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9405 "configure"
+#line 9407 "configure"
 #include "confdefs.h"
 
 	    #include <linux/input.h>
@@ -9420,16 +9422,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9423: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9425: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9426: \$? = $ac_status" >&5
+  echo "$as_me:9428: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9429: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9431: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9432: \$? = $ac_status" >&5
+  echo "$as_me:9434: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_linux_input_h=yes
 else
@@ -9440,7 +9442,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9443: result: $wine_cv_linux_input_h" >&5
+echo "$as_me:9445: result: $wine_cv_linux_input_h" >&5
 echo "${ECHO_T}$wine_cv_linux_input_h" >&6
     if test "$wine_cv_linux_input_h" = "yes"
     then
@@ -9451,13 +9453,13 @@ EOF
 
     fi
 
-echo "$as_me:9454: checking whether we can use re-entrant gethostbyname_r Linux style" >&5
+echo "$as_me:9456: checking whether we can use re-entrant gethostbyname_r Linux style" >&5
 echo $ECHO_N "checking whether we can use re-entrant gethostbyname_r Linux style... $ECHO_C" >&6
 if test "${wine_cv_linux_gethostbyname_r_6+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9460 "configure"
+#line 9462 "configure"
 #include "confdefs.h"
 
 #include <netdb.h>
@@ -9483,16 +9485,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9486: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9488: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9489: \$? = $ac_status" >&5
+  echo "$as_me:9491: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9492: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9494: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9495: \$? = $ac_status" >&5
+  echo "$as_me:9497: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_linux_gethostbyname_r_6=yes
 else
@@ -9504,7 +9506,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9507: result: $wine_cv_linux_gethostbyname_r_6" >&5
+echo "$as_me:9509: result: $wine_cv_linux_gethostbyname_r_6" >&5
 echo "${ECHO_T}$wine_cv_linux_gethostbyname_r_6" >&6
    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
    then
@@ -9517,13 +9519,13 @@ EOF
 
 if test "$ac_cv_header_linux_joystick_h" = "yes"
 then
-   echo "$as_me:9520: checking whether linux/joystick.h uses the Linux 2.2+ API" >&5
+   echo "$as_me:9522: checking whether linux/joystick.h uses the Linux 2.2+ API" >&5
 echo $ECHO_N "checking whether linux/joystick.h uses the Linux 2.2+ API... $ECHO_C" >&6
 if test "${wine_cv_linux_joystick_22_api+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9526 "configure"
+#line 9528 "configure"
 #include "confdefs.h"
 
 	#include <sys/ioctl.h>
@@ -9543,16 +9545,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9546: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9548: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9549: \$? = $ac_status" >&5
+  echo "$as_me:9551: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9552: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9554: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9555: \$? = $ac_status" >&5
+  echo "$as_me:9557: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_linux_joystick_22_api=yes
 else
@@ -9563,7 +9565,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9566: result: $wine_cv_linux_joystick_22_api" >&5
+echo "$as_me:9568: result: $wine_cv_linux_joystick_22_api" >&5
 echo "${ECHO_T}$wine_cv_linux_joystick_22_api" >&6
    if test "$wine_cv_linux_joystick_22_api" = "yes"
    then
@@ -9577,13 +9579,13 @@ fi
 
 if test "$ac_cv_header_sys_vfs_h" = "yes"
 then
-    echo "$as_me:9580: checking whether sys/vfs.h defines statfs" >&5
+    echo "$as_me:9582: checking whether sys/vfs.h defines statfs" >&5
 echo $ECHO_N "checking whether sys/vfs.h defines statfs... $ECHO_C" >&6
 if test "${wine_cv_sys_vfs_has_statfs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9586 "configure"
+#line 9588 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -9605,16 +9607,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9608: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9610: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9611: \$? = $ac_status" >&5
+  echo "$as_me:9613: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9614: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9616: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9617: \$? = $ac_status" >&5
+  echo "$as_me:9619: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_sys_vfs_has_statfs=yes
 else
@@ -9626,7 +9628,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9629: result: $wine_cv_sys_vfs_has_statfs" >&5
+echo "$as_me:9631: result: $wine_cv_sys_vfs_has_statfs" >&5
 echo "${ECHO_T}$wine_cv_sys_vfs_has_statfs" >&6
     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
     then
@@ -9640,13 +9642,13 @@ fi
 
 if test "$ac_cv_header_sys_statfs_h" = "yes"
 then
-    echo "$as_me:9643: checking whether sys/statfs.h defines statfs" >&5
+    echo "$as_me:9645: checking whether sys/statfs.h defines statfs" >&5
 echo $ECHO_N "checking whether sys/statfs.h defines statfs... $ECHO_C" >&6
 if test "${wine_cv_sys_statfs_has_statfs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9649 "configure"
+#line 9651 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -9666,16 +9668,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9669: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9671: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9672: \$? = $ac_status" >&5
+  echo "$as_me:9674: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9675: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9677: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9678: \$? = $ac_status" >&5
+  echo "$as_me:9680: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_sys_statfs_has_statfs=yes
 else
@@ -9687,7 +9689,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9690: result: $wine_cv_sys_statfs_has_statfs" >&5
+echo "$as_me:9692: result: $wine_cv_sys_statfs_has_statfs" >&5
 echo "${ECHO_T}$wine_cv_sys_statfs_has_statfs" >&6
     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
     then
@@ -9701,13 +9703,13 @@ fi
 
 if test "$ac_cv_header_sys_mount_h" = "yes"
 then
-    echo "$as_me:9704: checking whether sys/mount.h defines statfs" >&5
+    echo "$as_me:9706: checking whether sys/mount.h defines statfs" >&5
 echo $ECHO_N "checking whether sys/mount.h defines statfs... $ECHO_C" >&6
 if test "${wine_cv_sys_mount_has_statfs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9710 "configure"
+#line 9712 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -9727,16 +9729,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9730: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9732: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9733: \$? = $ac_status" >&5
+  echo "$as_me:9735: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9736: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9738: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9739: \$? = $ac_status" >&5
+  echo "$as_me:9741: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   wine_cv_sys_mount_has_statfs=yes
 else
@@ -9748,7 +9750,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9751: result: $wine_cv_sys_mount_has_statfs" >&5
+echo "$as_me:9753: result: $wine_cv_sys_mount_has_statfs" >&5
 echo "${ECHO_T}$wine_cv_sys_mount_has_statfs" >&6
     if test "$wine_cv_sys_mount_has_statfs" = "yes"
     then
@@ -9760,13 +9762,13 @@ EOF
     fi
 fi
 
-echo "$as_me:9763: checking for f_bfree in struct statfs" >&5
+echo "$as_me:9765: checking for f_bfree in struct statfs" >&5
 echo $ECHO_N "checking for f_bfree in struct statfs... $ECHO_C" >&6
 if test "${ac_cv_c_statfs_f_bfree+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9769 "configure"
+#line 9771 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_SYS_PARAM_H
@@ -9792,16 +9794,16 @@ struct statfs s; s.f_bfree = 0
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9795: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9797: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9798: \$? = $ac_status" >&5
+  echo "$as_me:9800: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9801: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9803: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9804: \$? = $ac_status" >&5
+  echo "$as_me:9806: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_statfs_f_bfree="yes"
 else
@@ -9811,7 +9813,7 @@ ac_cv_c_statfs_f_bfree="no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9814: result: $ac_cv_c_statfs_f_bfree" >&5
+echo "$as_me:9816: result: $ac_cv_c_statfs_f_bfree" >&5
 echo "${ECHO_T}$ac_cv_c_statfs_f_bfree" >&6
 if  test "x$ac_cv_c_statfs_f_bfree" = "xyes"; then
 
@@ -9821,13 +9823,13 @@ EOF
 
 fi
 
-echo "$as_me:9824: checking for f_bavail in struct statfs" >&5
+echo "$as_me:9826: checking for f_bavail in struct statfs" >&5
 echo $ECHO_N "checking for f_bavail in struct statfs... $ECHO_C" >&6
 if test "${ac_cv_c_statfs_f_bavail+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9830 "configure"
+#line 9832 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_SYS_PARAM_H
@@ -9853,16 +9855,16 @@ struct statfs s; s.f_bavail = 0
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9856: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9858: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9859: \$? = $ac_status" >&5
+  echo "$as_me:9861: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9862: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9864: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9865: \$? = $ac_status" >&5
+  echo "$as_me:9867: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_statfs_f_bavail="yes"
 else
@@ -9872,7 +9874,7 @@ ac_cv_c_statfs_f_bavail="no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9875: result: $ac_cv_c_statfs_f_bavail" >&5
+echo "$as_me:9877: result: $ac_cv_c_statfs_f_bavail" >&5
 echo "${ECHO_T}$ac_cv_c_statfs_f_bavail" >&6
 if  test "x$ac_cv_c_statfs_f_bavail" = "xyes"; then
 
@@ -9882,13 +9884,13 @@ EOF
 
 fi
 
-echo "$as_me:9885: checking for msg_accrights in struct msghdr" >&5
+echo "$as_me:9887: checking for msg_accrights in struct msghdr" >&5
 echo $ECHO_N "checking for msg_accrights in struct msghdr... $ECHO_C" >&6
 if test "${ac_cv_c_msghdr_msg_accrights+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9891 "configure"
+#line 9893 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -9901,16 +9903,16 @@ struct msghdr s; s.msg_accrights = 0
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9904: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9906: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9907: \$? = $ac_status" >&5
+  echo "$as_me:9909: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9910: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9912: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9913: \$? = $ac_status" >&5
+  echo "$as_me:9915: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_msghdr_msg_accrights="yes"
 else
@@ -9920,7 +9922,7 @@ ac_cv_c_msghdr_msg_accrights="no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9923: result: $ac_cv_c_msghdr_msg_accrights" >&5
+echo "$as_me:9925: result: $ac_cv_c_msghdr_msg_accrights" >&5
 echo "${ECHO_T}$ac_cv_c_msghdr_msg_accrights" >&6
 if  test "x$ac_cv_c_msghdr_msg_accrights" = "xyes"; then
 
@@ -9930,13 +9932,13 @@ EOF
 
 fi
 
-echo "$as_me:9933: checking for sa_len in struct sockaddr" >&5
+echo "$as_me:9935: checking for sa_len in struct sockaddr" >&5
 echo $ECHO_N "checking for sa_len in struct sockaddr... $ECHO_C" >&6
 if test "${ac_cv_c_sockaddr_sa_len+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9939 "configure"
+#line 9941 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -9949,16 +9951,16 @@ struct sockaddr s; s.sa_len = 0
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9952: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9954: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9955: \$? = $ac_status" >&5
+  echo "$as_me:9957: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9958: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9960: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9961: \$? = $ac_status" >&5
+  echo "$as_me:9963: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_sockaddr_sa_len="yes"
 else
@@ -9968,7 +9970,7 @@ ac_cv_c_sockaddr_sa_len="no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9971: result: $ac_cv_c_sockaddr_sa_len" >&5
+echo "$as_me:9973: result: $ac_cv_c_sockaddr_sa_len" >&5
 echo "${ECHO_T}$ac_cv_c_sockaddr_sa_len" >&6
 if  test "x$ac_cv_c_sockaddr_sa_len" = "xyes"; then
 
@@ -9978,13 +9980,13 @@ EOF
 
 fi
 
-echo "$as_me:9981: checking for sun_len in struct sockaddr_un" >&5
+echo "$as_me:9983: checking for sun_len in struct sockaddr_un" >&5
 echo $ECHO_N "checking for sun_len in struct sockaddr_un... $ECHO_C" >&6
 if test "${ac_cv_c_sockaddr_un_sun_len+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9987 "configure"
+#line 9989 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -9998,16 +10000,16 @@ struct sockaddr_un s; s.sun_len = 0
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10001: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10003: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10004: \$? = $ac_status" >&5
+  echo "$as_me:10006: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10007: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10009: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10010: \$? = $ac_status" >&5
+  echo "$as_me:10012: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_sockaddr_un_sun_len="yes"
 else
@@ -10017,7 +10019,7 @@ ac_cv_c_sockaddr_un_sun_len="no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:10020: result: $ac_cv_c_sockaddr_un_sun_len" >&5
+echo "$as_me:10022: result: $ac_cv_c_sockaddr_un_sun_len" >&5
 echo "${ECHO_T}$ac_cv_c_sockaddr_un_sun_len" >&6
 if  test "x$ac_cv_c_sockaddr_un_sun_len" = "xyes"; then
 
@@ -10029,13 +10031,13 @@ fi
 
 case $target_cpu in
   *i345678986* )
-    echo "$as_me:10032: checking whether we need to define __i386__" >&5
+    echo "$as_me:10034: checking whether we need to define __i386__" >&5
 echo $ECHO_N "checking whether we need to define __i386__... $ECHO_C" >&6
 if test "${ac_cv_cpp_def_i386+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10038 "configure"
+#line 10040 "configure"
 #include "confdefs.h"
 #ifndef __i386__
 yes
@@ -10050,7 +10052,7 @@ fi
 rm -f conftest*
 
 fi
-echo "$as_me:10053: result: $ac_cv_cpp_def_i386" >&5
+echo "$as_me:10055: result: $ac_cv_cpp_def_i386" >&5
 echo "${ECHO_T}$ac_cv_cpp_def_i386" >&6
     ;;
 esac
@@ -10185,7 +10187,7 @@ DEFS=-DHAVE_CONFIG_H
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:10188: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:10190: creating $CONFIG_STATUS" >&5
 echo "$as_me: creating $CONFIG_STATUS" >&6;}
 cat >$CONFIG_STATUS <<_ACEOF
 #! $SHELL
@@ -10361,7 +10363,7 @@ cat >>$CONFIG_STATUS <<\EOF
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
     # Conflict between --help and --header
-    { { echo "$as_me:10364: error: ambiguous option: $1
+    { { echo "$as_me:10366: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -10380,7 +10382,7 @@ Try \`$0 --help' for more information." >&2;}
     ac_need_defaults=false;;
 
   # This is an error.
-  -*) { { echo "$as_me:10383: error: unrecognized option: $1
+  -*) { { echo "$as_me:10385: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -10585,7 +10587,7 @@ do
   "programs/winetest/tests" ) CONFIG_COMMANDS="$CONFIG_COMMANDS programs/winetest/tests" ;;
   "include/wine/version.h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS include/wine/version.h" ;;
   "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
-  *) { { echo "$as_me:10588: error: invalid argument: $ac_config_target" >&5
+  *) { { echo "$as_me:10590: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
@@ -10725,6 +10727,7 @@ s,@FREETYPELIBS@,$FREETYPELIBS,;t t
 s,@FREETYPEINCL@,$FREETYPEINCL,;t t
 s,@DLLWRAP@,$DLLWRAP,;t t
 s,@DLLFLAGS@,$DLLFLAGS,;t t
+s,@DLLEXT@,$DLLEXT,;t t
 s,@LDSHARED@,$LDSHARED,;t t
 s,@LDDLLFLAGS@,$LDDLLFLAGS,;t t
 s,@LIBEXT@,$LIBEXT,;t t
@@ -10850,7 +10853,7 @@ done; }
   esac
 
   if test x"$ac_file" != x-; then
-    { echo "$as_me:10853: creating $ac_file" >&5
+    { echo "$as_me:10856: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
     rm -f "$ac_file"
   fi
@@ -10868,7 +10871,7 @@ echo "$as_me: creating $ac_file" >&6;}
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:10871: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:10874: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -10881,7 +10884,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:10884: error: cannot find input file: $f" >&5
+           { { echo "$as_me:10887: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -10942,7 +10945,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
   * )   ac_file_in=$ac_file.in ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:10945: creating $ac_file" >&5
+  test x"$ac_file" != x- && { echo "$as_me:10948: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
 
   # First look for the input files in the build tree, otherwise in the
@@ -10953,7 +10956,7 @@ echo "$as_me: creating $ac_file" >&6;}
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:10956: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:10959: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -10966,7 +10969,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:10969: error: cannot find input file: $f" >&5
+           { { echo "$as_me:10972: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -11083,7 +11086,7 @@ cat >>$CONFIG_STATUS <<\EOF
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:11086: $ac_file is unchanged" >&5
+      { echo "$as_me:11089: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -11134,50 +11137,50 @@ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
   ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
 
   case $ac_dest in
-    dlls/ddraw/d3ddevice ) test -d "dlls/ddraw/d3ddevice" || ({ echo "$as_me:11137: creating dlls/ddraw/d3ddevice" >&5
+    dlls/ddraw/d3ddevice ) test -d "dlls/ddraw/d3ddevice" || ({ echo "$as_me:11140: creating dlls/ddraw/d3ddevice" >&5
 echo "$as_me: creating dlls/ddraw/d3ddevice" >&6;} && mkdir "dlls/ddraw/d3ddevice") ;;
-    dlls/ddraw/dclipper ) test -d "dlls/ddraw/dclipper" || ({ echo "$as_me:11139: creating dlls/ddraw/dclipper" >&5
+    dlls/ddraw/dclipper ) test -d "dlls/ddraw/dclipper" || ({ echo "$as_me:11142: creating dlls/ddraw/dclipper" >&5
 echo "$as_me: creating dlls/ddraw/dclipper" >&6;} && mkdir "dlls/ddraw/dclipper") ;;
-    dlls/ddraw/ddraw ) test -d "dlls/ddraw/ddraw" || ({ echo "$as_me:11141: creating dlls/ddraw/ddraw" >&5
+    dlls/ddraw/ddraw ) test -d "dlls/ddraw/ddraw" || ({ echo "$as_me:11144: creating dlls/ddraw/ddraw" >&5
 echo "$as_me: creating dlls/ddraw/ddraw" >&6;} && mkdir "dlls/ddraw/ddraw") ;;
-    dlls/ddraw/direct3d ) test -d "dlls/ddraw/direct3d" || ({ echo "$as_me:11143: creating dlls/ddraw/direct3d" >&5
+    dlls/ddraw/direct3d ) test -d "dlls/ddraw/direct3d" || ({ echo "$as_me:11146: creating dlls/ddraw/direct3d" >&5
 echo "$as_me: creating dlls/ddraw/direct3d" >&6;} && mkdir "dlls/ddraw/direct3d") ;;
-    dlls/ddraw/dpalette ) test -d "dlls/ddraw/dpalette" || ({ echo "$as_me:11145: creating dlls/ddraw/dpalette" >&5
+    dlls/ddraw/dpalette ) test -d "dlls/ddraw/dpalette" || ({ echo "$as_me:11148: creating dlls/ddraw/dpalette" >&5
 echo "$as_me: creating dlls/ddraw/dpalette" >&6;} && mkdir "dlls/ddraw/dpalette") ;;
-    dlls/ddraw/dsurface ) test -d "dlls/ddraw/dsurface" || ({ echo "$as_me:11147: creating dlls/ddraw/dsurface" >&5
+    dlls/ddraw/dsurface ) test -d "dlls/ddraw/dsurface" || ({ echo "$as_me:11150: creating dlls/ddraw/dsurface" >&5
 echo "$as_me: creating dlls/ddraw/dsurface" >&6;} && mkdir "dlls/ddraw/dsurface") ;;
-    dlls/dinput/joystick ) test -d "dlls/dinput/joystick" || ({ echo "$as_me:11149: creating dlls/dinput/joystick" >&5
+    dlls/dinput/joystick ) test -d "dlls/dinput/joystick" || ({ echo "$as_me:11152: creating dlls/dinput/joystick" >&5
 echo "$as_me: creating dlls/dinput/joystick" >&6;} && mkdir "dlls/dinput/joystick") ;;
-    dlls/dinput/keyboard ) test -d "dlls/dinput/keyboard" || ({ echo "$as_me:11151: creating dlls/dinput/keyboard" >&5
+    dlls/dinput/keyboard ) test -d "dlls/dinput/keyboard" || ({ echo "$as_me:11154: creating dlls/dinput/keyboard" >&5
 echo "$as_me: creating dlls/dinput/keyboard" >&6;} && mkdir "dlls/dinput/keyboard") ;;
-    dlls/dinput/mouse ) test -d "dlls/dinput/mouse" || ({ echo "$as_me:11153: creating dlls/dinput/mouse" >&5
+    dlls/dinput/mouse ) test -d "dlls/dinput/mouse" || ({ echo "$as_me:11156: creating dlls/dinput/mouse" >&5
 echo "$as_me: creating dlls/dinput/mouse" >&6;} && mkdir "dlls/dinput/mouse") ;;
-    dlls/kernel/messages ) test -d "dlls/kernel/messages" || ({ echo "$as_me:11155: creating dlls/kernel/messages" >&5
+    dlls/kernel/messages ) test -d "dlls/kernel/messages" || ({ echo "$as_me:11158: creating dlls/kernel/messages" >&5
 echo "$as_me: creating dlls/kernel/messages" >&6;} && mkdir "dlls/kernel/messages") ;;
-    dlls/kernel/tests ) test -d "dlls/kernel/tests" || ({ echo "$as_me:11157: creating dlls/kernel/tests" >&5
+    dlls/kernel/tests ) test -d "dlls/kernel/tests" || ({ echo "$as_me:11160: creating dlls/kernel/tests" >&5
 echo "$as_me: creating dlls/kernel/tests" >&6;} && mkdir "dlls/kernel/tests") ;;
-    dlls/user/dde ) test -d "dlls/user/dde" || ({ echo "$as_me:11159: creating dlls/user/dde" >&5
+    dlls/user/dde ) test -d "dlls/user/dde" || ({ echo "$as_me:11162: creating dlls/user/dde" >&5
 echo "$as_me: creating dlls/user/dde" >&6;} && mkdir "dlls/user/dde") ;;
-    dlls/user/resources ) test -d "dlls/user/resources" || ({ echo "$as_me:11161: creating dlls/user/resources" >&5
+    dlls/user/resources ) test -d "dlls/user/resources" || ({ echo "$as_me:11164: creating dlls/user/resources" >&5
 echo "$as_me: creating dlls/user/resources" >&6;} && mkdir "dlls/user/resources") ;;
-    dlls/user/tests ) test -d "dlls/user/tests" || ({ echo "$as_me:11163: creating dlls/user/tests" >&5
+    dlls/user/tests ) test -d "dlls/user/tests" || ({ echo "$as_me:11166: creating dlls/user/tests" >&5
 echo "$as_me: creating dlls/user/tests" >&6;} && mkdir "dlls/user/tests") ;;
-    dlls/wineps/data ) test -d "dlls/wineps/data" || ({ echo "$as_me:11165: creating dlls/wineps/data" >&5
+    dlls/wineps/data ) test -d "dlls/wineps/data" || ({ echo "$as_me:11168: creating dlls/wineps/data" >&5
 echo "$as_me: creating dlls/wineps/data" >&6;} && mkdir "dlls/wineps/data") ;;
-    include/wine ) test -d "include/wine" || ({ echo "$as_me:11167: creating include/wine" >&5
+    include/wine ) test -d "include/wine" || ({ echo "$as_me:11170: creating include/wine" >&5
 echo "$as_me: creating include/wine" >&6;} && mkdir "include/wine") ;;
-    programs/regapi/tests ) test -d "programs/regapi/tests" || ({ echo "$as_me:11169: creating programs/regapi/tests" >&5
+    programs/regapi/tests ) test -d "programs/regapi/tests" || ({ echo "$as_me:11172: creating programs/regapi/tests" >&5
 echo "$as_me: creating programs/regapi/tests" >&6;} && mkdir "programs/regapi/tests") ;;
-    programs/winetest/tests ) test -d "programs/winetest/tests" || ({ echo "$as_me:11171: creating programs/winetest/tests" >&5
+    programs/winetest/tests ) test -d "programs/winetest/tests" || ({ echo "$as_me:11174: creating programs/winetest/tests" >&5
 echo "$as_me: creating programs/winetest/tests" >&6;} && mkdir "programs/winetest/tests") ;;
-    include/wine/version.h ) { echo "$as_me:11173: creating include/wine/version.h" >&5
+    include/wine/version.h ) { echo "$as_me:11176: creating include/wine/version.h" >&5
 echo "$as_me: creating include/wine/version.h" >&6;}
 cat >$tmp/version.h <<CEOF
 /* Generated automatically by configure; DO NOT EDIT! */
 #define WINE_RELEASE_INFO "Wine version $wine_version"
 CEOF
 if cmp -s $tmp/version.h include/wine/version.h 2>/dev/null; then
-  { echo "$as_me:11180: include/wine/version.h is unchanged" >&5
+  { echo "$as_me:11183: include/wine/version.h is unchanged" >&5
 echo "$as_me: include/wine/version.h is unchanged" >&6;}
   rm -f $tmp/version.h
 else
diff --git a/configure.ac b/configure.ac
index c5d845f8215..3007ac25b9a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -732,13 +732,16 @@ LDPATH=""
 
 if test "$LIBEXT" = "so"; then
     DLLFLAGS="-fPIC"
+    DLLEXT=".so"
     LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
 elif test "$LIBEXT" = "dll"; then
     #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
+    DLLEXT=""
     LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
 fi
 
 AC_SUBST(DLLFLAGS)
+AC_SUBST(DLLEXT)
 AC_SUBST(LDSHARED)
 AC_SUBST(LDDLLFLAGS)
 AC_SUBST(LIBEXT)
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index beba9757efb..045083d8d09 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -10,34 +10,33 @@
 #
 
 DEFS       = @DLLFLAGS@ -D__WINE__ $(EXTRADEFS)
-LIBEXT     = @LIBEXT@
-IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT))
-SPEC_SRCS  = $(ALTNAMES:%=%.spec)
-ALL_OBJS   = $(MODULE).spec.o $(OBJS)
+DLLEXT     = @DLLEXT@
+SPEC_SRCS  = $(ALTNAMES:.dll=.spec)
+ALL_OBJS   = $(MODULE:%.dll=%).spec.o $(OBJS)
 ALL_LIBS   = $(LIBWINE) $(EXTRALIBS) $(LIBS)
 
-all: lib$(MODULE).$(LIBEXT)
+all: $(MODULE)$(DLLEXT)
 
 @MAKE_RULES@
 
 # Rules for .so files
 
-lib$(MODULE).so: $(ALL_OBJS) Makefile.in
+$(MODULE).so: $(ALL_OBJS) Makefile.in
 	$(LDSHARED) $(LDDLLFLAGS) $(ALL_OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
 
 # Rules for .dll files
 
-lib$(MODULE).dll: $(ALL_OBJS) Makefile.in
-	$(DLLWRAP) $(DLLWRAPFLAGS) --implib lib$(MODULE).a -o lib$(MODULE).dll $(ALL_OBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
+$(MODULE): $(ALL_OBJS) Makefile.in
+	$(DLLWRAP) $(DLLWRAPFLAGS) --implib $(MODULE:.dll=.a) -o $(MODULE) $(ALL_OBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
 
 # Rules for checking that no imports are missing
 
-checklink:: lib$(MODULE).$(LIBEXT)
-	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) $(ALL_LIBS) && $(RM) checklink
+checklink:: $(MODULE)$(DLLEXT)
+	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c $(MODULE)$(DLLEXT) $(ALL_LIBS) && $(RM) checklink
 
 # Rules for testing
 
-$(TESTRESULTS): lib$(MODULE).$(LIBEXT)
+$(TESTRESULTS): $(MODULE)$(DLLEXT)
 
 # Rules for debug channels
 
@@ -52,18 +51,28 @@ Makedll.rules: $(TOPSRCDIR)/Makedll.rules.in $(TOPSRCDIR)/configure
 
 # Rules for installation
 
-.PHONY: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT))
+.PHONY: install_lib $(ALTNAMES:%=_install_/%$(DLLEXT))
 
-$(ALTNAMES:%=_install_/lib%.$(LIBEXT)): install_lib
-	cd $(libdir) && $(RM) `basename $@` && $(LN_S) lib$(MODULE).$(LIBEXT) `basename $@`
+$(ALTNAMES:%=_install_/%$(DLLEXT)): install_lib
+	cd $(dlldir) && $(RM) `basename $@` && $(LN_S) $(MODULE)$(DLLEXT) `basename $@`
 
-install_lib: lib$(MODULE).$(LIBEXT)
-	[ -d $(libdir) ] || $(MKDIR) $(libdir)
-	$(INSTALL_PROGRAM) lib$(MODULE).$(LIBEXT) $(libdir)/lib$(MODULE).$(LIBEXT)
+install_lib: $(MODULE)$(DLLEXT)
+	[ -d $(dlldir) ] || $(MKDIR) $(dlldir)
+	$(INSTALL_PROGRAM) $(MODULE)$(DLLEXT) $(dlldir)/$(MODULE)$(DLLEXT)
 
-install:: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT))
+install:: install_lib $(ALTNAMES:%=_install_/%$(DLLEXT))
 
 uninstall::
-	cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT))
+	$(RM) $(dlldir)/$(MODULE)$(DLLEXT) $(ALTNAMES:%=$(dlldir)/%$(DLLEXT))
+
+# Extra install rules for dlls not yet properly separated
+
+install_libdir:: install_lib
+	cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) && if [ "$(dlldir)" = "$(libdir)/wine" ]; \
+	then $(LN_S) wine/$(MODULE)$(DLLEXT) lib$(MODULE).$(LIBEXT); \
+	else $(LN_S) $(dlldir)/$(MODULE)$(DLLEXT) lib$(MODULE).$(LIBEXT); fi
+
+uninstall_libdir::
+	$(RM) $(libdir)/lib$(MODULE).$(LIBEXT)
 
 # End of global dll rules
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 6901d5277d8..c774784efad 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -4,7 +4,6 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 
 # special configure-dependent targets
 
@@ -98,686 +97,715 @@ SUBDIRS = \
 
 # Main target
 
-all: \
-	$(EXTRADIRS:%=lib%.$(LIBEXT)) \
-	libadvapi32.$(LIBEXT) \
-	libavicap32.$(LIBEXT) \
-	libavifil32.$(LIBEXT) \
-	libavifile.$(LIBEXT) \
-	libcomctl32.$(LIBEXT) \
-	libcomdlg32.$(LIBEXT) \
-	libcomm.$(LIBEXT) \
-	libcommdlg.$(LIBEXT) \
-	libcompobj.$(LIBEXT) \
-	libcrtdll.$(LIBEXT) \
-	libcrypt32.$(LIBEXT) \
-	libdciman32.$(LIBEXT) \
-	libddeml.$(LIBEXT) \
-	libdevenum.$(LIBEXT) \
-	libdinput.$(LIBEXT) \
-	libdispdib.$(LIBEXT) \
-	libdisplay.$(LIBEXT) \
-	libdplay.$(LIBEXT) \
-	libdplayx.$(LIBEXT) \
-	libdsound.$(LIBEXT) \
-	libgdi.$(LIBEXT) \
-	libgdi32.$(LIBEXT) \
-	libicmp.$(LIBEXT) \
-	libimagehlp.$(LIBEXT) \
-	libimm.$(LIBEXT) \
-	libimm32.$(LIBEXT) \
-	libjoystick.drv.$(LIBEXT) \
-	libkernel.$(LIBEXT) \
-	libkernel32.$(LIBEXT) \
-	libkeyboard.$(LIBEXT) \
-	liblz32.$(LIBEXT) \
-	liblzexpand.$(LIBEXT) \
-	libmapi32.$(LIBEXT) \
-	libmcianim.drv.$(LIBEXT) \
-	libmciavi.drv.$(LIBEXT) \
-	libmcicda.drv.$(LIBEXT) \
-	libmciseq.drv.$(LIBEXT) \
-	libmciwave.drv.$(LIBEXT) \
-	libmidimap.drv.$(LIBEXT) \
-	libmmsystem.$(LIBEXT) \
-	libmouse.$(LIBEXT) \
-	libmpr.$(LIBEXT) \
-	libmsacm.$(LIBEXT) \
-	libmsacm.drv.$(LIBEXT) \
-	libmsacm32.$(LIBEXT) \
-	libmsdmo.$(LIBEXT) \
-	libmsimg32.$(LIBEXT) \
-	libmsnet32.$(LIBEXT) \
-	libmsrle32.$(LIBEXT) \
-	libmsvcrt.$(LIBEXT) \
-	libmsvcrt20.$(LIBEXT) \
-	libmsvfw32.$(LIBEXT) \
-	libmsvideo.$(LIBEXT) \
-	libnetapi32.$(LIBEXT) \
-	libntdll.$(LIBEXT) \
-	libodbc32.$(LIBEXT) \
-	libole2.$(LIBEXT) \
-	libole2conv.$(LIBEXT) \
-	libole2disp.$(LIBEXT) \
-	libole2nls.$(LIBEXT) \
-	libole2prox.$(LIBEXT) \
-	libole2thk.$(LIBEXT) \
-	libole32.$(LIBEXT) \
-	liboleaut32.$(LIBEXT) \
-	libolecli.$(LIBEXT) \
-	libolecli32.$(LIBEXT) \
-	liboledlg.$(LIBEXT) \
-	libolepro32.$(LIBEXT) \
-	libolesvr.$(LIBEXT) \
-	libolesvr32.$(LIBEXT) \
-	libpsapi.$(LIBEXT) \
-	libqcap.$(LIBEXT) \
-	libquartz.$(LIBEXT) \
-	librasapi16.$(LIBEXT) \
-	librasapi32.$(LIBEXT) \
-	libriched32.$(LIBEXT) \
-	librpcrt4.$(LIBEXT) \
-	libserialui.$(LIBEXT) \
-	libsetupapi.$(LIBEXT) \
-	libsetupx.$(LIBEXT) \
-	libshdocvw.$(LIBEXT) \
-	libshell.$(LIBEXT) \
-	libshell32.$(LIBEXT) \
-	libshfolder.$(LIBEXT) \
-	libshlwapi.$(LIBEXT) \
-	libsound.$(LIBEXT) \
-	libsti.$(LIBEXT) \
-	libstorage.$(LIBEXT) \
-	libstress.$(LIBEXT) \
-	libsystem.$(LIBEXT) \
-	libtapi32.$(LIBEXT) \
-	libtoolhelp.$(LIBEXT) \
-	libttydrv.$(LIBEXT) \
-	libtypelib.$(LIBEXT) \
-	liburl.$(LIBEXT) \
-	liburlmon.$(LIBEXT) \
-	libuser.$(LIBEXT) \
-	libuser32.$(LIBEXT) \
-	libver.$(LIBEXT) \
-	libversion.$(LIBEXT) \
-	libw32skrnl.$(LIBEXT) \
-	libw32sys.$(LIBEXT) \
-	libwin32s16.$(LIBEXT) \
-	libwin87em.$(LIBEXT) \
-	libwinaspi.$(LIBEXT) \
-	libwindebug.$(LIBEXT) \
-	libwinedos.$(LIBEXT) \
-	libwineoss.drv.$(LIBEXT) \
-	libwineps.$(LIBEXT) \
-	libwineps16.$(LIBEXT) \
-	libwing.$(LIBEXT) \
-	libwininet.$(LIBEXT) \
-	libwinmm.$(LIBEXT) \
-	libwinnls.$(LIBEXT) \
-	libwinnls32.$(LIBEXT) \
-	libwinsock.$(LIBEXT) \
-	libwinspool.drv.$(LIBEXT) \
-	libwintrust.$(LIBEXT) \
-	libwnaspi32.$(LIBEXT) \
-	libwow32.$(LIBEXT) \
-	libwprocs.$(LIBEXT) \
-	libws2_32.$(LIBEXT) \
-	libwsock32.$(LIBEXT)
-
 @MAKE_RULES@
 
+all: \
+	$(EXTRADIRS:%=%.dll$(DLLEXT)) \
+	advapi32.dll$(DLLEXT) \
+	avicap32.dll$(DLLEXT) \
+	avifil32.dll$(DLLEXT) \
+	avifile.dll$(DLLEXT) \
+	comctl32.dll$(DLLEXT) \
+	comdlg32.dll$(DLLEXT) \
+	comm.dll$(DLLEXT) \
+	commdlg.dll$(DLLEXT) \
+	compobj.dll$(DLLEXT) \
+	crtdll.dll$(DLLEXT) \
+	crypt32.dll$(DLLEXT) \
+	dciman32.dll$(DLLEXT) \
+	ddeml.dll$(DLLEXT) \
+	devenum.dll$(DLLEXT) \
+	dinput.dll$(DLLEXT) \
+	dispdib.dll$(DLLEXT) \
+	display.dll$(DLLEXT) \
+	dplay.dll$(DLLEXT) \
+	dplayx.dll$(DLLEXT) \
+	dsound.dll$(DLLEXT) \
+	gdi.dll$(DLLEXT) \
+	gdi32.dll$(DLLEXT) \
+	icmp.dll$(DLLEXT) \
+	imagehlp.dll$(DLLEXT) \
+	imm.dll$(DLLEXT) \
+	imm32.dll$(DLLEXT) \
+	joystick.drv$(DLLEXT) \
+	kernel.dll$(DLLEXT) \
+	kernel32.dll$(DLLEXT) \
+	keyboard.dll$(DLLEXT) \
+	lz32.dll$(DLLEXT) \
+	lzexpand.dll$(DLLEXT) \
+	mapi32.dll$(DLLEXT) \
+	mcianim.drv$(DLLEXT) \
+	mciavi.drv$(DLLEXT) \
+	mcicda.drv$(DLLEXT) \
+	mciseq.drv$(DLLEXT) \
+	mciwave.drv$(DLLEXT) \
+	midimap.drv$(DLLEXT) \
+	mmsystem.dll$(DLLEXT) \
+	mouse.dll$(DLLEXT) \
+	mpr.dll$(DLLEXT) \
+	msacm.dll$(DLLEXT) \
+	msacm.drv$(DLLEXT) \
+	msacm32.dll$(DLLEXT) \
+	msdmo.dll$(DLLEXT) \
+	msimg32.dll$(DLLEXT) \
+	msnet32.dll$(DLLEXT) \
+	msrle32.dll$(DLLEXT) \
+	msvcrt.dll$(DLLEXT) \
+	msvcrt20.dll$(DLLEXT) \
+	msvfw32.dll$(DLLEXT) \
+	msvideo.dll$(DLLEXT) \
+	netapi32.dll$(DLLEXT) \
+	ntdll.dll$(DLLEXT) \
+	odbc32.dll$(DLLEXT) \
+	ole2.dll$(DLLEXT) \
+	ole2conv.dll$(DLLEXT) \
+	ole2disp.dll$(DLLEXT) \
+	ole2nls.dll$(DLLEXT) \
+	ole2prox.dll$(DLLEXT) \
+	ole2thk.dll$(DLLEXT) \
+	ole32.dll$(DLLEXT) \
+	oleaut32.dll$(DLLEXT) \
+	olecli.dll$(DLLEXT) \
+	olecli32.dll$(DLLEXT) \
+	oledlg.dll$(DLLEXT) \
+	olepro32.dll$(DLLEXT) \
+	olesvr.dll$(DLLEXT) \
+	olesvr32.dll$(DLLEXT) \
+	psapi.dll$(DLLEXT) \
+	qcap.dll$(DLLEXT) \
+	quartz.dll$(DLLEXT) \
+	rasapi16.dll$(DLLEXT) \
+	rasapi32.dll$(DLLEXT) \
+	riched32.dll$(DLLEXT) \
+	rpcrt4.dll$(DLLEXT) \
+	serialui.dll$(DLLEXT) \
+	setupapi.dll$(DLLEXT) \
+	setupx.dll$(DLLEXT) \
+	shdocvw.dll$(DLLEXT) \
+	shell.dll$(DLLEXT) \
+	shell32.dll$(DLLEXT) \
+	shfolder.dll$(DLLEXT) \
+	shlwapi.dll$(DLLEXT) \
+	sound.dll$(DLLEXT) \
+	sti.dll$(DLLEXT) \
+	storage.dll$(DLLEXT) \
+	stress.dll$(DLLEXT) \
+	system.dll$(DLLEXT) \
+	tapi32.dll$(DLLEXT) \
+	toolhelp.dll$(DLLEXT) \
+	ttydrv.dll$(DLLEXT) \
+	typelib.dll$(DLLEXT) \
+	url.dll$(DLLEXT) \
+	urlmon.dll$(DLLEXT) \
+	user.dll$(DLLEXT) \
+	user32.dll$(DLLEXT) \
+	ver.dll$(DLLEXT) \
+	version.dll$(DLLEXT) \
+	w32skrnl.dll$(DLLEXT) \
+	w32sys.dll$(DLLEXT) \
+	win32s16.dll$(DLLEXT) \
+	win87em.dll$(DLLEXT) \
+	winaspi.dll$(DLLEXT) \
+	windebug.dll$(DLLEXT) \
+	winedos.dll$(DLLEXT) \
+	wineoss.drv$(DLLEXT) \
+	wineps.dll$(DLLEXT) \
+	wineps16.dll$(DLLEXT) \
+	wing.dll$(DLLEXT) \
+	wininet.dll$(DLLEXT) \
+	winmm.dll$(DLLEXT) \
+	winnls.dll$(DLLEXT) \
+	winnls32.dll$(DLLEXT) \
+	winsock.dll$(DLLEXT) \
+	winspool.drv$(DLLEXT) \
+	wintrust.dll$(DLLEXT) \
+	wnaspi32.dll$(DLLEXT) \
+	wow32.dll$(DLLEXT) \
+	wprocs.dll$(DLLEXT) \
+	ws2_32.dll$(DLLEXT) \
+	wsock32.dll$(DLLEXT)
+
 # Map library name to directory
 
-libadvapi32.$(LIBEXT): advapi32/libadvapi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) advapi32/libadvapi32.$(LIBEXT) $@
+advapi32.dll$(DLLEXT): advapi32/advapi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) advapi32/advapi32.dll$(DLLEXT) $@
 
-libavicap32.$(LIBEXT): avicap32/libavicap32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) avicap32/libavicap32.$(LIBEXT) $@
+avicap32.dll$(DLLEXT): avicap32/avicap32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) avicap32/avicap32.dll$(DLLEXT) $@
 
-libavifil32.$(LIBEXT) libavifile.$(LIBEXT): avifil32/libavifil32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) avifil32/libavifil32.$(LIBEXT) $@
+avifil32.dll$(DLLEXT) avifile.dll$(DLLEXT): avifil32/avifil32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) avifil32/avifil32.dll$(DLLEXT) $@
 
-libcomctl32.$(LIBEXT): comctl32/libcomctl32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) comctl32/libcomctl32.$(LIBEXT) $@
+comctl32.dll$(DLLEXT): comctl32/comctl32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) comctl32/comctl32.dll$(DLLEXT) $@
 
-libcomdlg32.$(LIBEXT) libcommdlg.$(LIBEXT): commdlg/libcomdlg32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) commdlg/libcomdlg32.$(LIBEXT) $@
+comdlg32.dll$(DLLEXT) commdlg.dll$(DLLEXT): commdlg/comdlg32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) commdlg/comdlg32.dll$(DLLEXT) $@
 
-libcrtdll.$(LIBEXT): crtdll/libcrtdll.$(LIBEXT)
-	$(RM) $@ && $(LN_S) crtdll/libcrtdll.$(LIBEXT) $@
+crtdll.dll$(DLLEXT): crtdll/crtdll.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) crtdll/crtdll.dll$(DLLEXT) $@
 
-libcrypt32.$(LIBEXT): crypt32/libcrypt32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) crypt32/libcrypt32.$(LIBEXT) $@
+crypt32.dll$(DLLEXT): crypt32/crypt32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) crypt32/crypt32.dll$(DLLEXT) $@
 
-libdciman32.$(LIBEXT): dciman32/libdciman32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) dciman32/libdciman32.$(LIBEXT) $@
+dciman32.dll$(DLLEXT): dciman32/dciman32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dciman32/dciman32.dll$(DLLEXT) $@
 
-libddraw.$(LIBEXT): ddraw/libddraw.$(LIBEXT)
-	$(RM) $@ && $(LN_S) ddraw/libddraw.$(LIBEXT) $@
+ddraw.dll$(DLLEXT): ddraw/ddraw.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) ddraw/ddraw.dll$(DLLEXT) $@
 
-libdevenum.$(LIBEXT): devenum/libdevenum.$(LIBEXT)
-	$(RM) $@ && $(LN_S) devenum/libdevenum.$(LIBEXT) $@
+devenum.dll$(DLLEXT): devenum/devenum.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) devenum/devenum.dll$(DLLEXT) $@
 
-libdinput.$(LIBEXT): dinput/libdinput.$(LIBEXT)
-	$(RM) $@ && $(LN_S) dinput/libdinput.$(LIBEXT) $@
+dinput.dll$(DLLEXT): dinput/dinput.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dinput/dinput.dll$(DLLEXT) $@
 
-libdplay.$(LIBEXT): dplay/libdplay.$(LIBEXT)
-	$(RM) $@ && $(LN_S) dplay/libdplay.$(LIBEXT) $@
+dplay.dll$(DLLEXT): dplay/dplay.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dplay/dplay.dll$(DLLEXT) $@
 
-libdplayx.$(LIBEXT): dplayx/libdplayx.$(LIBEXT)
-	$(RM) $@ && $(LN_S) dplayx/libdplayx.$(LIBEXT) $@
+dplayx.dll$(DLLEXT): dplayx/dplayx.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dplayx/dplayx.dll$(DLLEXT) $@
 
-libdsound.$(LIBEXT): dsound/libdsound.$(LIBEXT)
-	$(RM) $@ && $(LN_S) dsound/libdsound.$(LIBEXT) $@
+dsound.dll$(DLLEXT): dsound/dsound.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) dsound/dsound.dll$(DLLEXT) $@
 
-libgdi32.$(LIBEXT) libdispdib.$(LIBEXT) libgdi.$(LIBEXT) \
-  libwing.$(LIBEXT): gdi/libgdi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) gdi/libgdi32.$(LIBEXT) $@
+gdi32.dll$(DLLEXT) dispdib.dll$(DLLEXT) gdi.dll$(DLLEXT) \
+  wing.dll$(DLLEXT): gdi/gdi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) gdi/gdi32.dll$(DLLEXT) $@
 
-libglu32.$(LIBEXT): glu32/libglu32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) glu32/libglu32.$(LIBEXT) $@
+glu32.dll$(DLLEXT): glu32/glu32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) glu32/glu32.dll$(DLLEXT) $@
 
-libicmp.$(LIBEXT): icmp/libicmp.$(LIBEXT)
-	$(RM) $@ && $(LN_S) icmp/libicmp.$(LIBEXT) $@
+icmp.dll$(DLLEXT): icmp/icmp.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) icmp/icmp.dll$(DLLEXT) $@
 
-libimagehlp.$(LIBEXT): imagehlp/libimagehlp.$(LIBEXT)
-	$(RM) $@ && $(LN_S) imagehlp/libimagehlp.$(LIBEXT) $@
+imagehlp.dll$(DLLEXT): imagehlp/imagehlp.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) imagehlp/imagehlp.dll$(DLLEXT) $@
 
-libimm32.$(LIBEXT) libimm.$(LIBEXT): imm32/libimm32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) imm32/libimm32.$(LIBEXT) $@
+imm32.dll$(DLLEXT) imm.dll$(DLLEXT): imm32/imm32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) imm32/imm32.dll$(DLLEXT) $@
 
-libjoystick.drv.$(LIBEXT): winmm/joystick/libjoystick.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/joystick/libjoystick.drv.$(LIBEXT) $@
+joystick.drv$(DLLEXT): winmm/joystick/joystick.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/joystick/joystick.drv$(DLLEXT) $@
 
-libkernel32.$(LIBEXT) libcomm.$(LIBEXT) libkernel.$(LIBEXT) \
-  libstress.$(LIBEXT) libsystem.$(LIBEXT) libtoolhelp.$(LIBEXT) \
-  libwin87em.$(LIBEXT) libwindebug.$(LIBEXT) libwprocs.$(LIBEXT): kernel/libkernel32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) kernel/libkernel32.$(LIBEXT) $@
+kernel32.dll$(DLLEXT) comm.dll$(DLLEXT) kernel.dll$(DLLEXT) \
+  stress.dll$(DLLEXT) system.dll$(DLLEXT) toolhelp.dll$(DLLEXT) \
+  win87em.dll$(DLLEXT) windebug.dll$(DLLEXT) wprocs.dll$(DLLEXT): kernel/kernel32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) kernel/kernel32.dll$(DLLEXT) $@
 
-liblz32.$(LIBEXT) liblzexpand.$(LIBEXT): lzexpand/liblz32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) lzexpand/liblz32.$(LIBEXT) $@
+lz32.dll$(DLLEXT) lzexpand.dll$(DLLEXT): lzexpand/lz32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) lzexpand/lz32.dll$(DLLEXT) $@
 
-libmapi32.$(LIBEXT): mapi32/libmapi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) mapi32/libmapi32.$(LIBEXT) $@
+mapi32.dll$(DLLEXT): mapi32/mapi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) mapi32/mapi32.dll$(DLLEXT) $@
 
-libmcianim.drv.$(LIBEXT): winmm/mcianim/libmcianim.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/mcianim/libmcianim.drv.$(LIBEXT) $@
+mcianim.drv$(DLLEXT): winmm/mcianim/mcianim.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/mcianim/mcianim.drv$(DLLEXT) $@
 
-libmciavi.drv.$(LIBEXT): winmm/mciavi/libmciavi.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/mciavi/libmciavi.drv.$(LIBEXT) $@
+mciavi.drv$(DLLEXT): winmm/mciavi/mciavi.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/mciavi/mciavi.drv$(DLLEXT) $@
 
-libmcicda.drv.$(LIBEXT): winmm/mcicda/libmcicda.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/mcicda/libmcicda.drv.$(LIBEXT) $@
+mcicda.drv$(DLLEXT): winmm/mcicda/mcicda.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/mcicda/mcicda.drv$(DLLEXT) $@
 
-libmciseq.drv.$(LIBEXT): winmm/mciseq/libmciseq.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/mciseq/libmciseq.drv.$(LIBEXT) $@
+mciseq.drv$(DLLEXT): winmm/mciseq/mciseq.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/mciseq/mciseq.drv$(DLLEXT) $@
 
-libmciwave.drv.$(LIBEXT): winmm/mciwave/libmciwave.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/mciwave/libmciwave.drv.$(LIBEXT) $@
+mciwave.drv$(DLLEXT): winmm/mciwave/mciwave.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/mciwave/mciwave.drv$(DLLEXT) $@
 
-libmidimap.drv.$(LIBEXT): winmm/midimap/libmidimap.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/midimap/libmidimap.drv.$(LIBEXT) $@
+midimap.drv$(DLLEXT): winmm/midimap/midimap.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/midimap/midimap.drv$(DLLEXT) $@
 
-libmpr.$(LIBEXT): mpr/libmpr.$(LIBEXT)
-	$(RM) $@ && $(LN_S) mpr/libmpr.$(LIBEXT) $@
+mpr.dll$(DLLEXT): mpr/mpr.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) mpr/mpr.dll$(DLLEXT) $@
 
-libmsacm.drv.$(LIBEXT): winmm/wavemap/libmsacm.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/wavemap/libmsacm.drv.$(LIBEXT) $@
+msacm.drv$(DLLEXT): winmm/wavemap/msacm.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/wavemap/msacm.drv$(DLLEXT) $@
 
-libmsacm32.$(LIBEXT) libmsacm.$(LIBEXT): msacm/libmsacm32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msacm/libmsacm32.$(LIBEXT) $@
+msacm32.dll$(DLLEXT) msacm.dll$(DLLEXT): msacm/msacm32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msacm/msacm32.dll$(DLLEXT) $@
 
-libmsdmo.$(LIBEXT): msdmo/libmsdmo.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msdmo/libmsdmo.$(LIBEXT) $@
+msdmo.dll$(DLLEXT): msdmo/msdmo.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msdmo/msdmo.dll$(DLLEXT) $@
 
-libmsimg32.$(LIBEXT): msimg32/libmsimg32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msimg32/libmsimg32.$(LIBEXT) $@
+msimg32.dll$(DLLEXT): msimg32/msimg32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msimg32/msimg32.dll$(DLLEXT) $@
 
-libmsnet32.$(LIBEXT): msnet32/libmsnet32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msnet32/libmsnet32.$(LIBEXT) $@
+msnet32.dll$(DLLEXT): msnet32/msnet32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msnet32/msnet32.dll$(DLLEXT) $@
 
-libmsrle32.$(LIBEXT): msrle32/libmsrle32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msrle32/libmsrle32.$(LIBEXT) $@
+msrle32.dll$(DLLEXT): msrle32/msrle32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msrle32/msrle32.dll$(DLLEXT) $@
 
-libmsvcrt.$(LIBEXT): msvcrt/libmsvcrt.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msvcrt/libmsvcrt.$(LIBEXT) $@
+msvcrt.dll$(DLLEXT): msvcrt/msvcrt.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msvcrt/msvcrt.dll$(DLLEXT) $@
 
-libmsvcrt20.$(LIBEXT): msvcrt20/libmsvcrt20.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msvcrt20/libmsvcrt20.$(LIBEXT) $@
+msvcrt20.dll$(DLLEXT): msvcrt20/msvcrt20.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msvcrt20/msvcrt20.dll$(DLLEXT) $@
 
-libmsvfw32.$(LIBEXT) libmsvideo.$(LIBEXT): msvideo/libmsvfw32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) msvideo/libmsvfw32.$(LIBEXT) $@
+msvfw32.dll$(DLLEXT) msvideo.dll$(DLLEXT): msvideo/msvfw32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) msvideo/msvfw32.dll$(DLLEXT) $@
 
-libnetapi32.$(LIBEXT): netapi32/libnetapi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) netapi32/libnetapi32.$(LIBEXT) $@
+netapi32.dll$(DLLEXT): netapi32/netapi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) netapi32/netapi32.dll$(DLLEXT) $@
 
-libntdll.$(LIBEXT): ntdll/libntdll.$(LIBEXT)
-	$(RM) $@ && $(LN_S) ntdll/libntdll.$(LIBEXT) $@
+ntdll.dll$(DLLEXT): ntdll/ntdll.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) ntdll/ntdll.dll$(DLLEXT) $@
 
-libodbc32.$(LIBEXT): odbc32/libodbc32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) odbc32/libodbc32.$(LIBEXT) $@
+odbc32.dll$(DLLEXT): odbc32/odbc32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) odbc32/odbc32.dll$(DLLEXT) $@
 
-libole32.$(LIBEXT) libcompobj.$(LIBEXT) libole2.$(LIBEXT) \
-  libole2conv.$(LIBEXT) libole2nls.$(LIBEXT) libole2prox.$(LIBEXT) \
-  libole2thk.$(LIBEXT) libstorage.$(LIBEXT): ole32/libole32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) ole32/libole32.$(LIBEXT) $@
+ole32.dll$(DLLEXT) compobj.dll$(DLLEXT) ole2.dll$(DLLEXT) \
+  ole2conv.dll$(DLLEXT) ole2nls.dll$(DLLEXT) ole2prox.dll$(DLLEXT) \
+  ole2thk.dll$(DLLEXT) storage.dll$(DLLEXT): ole32/ole32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) ole32/ole32.dll$(DLLEXT) $@
 
-liboleaut32.$(LIBEXT) libole2disp.$(LIBEXT) libtypelib.$(LIBEXT): oleaut32/liboleaut32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) oleaut32/liboleaut32.$(LIBEXT) $@
+oleaut32.dll$(DLLEXT) ole2disp.dll$(DLLEXT) typelib.dll$(DLLEXT): oleaut32/oleaut32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) oleaut32/oleaut32.dll$(DLLEXT) $@
 
-libolecli32.$(LIBEXT) libolecli.$(LIBEXT): olecli/libolecli32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) olecli/libolecli32.$(LIBEXT) $@
+olecli32.dll$(DLLEXT) olecli.dll$(DLLEXT): olecli/olecli32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) olecli/olecli32.dll$(DLLEXT) $@
 
-liboledlg.$(LIBEXT): oledlg/liboledlg.$(LIBEXT)
-	$(RM) $@ && $(LN_S) oledlg/liboledlg.$(LIBEXT) $@
+oledlg.dll$(DLLEXT): oledlg/oledlg.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) oledlg/oledlg.dll$(DLLEXT) $@
 
-libolepro32.$(LIBEXT): olepro32/libolepro32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) olepro32/libolepro32.$(LIBEXT) $@
+olepro32.dll$(DLLEXT): olepro32/olepro32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) olepro32/olepro32.dll$(DLLEXT) $@
 
-libolesvr32.$(LIBEXT) libolesvr.$(LIBEXT): olesvr/libolesvr32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) olesvr/libolesvr32.$(LIBEXT) $@
+olesvr32.dll$(DLLEXT) olesvr.dll$(DLLEXT): olesvr/olesvr32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) olesvr/olesvr32.dll$(DLLEXT) $@
 
-libopengl32.$(LIBEXT): opengl32/libopengl32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) opengl32/libopengl32.$(LIBEXT) $@
+opengl32.dll$(DLLEXT): opengl32/opengl32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) opengl32/opengl32.dll$(DLLEXT) $@
 
-libpsapi.$(LIBEXT): psapi/libpsapi.$(LIBEXT)
-	$(RM) $@ && $(LN_S) psapi/libpsapi.$(LIBEXT) $@
+psapi.dll$(DLLEXT): psapi/psapi.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) psapi/psapi.dll$(DLLEXT) $@
 
-libqcap.$(LIBEXT): qcap/libqcap.$(LIBEXT)
-	$(RM) $@ && $(LN_S) qcap/libqcap.$(LIBEXT) $@
+qcap.dll$(DLLEXT): qcap/qcap.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) qcap/qcap.dll$(DLLEXT) $@
 
-libquartz.$(LIBEXT): quartz/libquartz.$(LIBEXT)
-	$(RM) $@ && $(LN_S) quartz/libquartz.$(LIBEXT) $@
+quartz.dll$(DLLEXT): quartz/quartz.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) quartz/quartz.dll$(DLLEXT) $@
 
-librasapi32.$(LIBEXT) librasapi16.$(LIBEXT): rasapi32/librasapi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) rasapi32/librasapi32.$(LIBEXT) $@
+rasapi32.dll$(DLLEXT) rasapi16.dll$(DLLEXT): rasapi32/rasapi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) rasapi32/rasapi32.dll$(DLLEXT) $@
 
-libriched32.$(LIBEXT): richedit/libriched32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) richedit/libriched32.$(LIBEXT) $@
+riched32.dll$(DLLEXT): richedit/riched32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) richedit/riched32.dll$(DLLEXT) $@
 
-librpcrt4.$(LIBEXT): rpcrt4/librpcrt4.$(LIBEXT)
-	$(RM) $@ && $(LN_S) rpcrt4/librpcrt4.$(LIBEXT) $@
+rpcrt4.dll$(DLLEXT): rpcrt4/rpcrt4.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) rpcrt4/rpcrt4.dll$(DLLEXT) $@
 
-libserialui.$(LIBEXT): serialui/libserialui.$(LIBEXT)
-	$(RM) $@ && $(LN_S) serialui/libserialui.$(LIBEXT) $@
+serialui.dll$(DLLEXT): serialui/serialui.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) serialui/serialui.dll$(DLLEXT) $@
 
-libsetupapi.$(LIBEXT) libsetupx.$(LIBEXT): setupapi/libsetupapi.$(LIBEXT)
-	$(RM) $@ && $(LN_S) setupapi/libsetupapi.$(LIBEXT) $@
+setupapi.dll$(DLLEXT) setupx.dll$(DLLEXT): setupapi/setupapi.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) setupapi/setupapi.dll$(DLLEXT) $@
 
-libshdocvw.$(LIBEXT): shdocvw/libshdocvw.$(LIBEXT)
-	$(RM) $@ && $(LN_S) shdocvw/libshdocvw.$(LIBEXT) $@
+shdocvw.dll$(DLLEXT): shdocvw/shdocvw.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) shdocvw/shdocvw.dll$(DLLEXT) $@
 
-libshell32.$(LIBEXT) libshell.$(LIBEXT): shell32/libshell32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) shell32/libshell32.$(LIBEXT) $@
+shell32.dll$(DLLEXT) shell.dll$(DLLEXT): shell32/shell32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) shell32/shell32.dll$(DLLEXT) $@
 
-libshfolder.$(LIBEXT): shfolder/libshfolder.$(LIBEXT)
-	$(RM) $@ && $(LN_S) shfolder/libshfolder.$(LIBEXT) $@
+shfolder.dll$(DLLEXT): shfolder/shfolder.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) shfolder/shfolder.dll$(DLLEXT) $@
 
-libshlwapi.$(LIBEXT): shlwapi/libshlwapi.$(LIBEXT)
-	$(RM) $@ && $(LN_S) shlwapi/libshlwapi.$(LIBEXT) $@
+shlwapi.dll$(DLLEXT): shlwapi/shlwapi.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) shlwapi/shlwapi.dll$(DLLEXT) $@
 
-libsti.$(LIBEXT): sti/libsti.$(LIBEXT)
-	$(RM) $@ && $(LN_S) sti/libsti.$(LIBEXT) $@
+sti.dll$(DLLEXT): sti/sti.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) sti/sti.dll$(DLLEXT) $@
 
-libtapi32.$(LIBEXT): tapi32/libtapi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) tapi32/libtapi32.$(LIBEXT) $@
+tapi32.dll$(DLLEXT): tapi32/tapi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) tapi32/tapi32.dll$(DLLEXT) $@
 
-libttydrv.$(LIBEXT): ttydrv/libttydrv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) ttydrv/libttydrv.$(LIBEXT) $@
+ttydrv.dll$(DLLEXT): ttydrv/ttydrv.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) ttydrv/ttydrv.dll$(DLLEXT) $@
 
-liburl.$(LIBEXT): url/liburl.$(LIBEXT)
-	$(RM) $@ && $(LN_S) url/liburl.$(LIBEXT) $@
+url.dll$(DLLEXT): url/url.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) url/url.dll$(DLLEXT) $@
 
-liburlmon.$(LIBEXT): urlmon/liburlmon.$(LIBEXT)
-	$(RM) $@ && $(LN_S) urlmon/liburlmon.$(LIBEXT) $@
+urlmon.dll$(DLLEXT): urlmon/urlmon.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) urlmon/urlmon.dll$(DLLEXT) $@
 
-libuser32.$(LIBEXT) libddeml.$(LIBEXT) libdisplay.$(LIBEXT) \
-  libkeyboard.$(LIBEXT) libmouse.$(LIBEXT) libuser.$(LIBEXT): user/libuser32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) user/libuser32.$(LIBEXT) $@
+user32.dll$(DLLEXT) ddeml.dll$(DLLEXT) display.dll$(DLLEXT) \
+  keyboard.dll$(DLLEXT) mouse.dll$(DLLEXT) user.dll$(DLLEXT): user/user32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) user/user32.dll$(DLLEXT) $@
 
-libversion.$(LIBEXT) libver.$(LIBEXT): version/libversion.$(LIBEXT)
-	$(RM) $@ && $(LN_S) version/libversion.$(LIBEXT) $@
+version.dll$(DLLEXT) ver.dll$(DLLEXT): version/version.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) version/version.dll$(DLLEXT) $@
 
-libw32skrnl.$(LIBEXT) libw32sys.$(LIBEXT) libwin32s16.$(LIBEXT): win32s/libw32skrnl.$(LIBEXT)
-	$(RM) $@ && $(LN_S) win32s/libw32skrnl.$(LIBEXT) $@
+w32skrnl.dll$(DLLEXT) w32sys.dll$(DLLEXT) win32s16.dll$(DLLEXT): win32s/w32skrnl.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) win32s/w32skrnl.dll$(DLLEXT) $@
 
-libwinedos.$(LIBEXT): winedos/libwinedos.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winedos/libwinedos.$(LIBEXT) $@
+winedos.dll$(DLLEXT): winedos/winedos.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) winedos/winedos.dll$(DLLEXT) $@
 
-libwineoss.drv.$(LIBEXT): winmm/wineoss/libwineoss.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/wineoss/libwineoss.drv.$(LIBEXT) $@
+wineoss.drv$(DLLEXT): winmm/wineoss/wineoss.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/wineoss/wineoss.drv$(DLLEXT) $@
 
-libwineps.$(LIBEXT) libwineps16.$(LIBEXT): wineps/libwineps.$(LIBEXT)
-	$(RM) $@ && $(LN_S) wineps/libwineps.$(LIBEXT) $@
+wineps.dll$(DLLEXT) wineps16.dll$(DLLEXT): wineps/wineps.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) wineps/wineps.dll$(DLLEXT) $@
 
-libwininet.$(LIBEXT): wininet/libwininet.$(LIBEXT)
-	$(RM) $@ && $(LN_S) wininet/libwininet.$(LIBEXT) $@
+wininet.dll$(DLLEXT): wininet/wininet.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) wininet/wininet.dll$(DLLEXT) $@
 
-libwinmm.$(LIBEXT) libmmsystem.$(LIBEXT) libsound.$(LIBEXT): winmm/libwinmm.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winmm/libwinmm.$(LIBEXT) $@
+winmm.dll$(DLLEXT) mmsystem.dll$(DLLEXT) sound.dll$(DLLEXT): winmm/winmm.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) winmm/winmm.dll$(DLLEXT) $@
 
-libwinnls32.$(LIBEXT) libwinnls.$(LIBEXT): winnls/libwinnls32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winnls/libwinnls32.$(LIBEXT) $@
+winnls32.dll$(DLLEXT) winnls.dll$(DLLEXT): winnls/winnls32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) winnls/winnls32.dll$(DLLEXT) $@
 
-libwinspool.drv.$(LIBEXT): winspool/libwinspool.drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winspool/libwinspool.drv.$(LIBEXT) $@
+winspool.drv$(DLLEXT): winspool/winspool.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winspool/winspool.drv$(DLLEXT) $@
 
-libwintrust.$(LIBEXT): wintrust/libwintrust.$(LIBEXT)
-	$(RM) $@ && $(LN_S) wintrust/libwintrust.$(LIBEXT) $@
+wintrust.dll$(DLLEXT): wintrust/wintrust.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) wintrust/wintrust.dll$(DLLEXT) $@
 
-libwnaspi32.$(LIBEXT) libwinaspi.$(LIBEXT): winaspi/libwnaspi32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winaspi/libwnaspi32.$(LIBEXT) $@
+wnaspi32.dll$(DLLEXT) winaspi.dll$(DLLEXT): winaspi/wnaspi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) winaspi/wnaspi32.dll$(DLLEXT) $@
 
-libwow32.$(LIBEXT): wow32/libwow32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) wow32/libwow32.$(LIBEXT) $@
+wow32.dll$(DLLEXT): wow32/wow32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) wow32/wow32.dll$(DLLEXT) $@
 
-libws2_32.$(LIBEXT) libwinsock.$(LIBEXT): winsock/libws2_32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) winsock/libws2_32.$(LIBEXT) $@
+ws2_32.dll$(DLLEXT) winsock.dll$(DLLEXT): winsock/ws2_32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) winsock/ws2_32.dll$(DLLEXT) $@
 
-libwsock32.$(LIBEXT): wsock32/libwsock32.$(LIBEXT)
-	$(RM) $@ && $(LN_S) wsock32/libwsock32.$(LIBEXT) $@
+wsock32.dll$(DLLEXT): wsock32/wsock32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) wsock32/wsock32.dll$(DLLEXT) $@
 
-libx11drv.$(LIBEXT): x11drv/libx11drv.$(LIBEXT)
-	$(RM) $@ && $(LN_S) x11drv/libx11drv.$(LIBEXT) $@
+x11drv.dll$(DLLEXT): x11drv/x11drv.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) x11drv/x11drv.dll$(DLLEXT) $@
 
 # Inter-dll dependencies
 
-advapi32/libadvapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd advapi32 && $(MAKE) libadvapi32.$(LIBEXT)
+advapi32/advapi32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd advapi32 && $(MAKE) advapi32.dll$(DLLEXT)
+
+avicap32/avicap32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd avicap32 && $(MAKE) avicap32.dll$(DLLEXT)
+
+avifil32/avifil32.dll$(DLLEXT): dummy msvfw32.dll$(DLLEXT) ole32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd avifil32 && $(MAKE) avifil32.dll$(DLLEXT)
+
+comctl32/comctl32.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd comctl32 && $(MAKE) comctl32.dll$(DLLEXT)
+
+commdlg/comdlg32.dll$(DLLEXT): dummy shell32.dll$(DLLEXT) shlwapi.dll$(DLLEXT) \
+  comctl32.dll$(DLLEXT) winspool.drv$(DLLEXT) user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd commdlg && $(MAKE) comdlg32.dll$(DLLEXT)
+
+crtdll/crtdll.dll$(DLLEXT): dummy msvcrt.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd crtdll && $(MAKE) crtdll.dll$(DLLEXT)
+
+crypt32/crypt32.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd crypt32 && $(MAKE) crypt32.dll$(DLLEXT)
+
+dciman32/dciman32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd dciman32 && $(MAKE) dciman32.dll$(DLLEXT)
 
-avicap32/libavicap32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd avicap32 && $(MAKE) libavicap32.$(LIBEXT)
+ddraw/ddraw.dll$(DLLEXT): dummy user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) libuser32.dll.$(LIBEXT) libgdi32.dll.$(LIBEXT) \
+  libkernel32.dll.$(LIBEXT) libntdll.dll.$(LIBEXT)
+	@cd ddraw && $(MAKE) ddraw.dll$(DLLEXT)
 
-avifil32/libavifil32.$(LIBEXT): dummy libmsvfw32.$(LIBEXT) libole32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd avifil32 && $(MAKE) libavifil32.$(LIBEXT)
+devenum/devenum.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd devenum && $(MAKE) devenum.dll$(DLLEXT)
 
-comctl32/libcomctl32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd comctl32 && $(MAKE) libcomctl32.$(LIBEXT)
+dinput/dinput.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd dinput && $(MAKE) dinput.dll$(DLLEXT)
 
-commdlg/libcomdlg32.$(LIBEXT): dummy libshell32.$(LIBEXT) libshlwapi.$(LIBEXT) \
-  libcomctl32.$(LIBEXT) libwinspool.drv.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd commdlg && $(MAKE) libcomdlg32.$(LIBEXT)
+dplay/dplay.dll$(DLLEXT): dummy dplayx.dll$(DLLEXT)
+	@cd dplay && $(MAKE) dplay.dll$(DLLEXT)
 
-crtdll/libcrtdll.$(LIBEXT): dummy libmsvcrt.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd crtdll && $(MAKE) libcrtdll.$(LIBEXT)
+dplayx/dplayx.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) ole32.dll$(DLLEXT) \
+  user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd dplayx && $(MAKE) dplayx.dll$(DLLEXT)
 
-crypt32/libcrypt32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd crypt32 && $(MAKE) libcrypt32.$(LIBEXT)
+dsound/dsound.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd dsound && $(MAKE) dsound.dll$(DLLEXT)
 
-dciman32/libdciman32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd dciman32 && $(MAKE) libdciman32.$(LIBEXT)
+gdi/gdi32.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT) libkernel32.dll.$(LIBEXT) libntdll.dll.$(LIBEXT)
+	@cd gdi && $(MAKE) gdi32.dll$(DLLEXT)
 
-ddraw/libddraw.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd ddraw && $(MAKE) libddraw.$(LIBEXT)
+glu32/glu32.dll$(DLLEXT): dummy
+	@cd glu32 && $(MAKE) glu32.dll$(DLLEXT)
 
-devenum/libdevenum.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd devenum && $(MAKE) libdevenum.$(LIBEXT)
+icmp/icmp.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd icmp && $(MAKE) icmp.dll$(DLLEXT)
 
-dinput/libdinput.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd dinput && $(MAKE) libdinput.$(LIBEXT)
+imagehlp/imagehlp.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd imagehlp && $(MAKE) imagehlp.dll$(DLLEXT)
 
-dplay/libdplay.$(LIBEXT): dummy libdplayx.$(LIBEXT)
-	@cd dplay && $(MAKE) libdplay.$(LIBEXT)
+imm32/imm32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd imm32 && $(MAKE) imm32.dll$(DLLEXT)
 
-dplayx/libdplayx.$(LIBEXT): dummy libwinmm.$(LIBEXT) libole32.$(LIBEXT) \
-  libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd dplayx && $(MAKE) libdplayx.$(LIBEXT)
+kernel/kernel32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT) libntdll.dll.$(LIBEXT)
+	@cd kernel && $(MAKE) kernel32.dll$(DLLEXT)
 
-dsound/libdsound.$(LIBEXT): dummy libwinmm.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd dsound && $(MAKE) libdsound.$(LIBEXT)
+lzexpand/lz32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd lzexpand && $(MAKE) lz32.dll$(DLLEXT)
 
-gdi/libgdi32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd gdi && $(MAKE) libgdi32.$(LIBEXT)
+mapi32/mapi32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd mapi32 && $(MAKE) mapi32.dll$(DLLEXT)
 
-glu32/libglu32.$(LIBEXT): dummy
-	@cd glu32 && $(MAKE) libglu32.$(LIBEXT)
+mpr/mpr.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd mpr && $(MAKE) mpr.dll$(DLLEXT)
 
-icmp/libicmp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd icmp && $(MAKE) libicmp.$(LIBEXT)
+msacm/msacm32.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msacm && $(MAKE) msacm32.dll$(DLLEXT)
 
-imagehlp/libimagehlp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd imagehlp && $(MAKE) libimagehlp.$(LIBEXT)
+msdmo/msdmo.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msdmo && $(MAKE) msdmo.dll$(DLLEXT)
 
-imm32/libimm32.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd imm32 && $(MAKE) libimm32.$(LIBEXT)
+msimg32/msimg32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd msimg32 && $(MAKE) msimg32.dll$(DLLEXT)
 
-kernel/libkernel32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd kernel && $(MAKE) libkernel32.$(LIBEXT)
+msnet32/msnet32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd msnet32 && $(MAKE) msnet32.dll$(DLLEXT)
 
-lzexpand/liblz32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd lzexpand && $(MAKE) liblz32.$(LIBEXT)
+msrle32/msrle32.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msrle32 && $(MAKE) msrle32.dll$(DLLEXT)
 
-mapi32/libmapi32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd mapi32 && $(MAKE) libmapi32.$(LIBEXT)
+msvcrt/msvcrt.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msvcrt && $(MAKE) msvcrt.dll$(DLLEXT)
 
-mpr/libmpr.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd mpr && $(MAKE) libmpr.$(LIBEXT)
+msvcrt20/msvcrt20.dll$(DLLEXT): dummy msvcrt.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msvcrt20 && $(MAKE) msvcrt20.dll$(DLLEXT)
 
-msacm/libmsacm32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msacm && $(MAKE) libmsacm32.$(LIBEXT)
+msvideo/msvfw32.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) comctl32.dll$(DLLEXT) \
+  version.dll$(DLLEXT) user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd msvideo && $(MAKE) msvfw32.dll$(DLLEXT)
 
-msdmo/libmsdmo.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msdmo && $(MAKE) libmsdmo.$(LIBEXT)
+netapi32/netapi32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd netapi32 && $(MAKE) netapi32.dll$(DLLEXT)
 
-msimg32/libmsimg32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msimg32 && $(MAKE) libmsimg32.$(LIBEXT)
+ntdll/ntdll.dll$(DLLEXT): dummy
+	@cd ntdll && $(MAKE) ntdll.dll$(DLLEXT)
 
-msnet32/libmsnet32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msnet32 && $(MAKE) libmsnet32.$(LIBEXT)
+odbc32/odbc32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd odbc32 && $(MAKE) odbc32.dll$(DLLEXT)
 
-msrle32/libmsrle32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msrle32 && $(MAKE) libmsrle32.$(LIBEXT)
+ole32/ole32.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  gdi32.dll$(DLLEXT) rpcrt4.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd ole32 && $(MAKE) ole32.dll$(DLLEXT)
 
-msvcrt/libmsvcrt.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msvcrt && $(MAKE) libmsvcrt.$(LIBEXT)
+oleaut32/oleaut32.dll$(DLLEXT): dummy comctl32.dll$(DLLEXT) ole32.dll$(DLLEXT) \
+  user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd oleaut32 && $(MAKE) oleaut32.dll$(DLLEXT)
 
-msvcrt20/libmsvcrt20.$(LIBEXT): dummy libmsvcrt.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msvcrt20 && $(MAKE) libmsvcrt20.$(LIBEXT)
+olecli/olecli32.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olecli && $(MAKE) olecli32.dll$(DLLEXT)
 
-msvideo/libmsvfw32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libcomctl32.$(LIBEXT) \
-  libversion.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd msvideo && $(MAKE) libmsvfw32.$(LIBEXT)
+oledlg/oledlg.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd oledlg && $(MAKE) oledlg.dll$(DLLEXT)
 
-netapi32/libnetapi32.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd netapi32 && $(MAKE) libnetapi32.$(LIBEXT)
+olepro32/olepro32.dll$(DLLEXT): dummy oleaut32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olepro32 && $(MAKE) olepro32.dll$(DLLEXT)
 
-ntdll/libntdll.$(LIBEXT): dummy
-	@cd ntdll && $(MAKE) libntdll.$(LIBEXT)
+olesvr/olesvr32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olesvr && $(MAKE) olesvr32.dll$(DLLEXT)
 
-odbc32/libodbc32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd odbc32 && $(MAKE) libodbc32.$(LIBEXT)
+opengl32/opengl32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) x11drv.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) libx11drv.dll.$(LIBEXT) libkernel32.dll.$(LIBEXT) \
+  libntdll.dll.$(LIBEXT)
+	@cd opengl32 && $(MAKE) opengl32.dll$(DLLEXT)
 
-ole32/libole32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libuser32.$(LIBEXT) \
-  libgdi32.$(LIBEXT) librpcrt4.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd ole32 && $(MAKE) libole32.$(LIBEXT)
+psapi/psapi.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd psapi && $(MAKE) psapi.dll$(DLLEXT)
 
-oleaut32/liboleaut32.$(LIBEXT): dummy libcomctl32.$(LIBEXT) libole32.$(LIBEXT) \
-  libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd oleaut32 && $(MAKE) liboleaut32.$(LIBEXT)
+qcap/qcap.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd qcap && $(MAKE) qcap.dll$(DLLEXT)
 
-olecli/libolecli32.$(LIBEXT): dummy libole32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olecli && $(MAKE) libolecli32.$(LIBEXT)
+quartz/quartz.dll$(DLLEXT): dummy oleaut32.dll$(DLLEXT) ole32.dll$(DLLEXT) \
+  msvfw32.dll$(DLLEXT) winmm.dll$(DLLEXT) user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd quartz && $(MAKE) quartz.dll$(DLLEXT)
 
-oledlg/liboledlg.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd oledlg && $(MAKE) liboledlg.$(LIBEXT)
+rasapi32/rasapi32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd rasapi32 && $(MAKE) rasapi32.dll$(DLLEXT)
 
-olepro32/libolepro32.$(LIBEXT): dummy liboleaut32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olepro32 && $(MAKE) libolepro32.$(LIBEXT)
+richedit/riched32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd richedit && $(MAKE) riched32.dll$(DLLEXT)
 
-olesvr/libolesvr32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olesvr && $(MAKE) libolesvr32.$(LIBEXT)
+rpcrt4/rpcrt4.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd rpcrt4 && $(MAKE) rpcrt4.dll$(DLLEXT)
 
-opengl32/libopengl32.$(LIBEXT): dummy libuser32.$(LIBEXT) libx11drv.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd opengl32 && $(MAKE) libopengl32.$(LIBEXT)
+serialui/serialui.dll$(DLLEXT): dummy user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd serialui && $(MAKE) serialui.dll$(DLLEXT)
 
-psapi/libpsapi.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd psapi && $(MAKE) libpsapi.$(LIBEXT)
+setupapi/setupapi.dll$(DLLEXT): dummy user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd setupapi && $(MAKE) setupapi.dll$(DLLEXT)
 
-qcap/libqcap.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd qcap && $(MAKE) libqcap.$(LIBEXT)
+shdocvw/shdocvw.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd shdocvw && $(MAKE) shdocvw.dll$(DLLEXT)
 
-quartz/libquartz.$(LIBEXT): dummy liboleaut32.$(LIBEXT) libole32.$(LIBEXT) \
-  libmsvfw32.$(LIBEXT) libwinmm.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd quartz && $(MAKE) libquartz.$(LIBEXT)
+shell32/shell32.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) shlwapi.dll$(DLLEXT) \
+  comctl32.dll$(DLLEXT) user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd shell32 && $(MAKE) shell32.dll$(DLLEXT)
 
-rasapi32/librasapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd rasapi32 && $(MAKE) librasapi32.$(LIBEXT)
+shfolder/shfolder.dll$(DLLEXT): dummy shell32.dll$(DLLEXT)
+	@cd shfolder && $(MAKE) shfolder.dll$(DLLEXT)
 
-richedit/libriched32.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd richedit && $(MAKE) libriched32.$(LIBEXT)
+shlwapi/shlwapi.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  gdi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd shlwapi && $(MAKE) shlwapi.dll$(DLLEXT)
 
-rpcrt4/librpcrt4.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd rpcrt4 && $(MAKE) librpcrt4.$(LIBEXT)
+sti/sti.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd sti && $(MAKE) sti.dll$(DLLEXT)
 
-serialui/libserialui.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd serialui && $(MAKE) libserialui.$(LIBEXT)
+tapi32/tapi32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd tapi32 && $(MAKE) tapi32.dll$(DLLEXT)
 
-setupapi/libsetupapi.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd setupapi && $(MAKE) libsetupapi.$(LIBEXT)
+ttydrv/ttydrv.dll$(DLLEXT): dummy user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) libuser32.dll.$(LIBEXT) libgdi32.dll.$(LIBEXT) \
+  libkernel32.dll.$(LIBEXT) libntdll.dll.$(LIBEXT)
+	@cd ttydrv && $(MAKE) ttydrv.dll$(DLLEXT)
 
-shdocvw/libshdocvw.$(LIBEXT): dummy libole32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd shdocvw && $(MAKE) libshdocvw.$(LIBEXT)
+url/url.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd url && $(MAKE) url.dll$(DLLEXT)
 
-shell32/libshell32.$(LIBEXT): dummy libole32.$(LIBEXT) libshlwapi.$(LIBEXT) \
-  libcomctl32.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd shell32 && $(MAKE) libshell32.$(LIBEXT)
+urlmon/urlmon.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd urlmon && $(MAKE) urlmon.dll$(DLLEXT)
 
-shfolder/libshfolder.$(LIBEXT): dummy libshell32.$(LIBEXT)
-	@cd shfolder && $(MAKE) libshfolder.$(LIBEXT)
+user/user32.dll$(DLLEXT): dummy gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) libgdi32.dll.$(LIBEXT) libkernel32.dll.$(LIBEXT) \
+  libntdll.dll.$(LIBEXT)
+	@cd user && $(MAKE) user32.dll$(DLLEXT)
 
-shlwapi/libshlwapi.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libuser32.$(LIBEXT) \
-  libgdi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd shlwapi && $(MAKE) libshlwapi.$(LIBEXT)
+version/version.dll$(DLLEXT): dummy lz32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd version && $(MAKE) version.dll$(DLLEXT)
 
-sti/libsti.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd sti && $(MAKE) libsti.$(LIBEXT)
+win32s/w32skrnl.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd win32s && $(MAKE) w32skrnl.dll$(DLLEXT)
 
-tapi32/libtapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd tapi32 && $(MAKE) libtapi32.$(LIBEXT)
+winaspi/wnaspi32.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd winaspi && $(MAKE) wnaspi32.dll$(DLLEXT)
 
-ttydrv/libttydrv.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd ttydrv && $(MAKE) libttydrv.$(LIBEXT)
+winedos/winedos.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT) libuser32.dll.$(LIBEXT) libkernel32.dll.$(LIBEXT) libntdll.dll.$(LIBEXT)
+	@cd winedos && $(MAKE) winedos.dll$(DLLEXT)
 
-url/liburl.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd url && $(MAKE) liburl.$(LIBEXT)
+wineps/wineps.dll$(DLLEXT): dummy user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  winspool.drv$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) \
+  libuser32.dll.$(LIBEXT) libgdi32.dll.$(LIBEXT) libwinspool.drv.$(LIBEXT) libkernel32.dll.$(LIBEXT) \
+  libntdll.dll.$(LIBEXT)
+	@cd wineps && $(MAKE) wineps.dll$(DLLEXT)
 
-urlmon/liburlmon.$(LIBEXT): dummy libole32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd urlmon && $(MAKE) liburlmon.$(LIBEXT)
+wininet/wininet.dll$(DLLEXT): dummy shlwapi.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd wininet && $(MAKE) wininet.dll$(DLLEXT)
 
-user/libuser32.$(LIBEXT): dummy libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd user && $(MAKE) libuser32.$(LIBEXT)
+winmm/joystick/joystick.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd winmm/joystick && $(MAKE) joystick.drv$(DLLEXT)
 
-version/libversion.$(LIBEXT): dummy liblz32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd version && $(MAKE) libversion.$(LIBEXT)
+winmm/mcianim/mcianim.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/mcianim && $(MAKE) mcianim.drv$(DLLEXT)
 
-win32s/libw32skrnl.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd win32s && $(MAKE) libw32skrnl.$(LIBEXT)
+winmm/mciavi/mciavi.drv$(DLLEXT): dummy msvfw32.dll$(DLLEXT) winmm.dll$(DLLEXT) \
+  user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/mciavi && $(MAKE) mciavi.drv$(DLLEXT)
 
-winaspi/libwnaspi32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd winaspi && $(MAKE) libwnaspi32.$(LIBEXT)
+winmm/mcicda/mcicda.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/mcicda && $(MAKE) mcicda.drv$(DLLEXT)
 
-winedos/libwinedos.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd winedos && $(MAKE) libwinedos.$(LIBEXT)
+winmm/mciseq/mciseq.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/mciseq && $(MAKE) mciseq.drv$(DLLEXT)
 
-wineps/libwineps.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libwinspool.drv.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd wineps && $(MAKE) libwineps.$(LIBEXT)
+winmm/mciwave/mciwave.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/mciwave && $(MAKE) mciwave.drv$(DLLEXT)
 
-wininet/libwininet.$(LIBEXT): dummy libshlwapi.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd wininet && $(MAKE) libwininet.$(LIBEXT)
+winmm/midimap/midimap.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/midimap && $(MAKE) midimap.drv$(DLLEXT)
 
-winmm/joystick/libjoystick.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd winmm/joystick && $(MAKE) libjoystick.drv.$(LIBEXT)
+winmm/wavemap/msacm.drv$(DLLEXT): dummy msacm32.dll$(DLLEXT) winmm.dll$(DLLEXT) \
+  user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/wavemap && $(MAKE) msacm.drv$(DLLEXT)
 
-winmm/libwinmm.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm && $(MAKE) libwinmm.$(LIBEXT)
+winmm/wineoss/wineoss.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm/wineoss && $(MAKE) wineoss.drv$(DLLEXT)
 
-winmm/mcianim/libmcianim.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/mcianim && $(MAKE) libmcianim.drv.$(LIBEXT)
+winmm/winmm.dll$(DLLEXT): dummy user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winmm && $(MAKE) winmm.dll$(DLLEXT)
 
-winmm/mciavi/libmciavi.drv.$(LIBEXT): dummy libmsvfw32.$(LIBEXT) libwinmm.$(LIBEXT) \
-  libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/mciavi && $(MAKE) libmciavi.drv.$(LIBEXT)
+winnls/winnls32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd winnls && $(MAKE) winnls32.dll$(DLLEXT)
 
-winmm/mcicda/libmcicda.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/mcicda && $(MAKE) libmcicda.drv.$(LIBEXT)
+winsock/ws2_32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT) libuser32.dll.$(LIBEXT) libkernel32.dll.$(LIBEXT) libntdll.dll.$(LIBEXT)
+	@cd winsock && $(MAKE) ws2_32.dll$(DLLEXT)
 
-winmm/mciseq/libmciseq.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/mciseq && $(MAKE) libmciseq.drv.$(LIBEXT)
+winspool/winspool.drv$(DLLEXT): dummy advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd winspool && $(MAKE) winspool.drv$(DLLEXT)
 
-winmm/mciwave/libmciwave.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/mciwave && $(MAKE) libmciwave.drv.$(LIBEXT)
+wintrust/wintrust.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd wintrust && $(MAKE) wintrust.dll$(DLLEXT)
 
-winmm/midimap/libmidimap.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/midimap && $(MAKE) libmidimap.drv.$(LIBEXT)
+wow32/wow32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT)
+	@cd wow32 && $(MAKE) wow32.dll$(DLLEXT)
 
-winmm/wavemap/libmsacm.drv.$(LIBEXT): dummy libmsacm32.$(LIBEXT) libwinmm.$(LIBEXT) \
-  libuser32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/wavemap && $(MAKE) libmsacm.drv.$(LIBEXT)
+wsock32/wsock32.dll$(DLLEXT): dummy ws2_32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd wsock32 && $(MAKE) wsock32.dll$(DLLEXT)
 
-winmm/wineoss/libwineoss.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winmm/wineoss && $(MAKE) libwineoss.drv.$(LIBEXT)
+x11drv/x11drv.dll$(DLLEXT): dummy user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) libuser32.dll.$(LIBEXT) \
+  libgdi32.dll.$(LIBEXT) libkernel32.dll.$(LIBEXT)
+	@cd x11drv && $(MAKE) x11drv.dll$(DLLEXT)
 
-winnls/libwinnls32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd winnls && $(MAKE) libwinnls32.$(LIBEXT)
+# Special targets for dlls that we need to link to
 
-winsock/libws2_32.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd winsock && $(MAKE) libws2_32.$(LIBEXT)
+libwinspool.drv.$(LIBEXT): winspool/winspool.drv$(DLLEXT)
+	$(RM) $@ && $(LN_S) winspool/winspool.drv$(DLLEXT) $@
 
-winspool/libwinspool.drv.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd winspool && $(MAKE) libwinspool.drv.$(LIBEXT)
+libntdll.dll.$(LIBEXT): ntdll/ntdll.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) ntdll/ntdll.dll$(DLLEXT) $@
 
-wintrust/libwintrust.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd wintrust && $(MAKE) libwintrust.$(LIBEXT)
+libgdi32.dll.$(LIBEXT): gdi/gdi32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) gdi/gdi32.dll$(DLLEXT) $@
 
-wow32/libwow32.$(LIBEXT): dummy libkernel32.$(LIBEXT)
-	@cd wow32 && $(MAKE) libwow32.$(LIBEXT)
+libx11drv.dll.$(LIBEXT): x11drv/x11drv.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) x11drv/x11drv.dll$(DLLEXT) $@
 
-wsock32/libwsock32.$(LIBEXT): dummy libws2_32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd wsock32 && $(MAKE) libwsock32.$(LIBEXT)
+libuser32.dll.$(LIBEXT): user/user32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) user/user32.dll$(DLLEXT) $@
 
-x11drv/libx11drv.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd x11drv && $(MAKE) libx11drv.$(LIBEXT)
+libkernel32.dll.$(LIBEXT): kernel/kernel32.dll$(DLLEXT)
+	$(RM) $@ && $(LN_S) kernel/kernel32.dll$(DLLEXT) $@
 
 # Misc rules
 
@@ -793,6 +821,7 @@ $(SUBDIRS:%=%/__debug_channels__): dummy
 install:: $(SUBDIRS:%=%/__install__)
 
 uninstall:: $(SUBDIRS:%=%/__uninstall__)
+	-rmdir $(dlldir)
 
 check test:: $(SUBDIRS:%=%/__test__)
 
diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in
index d8886126de8..2dcd55018b9 100644
--- a/dlls/advapi32/Makefile.in
+++ b/dlls/advapi32/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = advapi32
+MODULE    = advapi32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/avicap32/Makefile.in b/dlls/avicap32/Makefile.in
index 40c1432dd86..e5e69c8fc4f 100644
--- a/dlls/avicap32/Makefile.in
+++ b/dlls/avicap32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = avicap32
+MODULE    = avicap32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/avifil32/Makefile.in b/dlls/avifil32/Makefile.in
index c8738dea1cc..0c1f49593ce 100644
--- a/dlls/avifil32/Makefile.in
+++ b/dlls/avifil32/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = avifil32
-ALTNAMES  = avifile
+MODULE    = avifil32.dll
+ALTNAMES  = avifile.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/comctl32/Makefile.in b/dlls/comctl32/Makefile.in
index 22f05ef8dbc..92a83ae6cbc 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = comctl32
+MODULE    = comctl32.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/commdlg/Makefile.in b/dlls/commdlg/Makefile.in
index 56442f30736..2a2aa4a30f3 100644
--- a/dlls/commdlg/Makefile.in
+++ b/dlls/commdlg/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = comdlg32
-ALTNAMES  = commdlg
+MODULE    = comdlg32.dll
+ALTNAMES  = commdlg.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/crtdll/Makefile.in b/dlls/crtdll/Makefile.in
index 93e9515d211..6098756f0d8 100644
--- a/dlls/crtdll/Makefile.in
+++ b/dlls/crtdll/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = crtdll
+MODULE    = crtdll.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/crypt32/Makefile.in b/dlls/crypt32/Makefile.in
index 15c7b843404..fc7d74e3cbb 100644
--- a/dlls/crypt32/Makefile.in
+++ b/dlls/crypt32/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = crypt32
+MODULE    = crypt32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/dciman32/Makefile.in b/dlls/dciman32/Makefile.in
index 672218dcd80..437eab916e5 100644
--- a/dlls/dciman32/Makefile.in
+++ b/dlls/dciman32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = dciman32
+MODULE    = dciman32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/ddraw/Makefile.in b/dlls/ddraw/Makefile.in
index df6b5bcfa9a..0a107f4e58f 100644
--- a/dlls/ddraw/Makefile.in
+++ b/dlls/ddraw/Makefile.in
@@ -2,9 +2,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ddraw
+MODULE    = ddraw.dll
 EXTRALIBS = $(LIBUUID) $(LIBTSX11) $(X_LIBS) $(XLIB)
-IMPORTS   = user32 gdi32 kernel32 ntdll
+IMPORTS   = user32.dll gdi32.dll kernel32.dll ntdll.dll
 
 OPENGLFILES = \
 	d3dcommon.c \
diff --git a/dlls/devenum/Makefile.in b/dlls/devenum/Makefile.in
index e6c51f907c6..7637becbff7 100644
--- a/dlls/devenum/Makefile.in
+++ b/dlls/devenum/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = devenum
+MODULE    = devenum.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/dinput/Makefile.in b/dlls/dinput/Makefile.in
index 40476150a79..fae2dc2daf9 100644
--- a/dlls/dinput/Makefile.in
+++ b/dlls/dinput/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = dinput
+MODULE    = dinput.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/dplay/Makefile.in b/dlls/dplay/Makefile.in
index a7264a1c6ca..2cc81787149 100644
--- a/dlls/dplay/Makefile.in
+++ b/dlls/dplay/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = dplay
+MODULE    = dplay.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/dplayx/Makefile.in b/dlls/dplayx/Makefile.in
index ca0549e8e06..2c36e889156 100644
--- a/dlls/dplayx/Makefile.in
+++ b/dlls/dplayx/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = dplayx
+MODULE    = dplayx.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/dsound/Makefile.in b/dlls/dsound/Makefile.in
index 6aef5d8496a..e2181ab6b26 100644
--- a/dlls/dsound/Makefile.in
+++ b/dlls/dsound/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = dsound
+MODULE    = dsound.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/gdi/Makefile.in b/dlls/gdi/Makefile.in
index de148ec6303..32d9677dc85 100644
--- a/dlls/gdi/Makefile.in
+++ b/dlls/gdi/Makefile.in
@@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = gdi32
-SOVERSION = 1.0
-ALTNAMES  = gdi dispdib wing
-IMPORTS   = kernel32 ntdll
+MODULE    = gdi32.dll
+ALTNAMES  = gdi.dll dispdib.dll wing.dll
+IMPORTS   = kernel32.dll ntdll.dll
 EXTRALIBS = @FREETYPELIBS@
 EXTRAINCL = @FREETYPEINCL@
 
@@ -52,5 +51,7 @@ version16.res: version16.rc
 
 gdi.spec.c: version16.res
 
-### Dependencies:
+install:: install_libdir
+uninstall:: uninstall_libdir
 
+### Dependencies:
diff --git a/dlls/glu32/Makefile.in b/dlls/glu32/Makefile.in
index e82d50f1812..9265d618689 100644
--- a/dlls/glu32/Makefile.in
+++ b/dlls/glu32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = glu32
+MODULE    = glu32.dll
 EXTRALIBS = $(X_LIBS) $(XLIB)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/icmp/Makefile.in b/dlls/icmp/Makefile.in
index 9cd6c96072e..741987d81a1 100644
--- a/dlls/icmp/Makefile.in
+++ b/dlls/icmp/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = icmp
+MODULE    = icmp.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/imagehlp/Makefile.in b/dlls/imagehlp/Makefile.in
index 3fe1457f66d..7a8f269ce72 100644
--- a/dlls/imagehlp/Makefile.in
+++ b/dlls/imagehlp/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = imagehlp
+MODULE    = imagehlp.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/imm32/Makefile.in b/dlls/imm32/Makefile.in
index b16dca7310d..43e192532db 100644
--- a/dlls/imm32/Makefile.in
+++ b/dlls/imm32/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = imm32
-ALTNAMES  = imm
+MODULE    = imm32.dll
+ALTNAMES  = imm.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/kernel/Makefile.in b/dlls/kernel/Makefile.in
index 50fd6986f30..889dfbd0548 100644
--- a/dlls/kernel/Makefile.in
+++ b/dlls/kernel/Makefile.in
@@ -2,10 +2,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = kernel32
-SOVERSION = 1.0
-ALTNAMES  = comm kernel stress system toolhelp windebug win87em wprocs
-IMPORTS   = ntdll
+MODULE    = kernel32.dll
+ALTNAMES  = comm.dll kernel.dll stress.dll system.dll toolhelp.dll windebug.dll win87em.dll wprocs.dll
+IMPORTS   = ntdll.dll
 
 C_SRCS = \
 	comm.c \
@@ -54,4 +53,7 @@ version16.res: version16.rc
 
 kernel.spec.c: version16.res
 
+install:: install_libdir
+uninstall:: uninstall_libdir
+
 ### Dependencies:
diff --git a/dlls/lzexpand/Makefile.in b/dlls/lzexpand/Makefile.in
index 1b78601eb85..633a0cd0890 100644
--- a/dlls/lzexpand/Makefile.in
+++ b/dlls/lzexpand/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = lz32
-ALTNAMES  = lzexpand
+MODULE    = lz32.dll
+ALTNAMES  = lzexpand.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/make_dlls b/dlls/make_dlls
index d0979914b67..3788940ca7e 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -25,6 +25,7 @@ $makefiles = `find . -name Makefile.in -print`;
 %imports = ();
 %directories = ();
 %altnames = ();
+%linked_dlls = ();
 
 # list of special dlls that can be switched on or off by configure
 %special_dlls =
@@ -53,25 +54,34 @@ foreach $i (split(/\s/,$makefiles))
             $altnames{$module} = \@list;
             next;
         }
+        if (/^IMPORTS\s*=\s*(.*)/)
+        {
+            my @list = split(/\s/,$1);
+            $linked_dlls{$module} = \@list;
+            next;
+        }
     }
 }
 
 foreach $mod (sort keys %directories)
 {
-    my $spec = sprintf("%s/%s.spec", $directories{$mod}, $mod);
+    my $dll = $mod;
+    $dll =~ s/\.dll$//;
+    my $spec = sprintf("%s/%s.spec", $directories{$mod}, $dll);
     open SPEC,$spec or die "cannot open $spec";
     $imports{$mod} = [ ];
     while (<SPEC>)
     {
         if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_]+)\.dll/)
         {
-            my $imp = $2;
+            my $imp = $2 . ".dll";
             push @{$imports{$mod}}, $imp;
             next;
         }
         if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_.]+)/)
         {
             my $imp = $2;
+            $imp .= ".dll" unless ($imp =~ /\./);
             push @{$imports{$mod}}, $imp;
             next;
         }
@@ -90,7 +100,6 @@ TOPSRCDIR = \@top_srcdir\@
 TOPOBJDIR = ..
 SRCDIR    = \@srcdir\@
 VPATH     = \@srcdir\@
-LIBEXT    = \@LIBEXT\@
 
 EOF
 
@@ -135,20 +144,22 @@ printf NEWMAKE "\n";
 my %targets = ();  # use a hash to get rid of duplicate target names
 foreach $mod (sort keys %directories)
 {
-    next if defined($special_dlls{$mod});  # skip special dlls
-    $targets{sprintf("lib%s.\$(LIBEXT)",$mod)} = 1;
+    next if defined($special_dlls{$directories{$mod}});  # skip special dlls
+    $targets{sprintf("%s\$(DLLEXT)",$mod)} = 1;
     next unless defined $altnames{$mod};
     foreach $i (sort @{$altnames{$mod}})
     {
-        $targets{sprintf("lib%s.\$(LIBEXT)",$i)} = 1;
+        $targets{sprintf("%s\$(DLLEXT)",$i)} = 1;
     }
 }
 print NEWMAKE <<EOF;
 
 # Main target
 
+\@MAKE_RULES\@
+
 all: \\
-	\$(EXTRADIRS:%=lib%.\$(LIBEXT)) \\
+	\$(EXTRADIRS:%=%.dll\$(DLLEXT)) \\
 EOF
 printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
 
@@ -158,26 +169,24 @@ printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
 
 print NEWMAKE <<EOF;
 
-\@MAKE_RULES\@
-
 # Map library name to directory
 
 EOF
 
 foreach $mod (sort keys %directories)
 {
-    printf NEWMAKE "lib%s.\$(LIBEXT)", $mod;
+    printf NEWMAKE "%s\$(DLLEXT)", $mod;
     if (defined $altnames{$mod})
     {
         my $count = 1;
         foreach $i (sort @{$altnames{$mod}})
         {
             if (!($count++ % 3)) { printf NEWMAKE " \\\n "; }
-            printf NEWMAKE " lib%s.\$(LIBEXT)", $i;
+            printf NEWMAKE " %s\$(DLLEXT)", $i;
         }
     }
-    printf NEWMAKE ": %s/lib%s.\$(LIBEXT)\n", $directories{$mod}, $mod;
-    printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/lib%s.\$(LIBEXT) \$@\n\n", $directories{$mod}, $mod;
+    printf NEWMAKE ": %s/%s\$(DLLEXT)\n", $directories{$mod}, $mod;
+    printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s\$(DLLEXT) \$@\n\n", $directories{$mod}, $mod;
 }
 
 
@@ -190,8 +199,17 @@ my @depends = ();
 foreach $mod (sort keys %imports)
 {
     my $count = 1;
-    my $dep = sprintf("%s/lib%s.\$(LIBEXT): dummy", $directories{$mod}, $mod);
+    my $dep = sprintf("%s/%s\$(DLLEXT): dummy", $directories{$mod}, $mod);
     foreach $i (@{$imports{$mod}})
+    {
+        if ($count++ >= 3)
+        {
+            $count = 0;
+            $dep .= " \\\n ";
+        }
+        $dep .= sprintf(" %s\$(DLLEXT)", $i);
+    }
+    foreach $i (@{$linked_dlls{$mod}})
     {
         if ($count++ >= 3)
         {
@@ -200,12 +218,28 @@ foreach $mod (sort keys %imports)
         }
         $dep .= sprintf(" lib%s.\$(LIBEXT)", $i);
     }
-    $dep .= sprintf("\n\t\@cd %s && \$(MAKE) lib%s.\$(LIBEXT)\n\n",$directories{$mod}, $mod);
+    $dep .= sprintf("\n\t\@cd %s && \$(MAKE) %s\$(DLLEXT)\n\n",$directories{$mod}, $mod);
     push @depends, $dep;
 }
 print NEWMAKE sort @depends;
 
 
+################################################################
+# output the linkable dlls special links
+
+%linkable_dlls = ();
+foreach $mod (keys %imports)
+{
+    foreach $i (@{$linked_dlls{$mod}}) { $linkable_dlls{$i} = 1; }
+}
+
+print NEWMAKE "# Special targets for dlls that we need to link to\n\n";
+foreach $mod (keys %linkable_dlls)
+{
+    printf NEWMAKE "lib%s.\$(LIBEXT): %s/%s\$(DLLEXT)\n", $mod, $directories{$mod}, $mod;
+    printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s\$(DLLEXT) \$@\n\n", $directories{$mod}, $mod;
+}
+
 ################################################################
 # makefile trailer
 
@@ -224,6 +258,7 @@ print NEWMAKE <<EOF;
 install:: \$(SUBDIRS:%=%/__install__)
 
 uninstall:: \$(SUBDIRS:%=%/__uninstall__)
+	-rmdir \$(dlldir)
 
 check test:: \$(SUBDIRS:%=%/__test__)
 
diff --git a/dlls/mapi32/Makefile.in b/dlls/mapi32/Makefile.in
index e0cdffa4b1b..d21fdfbdc63 100644
--- a/dlls/mapi32/Makefile.in
+++ b/dlls/mapi32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = mapi32
+MODULE    = mapi32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/mpr/Makefile.in b/dlls/mpr/Makefile.in
index 1008cbb7488..9051e1c4d3e 100644
--- a/dlls/mpr/Makefile.in
+++ b/dlls/mpr/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = mpr
+MODULE    = mpr.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msacm/Makefile.in b/dlls/msacm/Makefile.in
index e7df77b141c..748c6344f8a 100644
--- a/dlls/msacm/Makefile.in
+++ b/dlls/msacm/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msacm32
-ALTNAMES  = msacm
+MODULE    = msacm32.dll
+ALTNAMES  = msacm.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msdmo/Makefile.in b/dlls/msdmo/Makefile.in
index 3fa5b184fd5..d6034bfe342 100644
--- a/dlls/msdmo/Makefile.in
+++ b/dlls/msdmo/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msdmo
+MODULE    = msdmo.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msimg32/Makefile.in b/dlls/msimg32/Makefile.in
index b4ce5e84843..c829618f55e 100644
--- a/dlls/msimg32/Makefile.in
+++ b/dlls/msimg32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msimg32
+MODULE    = msimg32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msnet32/Makefile.in b/dlls/msnet32/Makefile.in
index 660fd4e46e1..b0daaa88305 100644
--- a/dlls/msnet32/Makefile.in
+++ b/dlls/msnet32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msnet32
+MODULE    = msnet32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msrle32/Makefile.in b/dlls/msrle32/Makefile.in
index 6eeac9350f6..0717476c57b 100644
--- a/dlls/msrle32/Makefile.in
+++ b/dlls/msrle32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msrle32
+MODULE    = msrle32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/msvcrt/Makefile.in b/dlls/msvcrt/Makefile.in
index 33a53d8571e..c2ed0e9c295 100644
--- a/dlls/msvcrt/Makefile.in
+++ b/dlls/msvcrt/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msvcrt
+MODULE    = msvcrt.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/msvcrt20/Makefile.in b/dlls/msvcrt20/Makefile.in
index 5183c1ccf72..3e37644fc97 100644
--- a/dlls/msvcrt20/Makefile.in
+++ b/dlls/msvcrt20/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msvcrt20
+MODULE    = msvcrt20.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/msvideo/Makefile.in b/dlls/msvideo/Makefile.in
index 136a47a4a47..fc57a746ba8 100644
--- a/dlls/msvideo/Makefile.in
+++ b/dlls/msvideo/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = msvfw32
-ALTNAMES  = msvideo
+MODULE    = msvfw32.dll
+ALTNAMES  = msvideo.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/netapi32/Makefile.in b/dlls/netapi32/Makefile.in
index 9033f07994d..9bce845df6d 100644
--- a/dlls/netapi32/Makefile.in
+++ b/dlls/netapi32/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = netapi32
+MODULE    = netapi32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index b3ba4f0fcec..57014e2f2b9 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ntdll
+MODULE    = ntdll.dll
 EXTRALIBS = $(LIBUNICODE)
 
 C_SRCS = \
@@ -67,4 +67,7 @@ $(EXTRA_OBJS): dummy
 relay32.s: $(WINEBUILD)
 	$(LDPATH) $(WINEBUILD) @DLLFLAGS@ -o $@ -relay32
 
+install:: install_libdir
+uninstall:: uninstall_libdir
+
 ### Dependencies:
diff --git a/dlls/odbc32/Makefile.in b/dlls/odbc32/Makefile.in
index 74b00e4b5e6..346e37ce083 100644
--- a/dlls/odbc32/Makefile.in
+++ b/dlls/odbc32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = odbc32
+MODULE    = odbc32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/ole32/Makefile.in b/dlls/ole32/Makefile.in
index 2977598df75..d3e9a7921a2 100644
--- a/dlls/ole32/Makefile.in
+++ b/dlls/ole32/Makefile.in
@@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ole32
-ALTNAMES  = ole2 ole2nls ole2conv ole2prox ole2thk storage compobj
+MODULE    = ole32.dll
+ALTNAMES  = ole2.dll ole2nls.dll ole2conv.dll ole2prox.dll ole2thk.dll storage.dll compobj.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index f8af0be5982..23a2de7cf6d 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = oleaut32
-ALTNAMES  = ole2disp typelib
+MODULE    = oleaut32.dll
+ALTNAMES  = ole2disp.dll typelib.dll
 EXTRALIBS = $(LIBUUID) @JPEGLIB@
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/olecli/Makefile.in b/dlls/olecli/Makefile.in
index 50fa196058a..e4086e696e2 100644
--- a/dlls/olecli/Makefile.in
+++ b/dlls/olecli/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = olecli32
-ALTNAMES  = olecli
+MODULE    = olecli32.dll
+ALTNAMES  = olecli.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/oledlg/Makefile.in b/dlls/oledlg/Makefile.in
index e047e301314..95d03500bc0 100644
--- a/dlls/oledlg/Makefile.in
+++ b/dlls/oledlg/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = oledlg
+MODULE    = oledlg.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/olepro32/Makefile.in b/dlls/olepro32/Makefile.in
index 6b2c7d0c437..b1d66f93311 100644
--- a/dlls/olepro32/Makefile.in
+++ b/dlls/olepro32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = olepro32
+MODULE    = olepro32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/olesvr/Makefile.in b/dlls/olesvr/Makefile.in
index 840980a4be6..fc7f0e73299 100644
--- a/dlls/olesvr/Makefile.in
+++ b/dlls/olesvr/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = olesvr32
-ALTNAMES  = olesvr
+MODULE    = olesvr32.dll
+ALTNAMES  = olesvr.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/opengl32/Makefile.in b/dlls/opengl32/Makefile.in
index e6c1910fd9f..e114280e4e2 100644
--- a/dlls/opengl32/Makefile.in
+++ b/dlls/opengl32/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = opengl32
-IMPORTS   = x11drv kernel32 ntdll
+MODULE    = opengl32.dll
+IMPORTS   = x11drv.dll kernel32.dll ntdll.dll
 
 C_SRCS = \
 	wgl.c \
diff --git a/dlls/psapi/Makefile.in b/dlls/psapi/Makefile.in
index 14e20196979..85b2898d5eb 100644
--- a/dlls/psapi/Makefile.in
+++ b/dlls/psapi/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = psapi
+MODULE    = psapi.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/qcap/Makefile.in b/dlls/qcap/Makefile.in
index 978f017be7c..132dd2c7e0d 100644
--- a/dlls/qcap/Makefile.in
+++ b/dlls/qcap/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = qcap
+MODULE    = qcap.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/quartz/Makefile.in b/dlls/quartz/Makefile.in
index 130c51a73f9..7413c41480f 100644
--- a/dlls/quartz/Makefile.in
+++ b/dlls/quartz/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = quartz
+MODULE    = quartz.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/rasapi32/Makefile.in b/dlls/rasapi32/Makefile.in
index ea72b8f1909..161e4de54f1 100644
--- a/dlls/rasapi32/Makefile.in
+++ b/dlls/rasapi32/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = rasapi32
-ALTNAMES  = rasapi16
+MODULE    = rasapi32.dll
+ALTNAMES  = rasapi16.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/richedit/Makefile.in b/dlls/richedit/Makefile.in
index c13d2697406..ea0f651d84a 100644
--- a/dlls/richedit/Makefile.in
+++ b/dlls/richedit/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = riched32
+MODULE    = riched32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/rpcrt4/Makefile.in b/dlls/rpcrt4/Makefile.in
index 9afabd2953d..e64507ea446 100644
--- a/dlls/rpcrt4/Makefile.in
+++ b/dlls/rpcrt4/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = rpcrt4
+MODULE    = rpcrt4.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/serialui/Makefile.in b/dlls/serialui/Makefile.in
index 7543482a05d..ba8dfa54ef4 100644
--- a/dlls/serialui/Makefile.in
+++ b/dlls/serialui/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = serialui
+MODULE    = serialui.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/setupapi/Makefile.in b/dlls/setupapi/Makefile.in
index 5dc68853d99..1473193d266 100644
--- a/dlls/setupapi/Makefile.in
+++ b/dlls/setupapi/Makefile.in
@@ -3,9 +3,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = setupapi
-SOVERSION = 1.0
-ALTNAMES  = setupx
+MODULE    = setupapi.dll
+ALTNAMES  = setupx.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/shdocvw/Makefile.in b/dlls/shdocvw/Makefile.in
index b1a246b85a3..008938ac05c 100644
--- a/dlls/shdocvw/Makefile.in
+++ b/dlls/shdocvw/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = shdocvw
+MODULE    = shdocvw.dll
 EXTRALIBS = $(LIBUUID)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in
index 79537960186..cdd4cb51acd 100644
--- a/dlls/shell32/Makefile.in
+++ b/dlls/shell32/Makefile.in
@@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = shell32
-ALTNAMES  = shell
+MODULE    = shell32.dll
+ALTNAMES  = shell.dll
 EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/shfolder/Makefile.in b/dlls/shfolder/Makefile.in
index 2138443a425..d03d3504417 100644
--- a/dlls/shfolder/Makefile.in
+++ b/dlls/shfolder/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = shfolder
+MODULE    = shfolder.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/shfolder/shfolder.spec b/dlls/shfolder/shfolder.spec
index c229823ec04..f1d3a244bad 100644
--- a/dlls/shfolder/shfolder.spec
+++ b/dlls/shfolder/shfolder.spec
@@ -1,7 +1,7 @@
 name shfolder
 type win32
 
-import shell32
+import shell32.dll
 
 @ forward SHGetFolderPathA shell32.SHGetFolderPathA
 @ forward SHGetFolderPathW shell32.SHGetFolderPathW
diff --git a/dlls/shlwapi/Makefile.in b/dlls/shlwapi/Makefile.in
index 700a13a6fb9..448b1cb4c0c 100644
--- a/dlls/shlwapi/Makefile.in
+++ b/dlls/shlwapi/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = shlwapi
+MODULE    = shlwapi.dll
 EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/sti/Makefile.in b/dlls/sti/Makefile.in
index b5674b915e5..e2054d4e39b 100644
--- a/dlls/sti/Makefile.in
+++ b/dlls/sti/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = sti
+MODULE    = sti.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/tapi32/Makefile.in b/dlls/tapi32/Makefile.in
index a0f79feea44..ed298a869ef 100644
--- a/dlls/tapi32/Makefile.in
+++ b/dlls/tapi32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = tapi32
+MODULE    = tapi32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/ttydrv/Makefile.in b/dlls/ttydrv/Makefile.in
index c64d2be95db..65f7c070d61 100644
--- a/dlls/ttydrv/Makefile.in
+++ b/dlls/ttydrv/Makefile.in
@@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ttydrv
-SOVERSION = 1.0
-IMPORTS   = user32 gdi32 kernel32 ntdll
+MODULE    = ttydrv.dll
+IMPORTS   = user32.dll gdi32.dll kernel32.dll ntdll.dll
 EXTRALIBS = @CURSESLIBS@
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/url/Makefile.in b/dlls/url/Makefile.in
index 12d6892a86f..4ada341f12e 100644
--- a/dlls/url/Makefile.in
+++ b/dlls/url/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = url
+MODULE    = url.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/urlmon/Makefile.in b/dlls/urlmon/Makefile.in
index a617d2994b5..7827f1b3de7 100644
--- a/dlls/urlmon/Makefile.in
+++ b/dlls/urlmon/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = urlmon
+MODULE    = urlmon.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/user/Makefile.in b/dlls/user/Makefile.in
index 3e06a927876..8be59cdafe6 100644
--- a/dlls/user/Makefile.in
+++ b/dlls/user/Makefile.in
@@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = user32
-SOVERSION = 1.0
-ALTNAMES  = user keyboard ddeml display mouse
-IMPORTS   = gdi32 kernel32 ntdll
+MODULE    = user32.dll
+ALTNAMES  = user.dll keyboard.dll ddeml.dll display.dll mouse.dll
+IMPORTS   = gdi32.dll kernel32.dll ntdll.dll
 
 C_SRCS = \
 	bidi16.c \
@@ -84,4 +83,7 @@ mouse.spec.c: resources/mouse.res
 
 user.spec.c: resources/version16.res
 
+install:: install_libdir
+uninstall:: uninstall_libdir
+
 ### Dependencies:
diff --git a/dlls/version/Makefile.in b/dlls/version/Makefile.in
index 343ca7642dd..8c1129ee319 100644
--- a/dlls/version/Makefile.in
+++ b/dlls/version/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = version
-ALTNAMES  = ver
+MODULE    = version.dll
+ALTNAMES  = ver.dll
 EXTRALIBS = $(LIBUNICODE)
 
 LDDLLFLAGS = @LDDLLFLAGS@
diff --git a/dlls/win32s/Makefile.in b/dlls/win32s/Makefile.in
index 78887ed1aa1..444f6e74d37 100644
--- a/dlls/win32s/Makefile.in
+++ b/dlls/win32s/Makefile.in
@@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = w32skrnl
-SOVERSION = 1.0
-ALTNAMES  = w32sys win32s16
+MODULE    = w32skrnl.dll
+ALTNAMES  = w32sys.dll win32s16.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/winaspi/Makefile.in b/dlls/winaspi/Makefile.in
index b8185632a58..af06db7a4ca 100644
--- a/dlls/winaspi/Makefile.in
+++ b/dlls/winaspi/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wnaspi32
-ALTNAMES  = winaspi
+MODULE    = wnaspi32.dll
+ALTNAMES  = winaspi.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/winedos/Makefile.in b/dlls/winedos/Makefile.in
index a86c1fbba63..963f707280d 100644
--- a/dlls/winedos/Makefile.in
+++ b/dlls/winedos/Makefile.in
@@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = winedos
-SOVERSION = 1.0
-IMPORTS   = user32 kernel32 ntdll
+MODULE    = winedos.dll
+IMPORTS   = user32.dll kernel32.dll ntdll.dll
 EXTRALIBS = @CURSESLIBS@ @UTILLIBS@
 
 C_SRCS = \
diff --git a/dlls/wineps/Makefile.in b/dlls/wineps/Makefile.in
index fa45bd82ebc..7086a8b3c72 100644
--- a/dlls/wineps/Makefile.in
+++ b/dlls/wineps/Makefile.in
@@ -2,10 +2,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wineps
-SOVERSION = 1.0
-ALTNAMES  = wineps16
-IMPORTS   = user32 gdi32 winspool.drv kernel32 ntdll
+MODULE    = wineps.dll
+ALTNAMES  = wineps16.dll
+IMPORTS   = user32.dll gdi32.dll winspool.drv kernel32.dll ntdll.dll
 EXTRALIBS = @CUPSLIBS@ @FREETYPELIBS@
 EXTRAINCL = @FREETYPEINCL@
 
diff --git a/dlls/wininet/Makefile.in b/dlls/wininet/Makefile.in
index 515244a9ca6..f93ea965902 100644
--- a/dlls/wininet/Makefile.in
+++ b/dlls/wininet/Makefile.in
@@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wininet
+MODULE    = wininet.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/winmm/Makefile.in b/dlls/winmm/Makefile.in
index 5e9dcc2ef71..a9ec514edd3 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = winmm
-ALTNAMES  = mmsystem sound
+MODULE    = winmm.dll
+ALTNAMES  = mmsystem.dll sound.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/winnls/Makefile.in b/dlls/winnls/Makefile.in
index e01c9d955dc..d99fe41140f 100644
--- a/dlls/winnls/Makefile.in
+++ b/dlls/winnls/Makefile.in
@@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = winnls32
-ALTNAMES  = winnls
+MODULE    = winnls32.dll
+ALTNAMES  = winnls.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/winsock/Makefile.in b/dlls/winsock/Makefile.in
index c42de3914b4..d41535cd38a 100644
--- a/dlls/winsock/Makefile.in
+++ b/dlls/winsock/Makefile.in
@@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ws2_32
-SOVERSION = 1.0
-ALTNAMES  = winsock
-IMPORTS   = user32 kernel32 ntdll
+MODULE    = ws2_32.dll
+ALTNAMES  = winsock.dll
+IMPORTS   = user32.dll kernel32.dll ntdll.dll
 
 C_SRCS = \
 	async.c \
diff --git a/dlls/winspool/Makefile.in b/dlls/winspool/Makefile.in
index a29a36842d4..5bcace2056c 100644
--- a/dlls/winspool/Makefile.in
+++ b/dlls/winspool/Makefile.in
@@ -15,5 +15,7 @@ C_SRCS = \
 
 @MAKE_DLL_RULES@
 
-### Dependencies:
+install:: install_libdir
+uninstall:: uninstall_libdir
 
+### Dependencies:
diff --git a/dlls/wintrust/Makefile.in b/dlls/wintrust/Makefile.in
index 2ca9c3e5a56..384a5f3253c 100644
--- a/dlls/wintrust/Makefile.in
+++ b/dlls/wintrust/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wintrust
+MODULE    = wintrust.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/wow32/Makefile.in b/dlls/wow32/Makefile.in
index 6c6a6d87197..f68bcdc6d7e 100644
--- a/dlls/wow32/Makefile.in
+++ b/dlls/wow32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wow32
+MODULE    = wow32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/wsock32/Makefile.in b/dlls/wsock32/Makefile.in
index 4c3801b809c..c8accb8ae57 100644
--- a/dlls/wsock32/Makefile.in
+++ b/dlls/wsock32/Makefile.in
@@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = wsock32
+MODULE    = wsock32.dll
 
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
diff --git a/dlls/x11drv/Makefile.in b/dlls/x11drv/Makefile.in
index 9c498e6f85e..ddcf5a4b4e6 100644
--- a/dlls/x11drv/Makefile.in
+++ b/dlls/x11drv/Makefile.in
@@ -2,9 +2,9 @@ TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = x11drv
+MODULE    = x11drv.dll
 EXTRALIBS = $(LIBTSX11) $(X_LIBS) $(XLIB)
-IMPORTS   = user32 gdi32 kernel32
+IMPORTS   = user32.dll gdi32.dll kernel32.dll
 
 C_SRCS = \
 	desktop.c \
@@ -36,11 +36,11 @@ all: $(PROGRAMS)
 $(EXTRA_OBJS) $(PROGRAMS): dummy
 	@cd `dirname $@` && $(MAKE) `basename $@`
 
-install:: $(PROGRAMS)
+install:: $(PROGRAMS) install_libdir
 	[ -d $(bindir) ] || $(MKDIR) $(bindir)
 	$(INSTALL_PROGRAM) $(TOPOBJDIR)/windows/x11drv/wineclipsrv $(bindir)/wineclipsrv
 
-uninstall::
+uninstall:: uninstall_libdir
 	cd $(bindir) && $(RM) wineclipsrv
 
 ### Dependencies:
diff --git a/include/Makefile.in b/include/Makefile.in
index 7d3d39ee5e2..62ec68e98f2 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -220,7 +220,7 @@ install::
 # Don't just do a rm -rf on $(includedir) -- don't want to wipe out 
 # anything extra the user may have put there.
 uninstall::
-	cd $(includedir) && $(RM) $(INSTALLED_INCLUDES)
+	[ -d $(includedir) ] && cd $(includedir) && $(RM) $(INSTALLED_INCLUDES) || true
 	-rmdir $(includedir)/msvcrt/sys $(includedir)/msvcrt $(includedir)/wine $(includedir)
 
 ### Dependencies:
diff --git a/library/Makefile.in b/library/Makefile.in
index 0027eb3a08b..f7d3c81c656 100644
--- a/library/Makefile.in
+++ b/library/Makefile.in
@@ -1,4 +1,4 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
+DEFS      = @DLLFLAGS@ -D__WINE__ -DDLLDIR="\"$(dlldir)\""
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ..
 SRCDIR    = @srcdir@
diff --git a/library/loader.c b/library/loader.c
index 9f89c72afef..c3637451f58 100644
--- a/library/loader.c
+++ b/library/loader.c
@@ -48,7 +48,7 @@ static const IMAGE_NT_HEADERS *main_exe;
 
 static load_dll_callback_t load_dll_callback;
 
-static char **dll_paths;
+static const char **dll_paths;
 static int nb_dll_paths;
 static int dll_path_maxlen;
 static int init_done;
@@ -57,33 +57,49 @@ static int init_done;
 /* build the dll load path from the WINEDLLPATH variable */
 static void build_dll_path(void)
 {
-    int count = 0;
+    static const char * const dlldir = DLLDIR;
+    int len, count = 0;
     char *p, *path = getenv( "WINEDLLPATH" );
 
     init_done = 1;
-    if (!path) return;
-    path = strdup(path);
-    p = path;
-    while (*p)
+
+    if (path)
     {
-        while (*p == ':') p++;
-        if (!*p) break;
-        count++;
-        while (*p && *p != ':') p++;
+        /* count how many path elements we need */
+        path = strdup(path);
+        p = path;
+        while (*p)
+        {
+            while (*p == ':') p++;
+            if (!*p) break;
+            count++;
+            while (*p && *p != ':') p++;
+        }
+    }
+
+    dll_paths = malloc( (count+1) * sizeof(*dll_paths) );
+
+    if (count)
+    {
+        p = path;
+        nb_dll_paths = 0;
+        while (*p)
+        {
+            while (*p == ':') *p++ = 0;
+            if (!*p) break;
+            dll_paths[nb_dll_paths] = p;
+            while (*p && *p != ':') p++;
+            if (p - dll_paths[nb_dll_paths] > dll_path_maxlen)
+                dll_path_maxlen = p - dll_paths[nb_dll_paths];
+            nb_dll_paths++;
+        }
     }
 
-    dll_paths = malloc( count * sizeof(*dll_paths) );
-    p = path;
-    nb_dll_paths = 0;
-    while (*p)
+    /* append default dll dir (if not empty) to path */
+    if ((len = strlen(dlldir)))
     {
-        while (*p == ':') *p++ = 0;
-        if (!*p) break;
-        dll_paths[nb_dll_paths] = p;
-        while (*p && *p != ':') p++;
-        if (p - dll_paths[nb_dll_paths] > dll_path_maxlen)
-            dll_path_maxlen = p - dll_paths[nb_dll_paths];
-        nb_dll_paths++;
+        if (len > dll_path_maxlen) dll_path_maxlen = len;
+        dll_paths[nb_dll_paths++] = dlldir;
     }
 }
 
@@ -93,28 +109,23 @@ static void build_dll_path(void)
 static void *dlopen_dll( const char *name, char *error, int errorsize )
 {
     int i, namelen = strlen(name);
-    char *buffer, *p, *ext;
+    char *buffer, *p;
     void *ret = NULL;
 
     if (!init_done) build_dll_path();
 
-    buffer = malloc( dll_path_maxlen + namelen + 8 );
+    buffer = malloc( dll_path_maxlen + namelen + 5 );
 
-    /* store the name at the end of the buffer, prefixed by /lib and followed by .so */
+    /* store the name at the end of the buffer, followed by .so */
     p = buffer + dll_path_maxlen;
-    memcpy( p, "/lib", 4 );
-    p += 4;
-    memcpy( p, name, namelen+1 );
-    ext = strrchr( p, '.' );
-    p += namelen;
-    /* check for .dll or .exe extension to remove */
-    if (ext && (!strcmp( ext, ".dll" ) || !strcmp( ext, ".exe" ))) p = ext;
-    memcpy( p, ".so", 4 );
+    *p++ = '/';
+    memcpy( p, name, namelen );
+    strcpy( p + namelen, ".so" );
 
     for (i = 0; i < nb_dll_paths; i++)
     {
         int len = strlen(dll_paths[i]);
-        char *p = buffer + dll_path_maxlen - len;
+        p = buffer + dll_path_maxlen - len;
         memcpy( p, dll_paths[i], len );
         if ((ret = wine_dlopen( p, RTLD_NOW, error, errorsize ))) break;
     }
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index e54d0dcdd83..10ae35e7f98 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -80,18 +80,21 @@ inline static void sort_symbols( char **table, int size )
 /* open the .so library for a given dll in a specified path */
 static char *try_library_path( const char *path, const char *name )
 {
-    char *buffer, *p;
+    char *buffer;
     int fd;
 
-    buffer = xmalloc( strlen(path) + strlen(name) + 8 );
-    sprintf( buffer, "%s/lib%s", path, name );
-    p = buffer + strlen(buffer) - 4;
-    if (!strcmp( p, ".dll" )) *p = 0;
+    buffer = xmalloc( strlen(path) + strlen(name) + 9 );
+    sprintf( buffer, "%s/%s", path, name );
+    if (!strchr( name, '.' )) strcat( buffer, ".dll" );
     strcat( buffer, ".so" );
     /* check if the file exists */
-    if ((fd = open( buffer, O_RDONLY )) == -1) return NULL;
-    close( fd );
-    return buffer;
+    if ((fd = open( buffer, O_RDONLY )) != -1)
+    {
+        close( fd );
+        return buffer;
+    }
+    free( buffer );
+    return NULL;
 }
 
 /* open the .so library for a given dll */
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index 06fdac9cab8..5bf55da6c39 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -790,7 +790,7 @@ void BuildDef32File(FILE *outfile)
     fprintf(outfile, "; File generated automatically from %s; do not edit!\n\n",
             input_file_name );
 
-    fprintf(outfile, "LIBRARY lib%s\n\n", DLLFileName);
+    fprintf(outfile, "LIBRARY %s\n\n", DLLFileName);
 
     fprintf(outfile, "EXPORTS\n");
 
@@ -833,7 +833,7 @@ void BuildDef32File(FILE *outfile)
             fprintf(outfile, "=%s", make_internal_name( odp, "stub" ));
             break;
         case TYPE_FORWARD:
-            fprintf(outfile, "=lib%s", odp->link_name);
+            fprintf(outfile, "=%s", odp->link_name);
             break;
         default:
             assert(0);
-- 
GitLab