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.

diff --git a/Make.rules.in b/Make.rules.in
index 4ca0214..2498942 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -36,6 +36,7 @@
 LEX       = @LEX@
 LEXLIB    = @LEXLIB@
 LIBEXT    = @LIBEXT@
+DLLEXT    = @DLLEXT@
 LDSHARED  = @LDSHARED@
 DLLWRAP   = @DLLWRAP@
 DLLWRAPFLAGS = --add-stdcall-alias
@@ -93,6 +94,7 @@
 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 e357cc2..cf35f80 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,7 +21,7 @@
 LIBEXT    = @LIBEXT@
 LDCONFIG  = @LDCONFIG@
 MODULE    = wine
-IMPORTS   = ntdll
+IMPORTS   = ntdll.dll
 
 # Stand-alone programs
 PROGRAMS = \
@@ -39,8 +39,12 @@
 	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 @@
 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 @@
 	@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 @@
 $(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_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 6b88ecc..6635f37 100755
--- a/configure
+++ b/configure
@@ -7678,15 +7678,17 @@
 
 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 @@
   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 @@
 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 @@
 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 @@
   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 @@
 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 @@
 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 @@
   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 @@
 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 @@
 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 @@
   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 @@
 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 @@
 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 @@
   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 @@
 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 @@
 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 @@
 
 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 @@
 	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 @@
 
 # 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 #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 @@
 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 @@
 }
 _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 @@
 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 @@
   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 @@
   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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 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 @@
 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 @@
 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 @@
 
 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 @@
   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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
   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 @@
 
 _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 @@
 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 @@
  ;;
 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 @@
 #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 @@
 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 @@
 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 @@
   :
 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 @@
 }
 _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 @@
 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 @@
                   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 @@
 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 @@
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
   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 @@
 }
 _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 @@
 }
 _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 @@
 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 @@
 }
 _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 @@
 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 @@
 }
 _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 @@
 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 @@
 }
 _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 @@
   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 @@
 }
 _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 @@
 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 @@
 
     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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
     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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 }
 _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 @@
 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 @@
 
 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 @@
 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 @@
 : ${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 @@
     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 @@
     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 @@
   "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,@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 @@
   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 $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 $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 @@
   * )   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 $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 $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 @@
   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 @@
   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 c5d845f..3007ac2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -732,13 +732,16 @@
 
 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 beba975..045083d 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 @@
 
 # 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 6901d52..c774784 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -4,7 +4,6 @@
 TOPOBJDIR = ..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 
 # special configure-dependent targets
 
@@ -98,686 +97,715 @@
 
 # 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/libavicap32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd avicap32 && $(MAKE) libavicap32.$(LIBEXT)
+avicap32/avicap32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd avicap32 && $(MAKE) avicap32.dll$(DLLEXT)
 
-avifil32/libavifil32.$(LIBEXT): dummy libmsvfw32.$(LIBEXT) libole32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd avifil32 && $(MAKE) libavifil32.$(LIBEXT)
+avifil32/avifil32.dll$(DLLEXT): dummy msvfw32.dll$(DLLEXT) ole32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd avifil32 && $(MAKE) avifil32.dll$(DLLEXT)
 
-comctl32/libcomctl32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd comctl32 && $(MAKE) libcomctl32.$(LIBEXT)
+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/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)
+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/libcrtdll.$(LIBEXT): dummy libmsvcrt.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd crtdll && $(MAKE) libcrtdll.$(LIBEXT)
+crtdll/crtdll.dll$(DLLEXT): dummy msvcrt.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd crtdll && $(MAKE) crtdll.dll$(DLLEXT)
 
-crypt32/libcrypt32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd crypt32 && $(MAKE) libcrypt32.$(LIBEXT)
+crypt32/crypt32.dll$(DLLEXT): dummy advapi32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd crypt32 && $(MAKE) crypt32.dll$(DLLEXT)
 
-dciman32/libdciman32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd dciman32 && $(MAKE) libdciman32.$(LIBEXT)
+dciman32/dciman32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd dciman32 && $(MAKE) dciman32.dll$(DLLEXT)
 
-ddraw/libddraw.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd ddraw && $(MAKE) libddraw.$(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)
 
-devenum/libdevenum.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd devenum && $(MAKE) libdevenum.$(LIBEXT)
+devenum/devenum.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd devenum && $(MAKE) devenum.dll$(DLLEXT)
 
-dinput/libdinput.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd dinput && $(MAKE) libdinput.$(LIBEXT)
+dinput/dinput.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd dinput && $(MAKE) dinput.dll$(DLLEXT)
 
-dplay/libdplay.$(LIBEXT): dummy libdplayx.$(LIBEXT)
-	@cd dplay && $(MAKE) libdplay.$(LIBEXT)
+dplay/dplay.dll$(DLLEXT): dummy dplayx.dll$(DLLEXT)
+	@cd dplay && $(MAKE) dplay.dll$(DLLEXT)
 
-dplayx/libdplayx.$(LIBEXT): dummy libwinmm.$(LIBEXT) libole32.$(LIBEXT) \
-  libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd dplayx && $(MAKE) libdplayx.$(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)
 
-dsound/libdsound.$(LIBEXT): dummy libwinmm.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd dsound && $(MAKE) libdsound.$(LIBEXT)
+dsound/dsound.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd dsound && $(MAKE) dsound.dll$(DLLEXT)
 
-gdi/libgdi32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd gdi && $(MAKE) libgdi32.$(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)
 
-glu32/libglu32.$(LIBEXT): dummy
-	@cd glu32 && $(MAKE) libglu32.$(LIBEXT)
+glu32/glu32.dll$(DLLEXT): dummy
+	@cd glu32 && $(MAKE) glu32.dll$(DLLEXT)
 
-icmp/libicmp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd icmp && $(MAKE) libicmp.$(LIBEXT)
+icmp/icmp.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd icmp && $(MAKE) icmp.dll$(DLLEXT)
 
-imagehlp/libimagehlp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd imagehlp && $(MAKE) libimagehlp.$(LIBEXT)
+imagehlp/imagehlp.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd imagehlp && $(MAKE) imagehlp.dll$(DLLEXT)
 
-imm32/libimm32.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd imm32 && $(MAKE) libimm32.$(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)
 
-kernel/libkernel32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd kernel && $(MAKE) libkernel32.$(LIBEXT)
+kernel/kernel32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT) libntdll.dll.$(LIBEXT)
+	@cd kernel && $(MAKE) kernel32.dll$(DLLEXT)
 
-lzexpand/liblz32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd lzexpand && $(MAKE) liblz32.$(LIBEXT)
+lzexpand/lz32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd lzexpand && $(MAKE) lz32.dll$(DLLEXT)
 
-mapi32/libmapi32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd mapi32 && $(MAKE) libmapi32.$(LIBEXT)
+mapi32/mapi32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd mapi32 && $(MAKE) mapi32.dll$(DLLEXT)
 
-mpr/libmpr.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd mpr && $(MAKE) libmpr.$(LIBEXT)
+mpr/mpr.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd mpr && $(MAKE) mpr.dll$(DLLEXT)
 
-msacm/libmsacm32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msacm && $(MAKE) libmsacm32.$(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)
 
-msdmo/libmsdmo.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msdmo && $(MAKE) libmsdmo.$(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)
 
-msimg32/libmsimg32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msimg32 && $(MAKE) libmsimg32.$(LIBEXT)
+msimg32/msimg32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd msimg32 && $(MAKE) msimg32.dll$(DLLEXT)
 
-msnet32/libmsnet32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd msnet32 && $(MAKE) libmsnet32.$(LIBEXT)
+msnet32/msnet32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd msnet32 && $(MAKE) msnet32.dll$(DLLEXT)
 
-msrle32/libmsrle32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msrle32 && $(MAKE) libmsrle32.$(LIBEXT)
+msrle32/msrle32.dll$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msrle32 && $(MAKE) msrle32.dll$(DLLEXT)
 
-msvcrt/libmsvcrt.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msvcrt && $(MAKE) libmsvcrt.$(LIBEXT)
+msvcrt/msvcrt.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msvcrt && $(MAKE) msvcrt.dll$(DLLEXT)
 
-msvcrt20/libmsvcrt20.$(LIBEXT): dummy libmsvcrt.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd msvcrt20 && $(MAKE) libmsvcrt20.$(LIBEXT)
+msvcrt20/msvcrt20.dll$(DLLEXT): dummy msvcrt.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd msvcrt20 && $(MAKE) msvcrt20.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)
+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)
 
-netapi32/libnetapi32.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd netapi32 && $(MAKE) libnetapi32.$(LIBEXT)
+netapi32/netapi32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) advapi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd netapi32 && $(MAKE) netapi32.dll$(DLLEXT)
 
-ntdll/libntdll.$(LIBEXT): dummy
-	@cd ntdll && $(MAKE) libntdll.$(LIBEXT)
+ntdll/ntdll.dll$(DLLEXT): dummy
+	@cd ntdll && $(MAKE) ntdll.dll$(DLLEXT)
 
-odbc32/libodbc32.$(LIBEXT): dummy libntdll.$(LIBEXT)
-	@cd odbc32 && $(MAKE) libodbc32.$(LIBEXT)
+odbc32/odbc32.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd odbc32 && $(MAKE) odbc32.dll$(DLLEXT)
 
-ole32/libole32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libuser32.$(LIBEXT) \
-  libgdi32.$(LIBEXT) librpcrt4.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd ole32 && $(MAKE) libole32.$(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)
 
-oleaut32/liboleaut32.$(LIBEXT): dummy libcomctl32.$(LIBEXT) libole32.$(LIBEXT) \
-  libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
-  libntdll.$(LIBEXT)
-	@cd oleaut32 && $(MAKE) liboleaut32.$(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)
 
-olecli/libolecli32.$(LIBEXT): dummy libole32.$(LIBEXT) libgdi32.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olecli && $(MAKE) libolecli32.$(LIBEXT)
+olecli/olecli32.dll$(DLLEXT): dummy ole32.dll$(DLLEXT) gdi32.dll$(DLLEXT) \
+  kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olecli && $(MAKE) olecli32.dll$(DLLEXT)
 
-oledlg/liboledlg.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd oledlg && $(MAKE) liboledlg.$(LIBEXT)
+oledlg/oledlg.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd oledlg && $(MAKE) oledlg.dll$(DLLEXT)
 
-olepro32/libolepro32.$(LIBEXT): dummy liboleaut32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olepro32 && $(MAKE) libolepro32.$(LIBEXT)
+olepro32/olepro32.dll$(DLLEXT): dummy oleaut32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olepro32 && $(MAKE) olepro32.dll$(DLLEXT)
 
-olesvr/libolesvr32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd olesvr && $(MAKE) libolesvr32.$(LIBEXT)
+olesvr/olesvr32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd olesvr && $(MAKE) olesvr32.dll$(DLLEXT)
 
-opengl32/libopengl32.$(LIBEXT): dummy libuser32.$(LIBEXT) libx11drv.$(LIBEXT) \
-  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
-	@cd opengl32 && $(MAKE) libopengl32.$(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)
+
+psapi/psapi.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd psapi && $(MAKE) psapi.dll$(DLLEXT)
+
+qcap/qcap.dll$(DLLEXT): dummy ntdll.dll$(DLLEXT)
+	@cd qcap && $(MAKE) qcap.dll$(DLLEXT)
+
+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)
+
+rasapi32/rasapi32.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd rasapi32 && $(MAKE) rasapi32.dll$(DLLEXT)
+
+richedit/riched32.dll$(DLLEXT): dummy user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) \
+  ntdll.dll$(DLLEXT)
+	@cd richedit && $(MAKE) riched32.dll$(DLLEXT)
+
+rpcrt4/rpcrt4.dll$(DLLEXT): dummy kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
+	@cd rpcrt4 && $(MAKE) rpcrt4.dll$(DLLEXT)
+
+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 @@
 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 d888612..2dcd550 100644
--- a/dlls/advapi32/Makefile.in
+++ b/dlls/advapi32/Makefile.in
@@ -3,7 +3,7 @@
 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 40c1432..e5e69c8 100644
--- a/dlls/avicap32/Makefile.in
+++ b/dlls/avicap32/Makefile.in
@@ -2,7 +2,7 @@
 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 c8738de..0c1f495 100644
--- a/dlls/avifil32/Makefile.in
+++ b/dlls/avifil32/Makefile.in
@@ -2,8 +2,8 @@
 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 22f05ef..92a83ae 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -3,7 +3,7 @@
 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 56442f3..2a2aa4a 100644
--- a/dlls/commdlg/Makefile.in
+++ b/dlls/commdlg/Makefile.in
@@ -2,8 +2,8 @@
 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 93e9515..6098756 100644
--- a/dlls/crtdll/Makefile.in
+++ b/dlls/crtdll/Makefile.in
@@ -2,7 +2,7 @@
 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 15c7b84..fc7d74e 100644
--- a/dlls/crypt32/Makefile.in
+++ b/dlls/crypt32/Makefile.in
@@ -3,7 +3,7 @@
 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 672218dc..437eab9 100644
--- a/dlls/dciman32/Makefile.in
+++ b/dlls/dciman32/Makefile.in
@@ -2,7 +2,7 @@
 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 df6b5bc..0a107f4 100644
--- a/dlls/ddraw/Makefile.in
+++ b/dlls/ddraw/Makefile.in
@@ -2,9 +2,9 @@
 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 e6c51f9..7637bec 100644
--- a/dlls/devenum/Makefile.in
+++ b/dlls/devenum/Makefile.in
@@ -2,7 +2,7 @@
 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 4047615..fae2dc2 100644
--- a/dlls/dinput/Makefile.in
+++ b/dlls/dinput/Makefile.in
@@ -2,7 +2,7 @@
 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 a7264a1..2cc8178 100644
--- a/dlls/dplay/Makefile.in
+++ b/dlls/dplay/Makefile.in
@@ -2,7 +2,7 @@
 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 ca0549e..2c36e88 100644
--- a/dlls/dplayx/Makefile.in
+++ b/dlls/dplayx/Makefile.in
@@ -2,7 +2,7 @@
 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 6aef5d8..e2181ab 100644
--- a/dlls/dsound/Makefile.in
+++ b/dlls/dsound/Makefile.in
@@ -2,7 +2,7 @@
 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 de148ec..32d9677 100644
--- a/dlls/gdi/Makefile.in
+++ b/dlls/gdi/Makefile.in
@@ -3,10 +3,9 @@
 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 @@
 
 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 e82d50f..9265d61 100644
--- a/dlls/glu32/Makefile.in
+++ b/dlls/glu32/Makefile.in
@@ -2,7 +2,7 @@
 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 9cd6c96..741987d 100644
--- a/dlls/icmp/Makefile.in
+++ b/dlls/icmp/Makefile.in
@@ -2,7 +2,7 @@
 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 3fe1457..7a8f269 100644
--- a/dlls/imagehlp/Makefile.in
+++ b/dlls/imagehlp/Makefile.in
@@ -3,7 +3,7 @@
 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 b16dca7..43e1925 100644
--- a/dlls/imm32/Makefile.in
+++ b/dlls/imm32/Makefile.in
@@ -2,8 +2,8 @@
 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 50fd698..889dfbd 100644
--- a/dlls/kernel/Makefile.in
+++ b/dlls/kernel/Makefile.in
@@ -2,10 +2,9 @@
 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 @@
 
 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 1b78601..633a0cd 100644
--- a/dlls/lzexpand/Makefile.in
+++ b/dlls/lzexpand/Makefile.in
@@ -2,8 +2,8 @@
 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 d097991..3788940 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -25,6 +25,7 @@
 %imports = ();
 %directories = ();
 %altnames = ();
+%linked_dlls = ();
 
 # list of special dlls that can be switched on or off by configure
 %special_dlls =
@@ -53,25 +54,34 @@
             $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 @@
 TOPOBJDIR = ..
 SRCDIR    = \@srcdir\@
 VPATH     = \@srcdir\@
-LIBEXT    = \@LIBEXT\@
 
 EOF
 
@@ -135,20 +144,22 @@
 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 @@
 
 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,7 +199,7 @@
 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)
@@ -198,15 +207,40 @@
             $count = 0;
             $dep .= " \\\n ";
         }
+        $dep .= sprintf(" %s\$(DLLEXT)", $i);
+    }
+    foreach $i (@{$linked_dlls{$mod}})
+    {
+        if ($count++ >= 3)
+        {
+            $count = 0;
+            $dep .= " \\\n ";
+        }
         $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
 
 print NEWMAKE <<EOF;
@@ -224,6 +258,7 @@
 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 e0cdffa..d21fdfb 100644
--- a/dlls/mapi32/Makefile.in
+++ b/dlls/mapi32/Makefile.in
@@ -2,7 +2,7 @@
 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 1008cbb..9051e1c 100644
--- a/dlls/mpr/Makefile.in
+++ b/dlls/mpr/Makefile.in
@@ -2,7 +2,7 @@
 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 e7df77b..748c634 100644
--- a/dlls/msacm/Makefile.in
+++ b/dlls/msacm/Makefile.in
@@ -2,8 +2,8 @@
 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 3fa5b18..d6034bf 100644
--- a/dlls/msdmo/Makefile.in
+++ b/dlls/msdmo/Makefile.in
@@ -2,7 +2,7 @@
 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 b4ce5e8..c829618 100644
--- a/dlls/msimg32/Makefile.in
+++ b/dlls/msimg32/Makefile.in
@@ -2,7 +2,7 @@
 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 660fd4e..b0daaa8 100644
--- a/dlls/msnet32/Makefile.in
+++ b/dlls/msnet32/Makefile.in
@@ -2,7 +2,7 @@
 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 6eeac93..0717476 100644
--- a/dlls/msrle32/Makefile.in
+++ b/dlls/msrle32/Makefile.in
@@ -2,7 +2,7 @@
 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 33a53d8..c2ed0e9 100644
--- a/dlls/msvcrt/Makefile.in
+++ b/dlls/msvcrt/Makefile.in
@@ -3,7 +3,7 @@
 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 5183c1c..3e37644 100644
--- a/dlls/msvcrt20/Makefile.in
+++ b/dlls/msvcrt20/Makefile.in
@@ -3,7 +3,7 @@
 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 136a47a..fc57a74 100644
--- a/dlls/msvideo/Makefile.in
+++ b/dlls/msvideo/Makefile.in
@@ -2,8 +2,8 @@
 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 9033f07..9bce845 100644
--- a/dlls/netapi32/Makefile.in
+++ b/dlls/netapi32/Makefile.in
@@ -3,7 +3,7 @@
 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 b3ba4f0..57014e2 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -3,7 +3,7 @@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-MODULE    = ntdll
+MODULE    = ntdll.dll
 EXTRALIBS = $(LIBUNICODE)
 
 C_SRCS = \
@@ -67,4 +67,7 @@
 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 74b00e4..346e37c 100644
--- a/dlls/odbc32/Makefile.in
+++ b/dlls/odbc32/Makefile.in
@@ -2,7 +2,7 @@
 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 2977598..d3e9a79 100644
--- a/dlls/ole32/Makefile.in
+++ b/dlls/ole32/Makefile.in
@@ -3,8 +3,8 @@
 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 f8af0be..23a2de7 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -2,8 +2,8 @@
 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 50fa196..e4086e6 100644
--- a/dlls/olecli/Makefile.in
+++ b/dlls/olecli/Makefile.in
@@ -2,8 +2,8 @@
 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 e047e30..95d0350 100644
--- a/dlls/oledlg/Makefile.in
+++ b/dlls/oledlg/Makefile.in
@@ -2,7 +2,7 @@
 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 6b2c7d0..b1d66f9 100644
--- a/dlls/olepro32/Makefile.in
+++ b/dlls/olepro32/Makefile.in
@@ -2,7 +2,7 @@
 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 840980a..fc7f0e7 100644
--- a/dlls/olesvr/Makefile.in
+++ b/dlls/olesvr/Makefile.in
@@ -2,8 +2,8 @@
 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 e6c1910..e114280 100644
--- a/dlls/opengl32/Makefile.in
+++ b/dlls/opengl32/Makefile.in
@@ -2,8 +2,8 @@
 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 14e2019..85b2898 100644
--- a/dlls/psapi/Makefile.in
+++ b/dlls/psapi/Makefile.in
@@ -2,7 +2,7 @@
 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 978f017..132dd2c 100644
--- a/dlls/qcap/Makefile.in
+++ b/dlls/qcap/Makefile.in
@@ -2,7 +2,7 @@
 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 130c51a..7413c41 100644
--- a/dlls/quartz/Makefile.in
+++ b/dlls/quartz/Makefile.in
@@ -2,7 +2,7 @@
 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 ea72b8f..161e4de 100644
--- a/dlls/rasapi32/Makefile.in
+++ b/dlls/rasapi32/Makefile.in
@@ -2,8 +2,8 @@
 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 c13d269..ea0f651 100644
--- a/dlls/richedit/Makefile.in
+++ b/dlls/richedit/Makefile.in
@@ -2,7 +2,7 @@
 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 9afabd2..e64507e 100644
--- a/dlls/rpcrt4/Makefile.in
+++ b/dlls/rpcrt4/Makefile.in
@@ -3,7 +3,7 @@
 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 7543482..ba8dfa5 100644
--- a/dlls/serialui/Makefile.in
+++ b/dlls/serialui/Makefile.in
@@ -2,7 +2,7 @@
 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 5dc6885..1473193 100644
--- a/dlls/setupapi/Makefile.in
+++ b/dlls/setupapi/Makefile.in
@@ -3,9 +3,8 @@
 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 b1a246b..008938a 100644
--- a/dlls/shdocvw/Makefile.in
+++ b/dlls/shdocvw/Makefile.in
@@ -3,7 +3,7 @@
 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 7953796..cdd4cb5 100644
--- a/dlls/shell32/Makefile.in
+++ b/dlls/shell32/Makefile.in
@@ -3,8 +3,8 @@
 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 2138443..d03d350 100644
--- a/dlls/shfolder/Makefile.in
+++ b/dlls/shfolder/Makefile.in
@@ -2,7 +2,7 @@
 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 c229823..f1d3a24 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 700a13a..448b1cb 100644
--- a/dlls/shlwapi/Makefile.in
+++ b/dlls/shlwapi/Makefile.in
@@ -3,7 +3,7 @@
 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 b5674b9..e2054d4 100644
--- a/dlls/sti/Makefile.in
+++ b/dlls/sti/Makefile.in
@@ -2,7 +2,7 @@
 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 a0f79fe..ed298a8 100644
--- a/dlls/tapi32/Makefile.in
+++ b/dlls/tapi32/Makefile.in
@@ -2,7 +2,7 @@
 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 c64d2be..65f7c07 100644
--- a/dlls/ttydrv/Makefile.in
+++ b/dlls/ttydrv/Makefile.in
@@ -2,9 +2,8 @@
 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 12d6892..4ada341 100644
--- a/dlls/url/Makefile.in
+++ b/dlls/url/Makefile.in
@@ -2,7 +2,7 @@
 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 a617d29..7827f1b 100644
--- a/dlls/urlmon/Makefile.in
+++ b/dlls/urlmon/Makefile.in
@@ -2,7 +2,7 @@
 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 3e06a92..8be59cd 100644
--- a/dlls/user/Makefile.in
+++ b/dlls/user/Makefile.in
@@ -3,10 +3,9 @@
 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 @@
 
 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 343ca76..8c1129e 100644
--- a/dlls/version/Makefile.in
+++ b/dlls/version/Makefile.in
@@ -2,8 +2,8 @@
 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 78887ed..444f6e7 100644
--- a/dlls/win32s/Makefile.in
+++ b/dlls/win32s/Makefile.in
@@ -2,9 +2,8 @@
 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 b818563..af06db7 100644
--- a/dlls/winaspi/Makefile.in
+++ b/dlls/winaspi/Makefile.in
@@ -2,8 +2,8 @@
 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 a86c1fb..963f707 100644
--- a/dlls/winedos/Makefile.in
+++ b/dlls/winedos/Makefile.in
@@ -2,9 +2,8 @@
 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 fa45bd8..7086a8b3 100644
--- a/dlls/wineps/Makefile.in
+++ b/dlls/wineps/Makefile.in
@@ -2,10 +2,9 @@
 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 515244a..f93ea96 100644
--- a/dlls/wininet/Makefile.in
+++ b/dlls/wininet/Makefile.in
@@ -3,7 +3,7 @@
 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 5e9dcc2..a9ec514 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -3,8 +3,8 @@
 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 e01c9d9..d99fe41 100644
--- a/dlls/winnls/Makefile.in
+++ b/dlls/winnls/Makefile.in
@@ -2,8 +2,8 @@
 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 c42de39..d41535c 100644
--- a/dlls/winsock/Makefile.in
+++ b/dlls/winsock/Makefile.in
@@ -3,10 +3,9 @@
 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 a29a368..5bcace2 100644
--- a/dlls/winspool/Makefile.in
+++ b/dlls/winspool/Makefile.in
@@ -15,5 +15,7 @@
 
 @MAKE_DLL_RULES@
 
-### Dependencies:
+install:: install_libdir
+uninstall:: uninstall_libdir
 
+### Dependencies:
diff --git a/dlls/wintrust/Makefile.in b/dlls/wintrust/Makefile.in
index 2ca9c3e..384a5f3 100644
--- a/dlls/wintrust/Makefile.in
+++ b/dlls/wintrust/Makefile.in
@@ -2,7 +2,7 @@
 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 6c6a6d8..f68bcdc 100644
--- a/dlls/wow32/Makefile.in
+++ b/dlls/wow32/Makefile.in
@@ -2,7 +2,7 @@
 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 4c3801b..c8accb8 100644
--- a/dlls/wsock32/Makefile.in
+++ b/dlls/wsock32/Makefile.in
@@ -2,7 +2,7 @@
 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 9c498e6..ddcf5a4 100644
--- a/dlls/x11drv/Makefile.in
+++ b/dlls/x11drv/Makefile.in
@@ -2,9 +2,9 @@
 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 @@
 $(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 7d3d39e..62ec68e 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -220,7 +220,7 @@
 # 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 0027eb3..f7d3c81 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 9f89c72..c363745 100644
--- a/library/loader.c
+++ b/library/loader.c
@@ -48,7 +48,7 @@
 
 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 @@
 /* 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 * sizeof(*dll_paths) );
-    p = path;
-    nb_dll_paths = 0;
-    while (*p)
+    dll_paths = malloc( (count+1) * sizeof(*dll_paths) );
+
+    if (count)
     {
-        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++;
+        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++;
+        }
+    }
+
+    /* append default dll dir (if not empty) to path */
+    if ((len = strlen(dlldir)))
+    {
+        if (len > dll_path_maxlen) dll_path_maxlen = len;
+        dll_paths[nb_dll_paths++] = dlldir;
     }
 }
 
@@ -93,28 +109,23 @@
 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 e54d0dc..10ae35e 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -80,18 +80,21 @@
 /* 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 06fdac9..5bf55da 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -790,7 +790,7 @@
     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 @@
             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);