Improved make_dlls script. Moved dll list out of
Make.rules.in. Removed a few no longer used rules.

diff --git a/Make.rules.in b/Make.rules.in
index 84c0d09..6f11049 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -29,7 +29,6 @@
 X_CFLAGS  = @X_CFLAGS@
 X_LIBS    = @X_LIBS@
 XLIB      = @X_PRE_LIBS@ @XLIB@ @X_EXTRA_LIBS@
-DLL_LINK  = @DLL_LINK@
 LIBS      = @LIBS@
 YACC      = @YACC@
 LEX       = @LEX@
@@ -94,86 +93,6 @@
 
 LINTS = $(C_SRCS:.c=.ln)
 
-# DLL list
-
-X_DLLS = \
-	ddraw \
-	@OPENGL32_DLL@ \
-	@GLU32_DLL@ \
-	x11drv
-
-DLLS = \
-	@X_DLLS@ \
-	advapi32 \
-	avifil32 \
-	comctl32 \
-	comdlg32 \
-	crtdll \
-	dciman32 \
-	dinput \
-	dplay \
-	dplayx \
-	dsound \
-	gdi32 \
-	icmp \
-	imagehlp \
-	imm32 \
-	joystick.drv \
-	kernel32 \
-	lz32 \
-	mapi32 \
-	mcianim.drv \
-	mciavi.drv \
-	mcicda.drv \
-	mciseq.drv \
-	mciwave.drv \
-	midimap.drv \
-	mpr \
-	msacm.drv \
-	msacm32 \
-	msimg32 \
-	msnet32 \
-	msvcrt \
-	msvfw32 \
-	odbc32 \
-	ole32 \
-	oleaut32 \
-	olecli32 \
-	oledlg \
-	olepro32 \
-	olesvr32 \
-	psapi \
-	quartz \
-	rasapi32 \
-	riched32 \
-	rpcrt4 \
-	serialui \
-	setupapi \
-	shdocvw \
-	shell32 \
-	shfolder \
-	shlwapi \
-	sti \
-	tapi32 \
-	ttydrv \
-	url \
-	urlmon \
-	user32 \
-	version \
-	w32skrnl \
-	winedos \
-	wineoss.drv \
-	wineps \
-	wininet \
-	winmm \
-	winnls32 \
-	winspool.drv \
-	wintrust \
-	wnaspi32 \
-	wow32 \
-	ws2_32 \
-	wsock32
-
 # Implicit rules
 
 .SUFFIXES: .mc .rc .mc.rc .res .spec .spec.c .glue.c
diff --git a/Makefile.in b/Makefile.in
index b0ae133..1ea3e04 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -67,8 +67,6 @@
 EMUOBJS = \
 	miscemu/miscemu.o
 
-DLLOBJS = $(DLLS:%=dlls/lib%.@LIBEXT@)
-
 all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) $(LIBSYMLINKS) wine
 	@echo "Wine build complete."
 
@@ -81,7 +79,7 @@
 	@exit 1
 
 wine: dlls $(EMUOBJS)
-	$(CC) -o wine $(EMUOBJS) $(DLL_LINK) $(LIBS) $(LDFLAGS)
+	$(CC) -o wine $(EMUOBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBS) $(LDFLAGS)
 
 install:: all $(INSTALLSUBDIRS:%=%/__install__)
 	[ -d $(bindir) ] || $(MKDIR) $(bindir)
@@ -92,7 +90,7 @@
 uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__)
 	cd $(bindir) && $(RM) wine dosmod
 
-$(EMUOBJS) $(DLLOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy
+$(EMUOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy
 	@cd `dirname $@` && $(MAKE) `basename $@`
 
 libwine.$(LIBEXT): library/libwine.$(LIBEXT)
@@ -109,7 +107,7 @@
 
 # Dependencies between directories
 
-$(DLLOBJS) $(PROGRAMS): tools
+$(PROGRAMS): tools
 
 $(EMUOBJS): tools dlls
 
diff --git a/configure b/configure
index 3ba9208..1833eee 100755
--- a/configure
+++ b/configure
@@ -3104,17 +3104,11 @@
 
 
 
-X_DLLS=""
-
 XFILES=""
 
 OPENGLFILES=""
 
-OPENGL32_DLL=""
 GLU32FILES=""
-
-GLU32_DLL=""
-
 if test "$have_x" = "yes"
 then
     XLIB="-lXext -lX11"
@@ -3125,17 +3119,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3129: checking for $ac_hdr" >&5
+echo "configure:3123: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3134 "configure"
+#line 3128 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3133: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3156,7 +3150,7 @@
 #define $ac_tr_hdr 1
 EOF
           echo $ac_n "checking for XpmCreatePixmapFromData in -lXpm""... $ac_c" 1>&6
-echo "configure:3160: checking for XpmCreatePixmapFromData in -lXpm" >&5
+echo "configure:3154: checking for XpmCreatePixmapFromData in -lXpm" >&5
 ac_lib_var=`echo Xpm'_'XpmCreatePixmapFromData | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3165,7 +3159,7 @@
 LIBS="-lXpm $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
          $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3169 "configure"
+#line 3163 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3176,7 +3170,7 @@
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:3180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3222,17 +3216,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3226: checking for $ac_hdr" >&5
+echo "configure:3220: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3231 "configure"
+#line 3225 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3257,17 +3251,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3261: checking for $ac_hdr" >&5
+echo "configure:3255: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3266 "configure"
+#line 3260 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3288,7 +3282,7 @@
 #define $ac_tr_hdr 1
 EOF
                 echo $ac_n "checking for XkbQueryExtension in -lX11""... $ac_c" 1>&6
-echo "configure:3292: checking for XkbQueryExtension in -lX11" >&5
+echo "configure:3286: checking for XkbQueryExtension in -lX11" >&5
 ac_lib_var=`echo X11'_'XkbQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3296,7 +3290,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3300 "configure"
+#line 3294 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3307,7 +3301,7 @@
 XkbQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3343,17 +3337,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3347: checking for $ac_hdr" >&5
+echo "configure:3341: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3352 "configure"
+#line 3346 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3357: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3374,7 +3368,7 @@
 #define $ac_tr_hdr 1
 EOF
                 echo $ac_n "checking for XShmQueryExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3378: checking for XShmQueryExtension in -lXext" >&5
+echo "configure:3372: checking for XShmQueryExtension in -lXext" >&5
 ac_lib_var=`echo Xext'_'XShmQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3382,7 +3376,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext $X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3386 "configure"
+#line 3380 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3393,7 +3387,7 @@
 XShmQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3429,17 +3423,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3433: checking for $ac_hdr" >&5
+echo "configure:3427: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3438 "configure"
+#line 3432 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3460,7 +3454,7 @@
 #define $ac_tr_hdr 1
 EOF
                 echo $ac_n "checking for XShapeQueryExtension in -lXext""... $ac_c" 1>&6
-echo "configure:3464: checking for XShapeQueryExtension in -lXext" >&5
+echo "configure:3458: checking for XShapeQueryExtension in -lXext" >&5
 ac_lib_var=`echo Xext'_'XShapeQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3468,7 +3462,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext $X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3472 "configure"
+#line 3466 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3479,7 +3473,7 @@
 XShapeQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3515,17 +3509,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3519: checking for $ac_hdr" >&5
+echo "configure:3513: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3524 "configure"
+#line 3518 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3546,7 +3540,7 @@
 #define $ac_tr_hdr 1
 EOF
                               echo $ac_n "checking for XDGAQueryExtension in -lXxf86dga""... $ac_c" 1>&6
-echo "configure:3550: checking for XDGAQueryExtension in -lXxf86dga" >&5
+echo "configure:3544: checking for XDGAQueryExtension in -lXxf86dga" >&5
 ac_lib_var=`echo Xxf86dga'_'XDGAQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3555,7 +3549,7 @@
 LIBS="-lXxf86dga $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3559 "configure"
+#line 3553 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3566,7 +3560,7 @@
 XDGAQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3590,7 +3584,7 @@
 else
   echo "$ac_t""no" 1>&6
                                      echo $ac_n "checking for XF86DGAQueryExtension in -lXxf86dga""... $ac_c" 1>&6
-echo "configure:3594: checking for XF86DGAQueryExtension in -lXxf86dga" >&5
+echo "configure:3588: checking for XF86DGAQueryExtension in -lXxf86dga" >&5
 ac_lib_var=`echo Xxf86dga'_'XF86DGAQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3599,7 +3593,7 @@
 LIBS="-lXxf86dga $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                    $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3603 "configure"
+#line 3597 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3610,7 +3604,7 @@
 XF86DGAQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3651,17 +3645,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3655: checking for $ac_hdr" >&5
+echo "configure:3649: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3660 "configure"
+#line 3654 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3682,7 +3676,7 @@
 #define $ac_tr_hdr 1
 EOF
                   echo $ac_n "checking for XF86VidModeQueryExtension in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:3686: checking for XF86VidModeQueryExtension in -lXxf86vm" >&5
+echo "configure:3680: checking for XF86VidModeQueryExtension in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3691,7 +3685,7 @@
 LIBS="-lXxf86vm $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3695 "configure"
+#line 3689 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3702,7 +3696,7 @@
 XF86VidModeQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3740,17 +3734,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3744: checking for $ac_hdr" >&5
+echo "configure:3738: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3749 "configure"
+#line 3743 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3754: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3771,7 +3765,7 @@
 #define $ac_tr_hdr 1
 EOF
                   echo $ac_n "checking for XvShmCreateImage in -lXv""... $ac_c" 1>&6
-echo "configure:3775: checking for XvShmCreateImage in -lXv" >&5
+echo "configure:3769: checking for XvShmCreateImage in -lXv" >&5
 ac_lib_var=`echo Xv'_'XvShmCreateImage | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3780,7 +3774,7 @@
 LIBS="-lXv $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3784 "configure"
+#line 3778 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3791,7 +3785,7 @@
 XvShmCreateImage()
 ; return 0; }
 EOF
-if { (eval echo configure:3795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3829,17 +3823,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3833: checking for $ac_hdr" >&5
+echo "configure:3827: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3838 "configure"
+#line 3832 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3860,7 +3854,7 @@
 #define $ac_tr_hdr 1
 EOF
                   echo $ac_n "checking for XRenderQueryExtension in -lXrender""... $ac_c" 1>&6
-echo "configure:3864: checking for XRenderQueryExtension in -lXrender" >&5
+echo "configure:3858: checking for XRenderQueryExtension in -lXrender" >&5
 ac_lib_var=`echo Xrender'_'XRenderQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3869,7 +3863,7 @@
 LIBS="-lXrender $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3873 "configure"
+#line 3867 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3880,7 +3874,7 @@
 XRenderQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:3884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3927,17 +3921,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3931: checking for $ac_hdr" >&5
+echo "configure:3925: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3936 "configure"
+#line 3930 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3966,19 +3960,19 @@
 	if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
 	then
 	    	    echo $ac_n "checking "for up-to-date OpenGL version"""... $ac_c" 1>&6
-echo "configure:3970: checking "for up-to-date OpenGL version"" >&5
+echo "configure:3964: checking "for up-to-date OpenGL version"" >&5
 if eval "test \"`echo '$''{'wine_cv_opengl_version_OK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3975 "configure"
+#line 3969 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 int main() {
 GLenum test = GL_UNSIGNED_SHORT_5_6_5;
 ; return 0; }
 EOF
-if { (eval echo configure:3982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_opengl_version_OK="yes"
 else
@@ -3995,21 +3989,21 @@
 echo "$ac_t""$wine_cv_opengl_version_OK" 1>&6
 
 	    	    echo $ac_n "checking "for thread-safe OpenGL version"""... $ac_c" 1>&6
-echo "configure:3999: checking "for thread-safe OpenGL version"" >&5
+echo "configure:3993: checking "for thread-safe OpenGL version"" >&5
 if eval "test \"`echo '$''{'wine_cv_opengl_version_threadsafe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   saved_libs=$LIBS
 	       LIBS="$X_LIBS -lGL"
 	       cat > conftest.$ac_ext <<EOF
-#line 4006 "configure"
+#line 4000 "configure"
 #include "confdefs.h"
 
 int main() {
 pthread_getspecific();
 ; return 0; }
 EOF
-if { (eval echo configure:4013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   wine_cv_opengl_version_threadsafe="yes"
 else
@@ -4028,7 +4022,7 @@
 	    if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o $OPENGL = "yes" \)
             then
 				echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6
-echo "configure:4032: checking for glXCreateContext in -lGL" >&5
+echo "configure:4026: checking for glXCreateContext in -lGL" >&5
 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4036,7 +4030,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lGL $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4040 "configure"
+#line 4034 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4047,7 +4041,7 @@
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:4051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4079,7 +4073,7 @@
 
 
 			echo $ac_n "checking for glXGetProcAddressARB in -lGL""... $ac_c" 1>&6
-echo "configure:4083: checking for glXGetProcAddressARB in -lGL" >&5
+echo "configure:4077: checking for glXGetProcAddressARB in -lGL" >&5
 ac_lib_var=`echo GL'_'glXGetProcAddressARB | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4087,7 +4081,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lGL $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4091 "configure"
+#line 4085 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4098,7 +4092,7 @@
 glXGetProcAddressARB()
 ; return 0; }
 EOF
-if { (eval echo configure:4102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4125,12 +4119,12 @@
 			if test $ac_cv_lib_GL_glXGetProcAddressARB = "yes"
 			then
 			       echo $ac_n "checking "for OpenGL extension functions prototypes"""... $ac_c" 1>&6
-echo "configure:4129: checking "for OpenGL extension functions prototypes"" >&5
+echo "configure:4123: checking "for OpenGL extension functions prototypes"" >&5
 if eval "test \"`echo '$''{'wine_cv_extension_prototypes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4134 "configure"
+#line 4128 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 				  		  #ifdef HAVE_GL_GLEXT_H
@@ -4141,7 +4135,7 @@
 PFNGLCOLORTABLEEXTPROC test_proc;
 ; return 0; }
 EOF
-if { (eval echo configure:4145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_extension_prototypes="yes"
 else
@@ -4163,13 +4157,11 @@
 EOF
 
 				fi
-
-				OPENGL32_DLL=opengl32
 			fi
 
 		fi
 	        		echo $ac_n "checking for gluLookAt in -lGLU""... $ac_c" 1>&6
-echo "configure:4173: checking for gluLookAt in -lGLU" >&5
+echo "configure:4165: checking for gluLookAt in -lGLU" >&5
 ac_lib_var=`echo GLU'_'gluLookAt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4178,7 +4170,7 @@
 LIBS="-lGLU $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
 		 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4182 "configure"
+#line 4174 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4189,7 +4181,7 @@
 gluLookAt()
 ; return 0; }
 EOF
-if { (eval echo configure:4193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4206,7 +4198,6 @@
   echo "$ac_t""yes" 1>&6
   X_PRE_LIBS="$X_PRE_LIBS -lGLU"
 			     GLU32FILES='$(GLU32FILES)'
-			     GLU32_DLL=glu32
 			     
 else
   echo "$ac_t""no" 1>&6
@@ -4217,7 +4208,6 @@
     fi
 
     CPPFLAGS="$ac_save_CPPFLAGS"
-    X_DLLS='$(X_DLLS)'
     XFILES='$(XFILES)'
 else
     XLIB=""
@@ -4231,17 +4221,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4235: checking for $ac_hdr" >&5
+echo "configure:4225: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4240 "configure"
+#line 4230 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4262,7 +4252,7 @@
 #define $ac_tr_hdr 1
 EOF
  echo $ac_n "checking for waddch in -lncurses""... $ac_c" 1>&6
-echo "configure:4266: checking for waddch in -lncurses" >&5
+echo "configure:4256: checking for waddch in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'waddch | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4270,7 +4260,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4274 "configure"
+#line 4264 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4281,7 +4271,7 @@
 waddch()
 ; return 0; }
 EOF
-if { (eval echo configure:4285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4314,17 +4304,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4318: checking for $ac_hdr" >&5
+echo "configure:4308: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4323 "configure"
+#line 4313 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4328: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4345,7 +4335,7 @@
 #define $ac_tr_hdr 1
 EOF
  echo $ac_n "checking for waddch in -lcurses""... $ac_c" 1>&6
-echo "configure:4349: checking for waddch in -lcurses" >&5
+echo "configure:4339: checking for waddch in -lcurses" >&5
 ac_lib_var=`echo curses'_'waddch | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4353,7 +4343,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4357 "configure"
+#line 4347 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4364,7 +4354,7 @@
 waddch()
 ; return 0; }
 EOF
-if { (eval echo configure:4368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4402,12 +4392,12 @@
     for ac_func in getbkgd resizeterm
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4406: checking for $ac_func" >&5
+echo "configure:4396: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4411 "configure"
+#line 4401 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4430,7 +4420,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4459,7 +4449,7 @@
 CUPSLIBS=""
 wine_cv_warn_cups_h=no
 echo $ac_n "checking for cupsGetPPD in -lcups""... $ac_c" 1>&6
-echo "configure:4463: checking for cupsGetPPD in -lcups" >&5
+echo "configure:4453: checking for cupsGetPPD in -lcups" >&5
 ac_lib_var=`echo cups'_'cupsGetPPD | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4467,7 +4457,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcups  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4471 "configure"
+#line 4461 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4478,7 +4468,7 @@
 cupsGetPPD()
 ; return 0; }
 EOF
-if { (eval echo configure:4482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4495,17 +4485,17 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "cups/cups.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for cups/cups.h""... $ac_c" 1>&6
-echo "configure:4499: checking for cups/cups.h" >&5
+echo "configure:4489: checking for cups/cups.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4504 "configure"
+#line 4494 "configure"
 #include "confdefs.h"
 #include <cups/cups.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4539,7 +4529,7 @@
 
 
 echo $ac_n "checking for FT_Init_FreeType in -lfreetype""... $ac_c" 1>&6
-echo "configure:4543: checking for FT_Init_FreeType in -lfreetype" >&5
+echo "configure:4533: checking for FT_Init_FreeType in -lfreetype" >&5
 ac_lib_var=`echo freetype'_'FT_Init_FreeType | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4547,7 +4537,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lfreetype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4551 "configure"
+#line 4541 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4558,7 +4548,7 @@
 FT_Init_FreeType()
 ; return 0; }
 EOF
-if { (eval echo configure:4562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4588,7 +4578,7 @@
     # Extract the first word of "freetype-config", so it can be a program name with args.
 set dummy freetype-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4592: checking for $ac_word" >&5
+echo "configure:4582: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ft_devel'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4620,7 +4610,7 @@
         # Extract the first word of "freetype2-config", so it can be a program name with args.
 set dummy freetype2-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4624: checking for $ac_word" >&5
+echo "configure:4614: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ft_devel2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4676,17 +4666,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4680: checking for $ac_hdr" >&5
+echo "configure:4670: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4685 "configure"
+#line 4675 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4690: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4720,19 +4710,19 @@
 
 
 echo $ac_n "checking "for parport header/ppdev.h"""... $ac_c" 1>&6
-echo "configure:4724: checking "for parport header/ppdev.h"" >&5
+echo "configure:4714: checking "for parport header/ppdev.h"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_ppdev'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4729 "configure"
+#line 4719 "configure"
 #include "confdefs.h"
 #include <linux/ppdev.h>
 int main() {
 ioctl (1,PPCLAIM,0)
 ; return 0; }
 EOF
-if { (eval echo configure:4736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_ppdev="yes"
 else
@@ -4755,12 +4745,12 @@
 fi
 
 echo $ac_n "checking "for GNU style IPX support"""... $ac_c" 1>&6
-echo "configure:4759: checking "for GNU style IPX support"" >&5
+echo "configure:4749: checking "for GNU style IPX support"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_ipx_gnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4764 "configure"
+#line 4754 "configure"
 #include "confdefs.h"
 #include <sys/socket.h>
     #include <netipx/ipx.h>
@@ -4768,7 +4758,7 @@
 ((struct sockaddr_ipx *)0)->sipx_family == AF_IPX
 ; return 0; }
 EOF
-if { (eval echo configure:4772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_ipx_gnu="yes"
 else
@@ -4793,12 +4783,12 @@
 if test "$ac_cv_c_ipx_gnu" = "no"
 then
  echo $ac_n "checking "for linux style IPX support"""... $ac_c" 1>&6
-echo "configure:4797: checking "for linux style IPX support"" >&5
+echo "configure:4787: checking "for linux style IPX support"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_ipx_linux'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4802 "configure"
+#line 4792 "configure"
 #include "confdefs.h"
 #include <sys/socket.h>
      #include <asm/types.h>
@@ -4807,7 +4797,7 @@
 ((struct sockaddr_ipx *)0)->sipx_family == AF_IPX
 ; return 0; }
 EOF
-if { (eval echo configure:4811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4801: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_ipx_linux="yes"
 else
@@ -4834,17 +4824,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4838: checking for $ac_hdr" >&5
+echo "configure:4828: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4843 "configure"
+#line 4833 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4872,12 +4862,12 @@
 
 
 echo $ac_n "checking "for Open Sound System"""... $ac_c" 1>&6
-echo "configure:4876: checking "for Open Sound System"" >&5
+echo "configure:4866: checking "for Open Sound System"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_opensoundsystem'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4881 "configure"
+#line 4871 "configure"
 #include "confdefs.h"
 
 	#if defined(HAVE_SYS_SOUNDCARD_H)
@@ -4898,7 +4888,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_opensoundsystem="yes"
 else
@@ -4921,12 +4911,12 @@
 fi
 
 echo $ac_n "checking "for Open Sound System/MIDI interface"""... $ac_c" 1>&6
-echo "configure:4925: checking "for Open Sound System/MIDI interface"" >&5
+echo "configure:4915: checking "for Open Sound System/MIDI interface"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_opensoundsystem_midi'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4930 "configure"
+#line 4920 "configure"
 #include "confdefs.h"
 
 	#if defined(HAVE_SYS_SOUNDCARD_H)
@@ -4947,7 +4937,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_opensoundsystem_midi="yes"
 else
@@ -4973,7 +4963,7 @@
 
 
 echo $ac_n "checking "whether mmap64 works defined as mmap"""... $ac_c" 1>&6
-echo "configure:4977: checking "whether mmap64 works defined as mmap"" >&5
+echo "configure:4967: checking "whether mmap64 works defined as mmap"" >&5
 if eval "test \"`echo '$''{'ac_cv_mmap64_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4981,7 +4971,7 @@
   ac_cv_mmap64_works="no"
 else
   cat > conftest.$ac_ext <<EOF
-#line 4985 "configure"
+#line 4975 "configure"
 #include "confdefs.h"
 
 		#define _FILE_OFFSET_BITS 64
@@ -5011,7 +5001,7 @@
 
 	
 EOF
-if { (eval echo configure:5015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_mmap64_works="yes"
 else
@@ -5040,7 +5030,7 @@
 then
   CFLAGS="$CFLAGS -Wall"
   echo $ac_n "checking "for gcc strength-reduce bug"""... $ac_c" 1>&6
-echo "configure:5044: checking "for gcc strength-reduce bug"" >&5
+echo "configure:5034: checking "for gcc strength-reduce bug"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_gcc_strength_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5048,7 +5038,7 @@
   ac_cv_c_gcc_strength_bug="yes"
 else
   cat > conftest.$ac_ext <<EOF
-#line 5052 "configure"
+#line 5042 "configure"
 #include "confdefs.h"
 
 int	L[4] = {0,1,2,3};
@@ -5063,7 +5053,7 @@
   exit( Array[1] != -2 || L[2] != 3);
 }
 EOF
-if { (eval echo configure:5067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_gcc_strength_bug="no"
 else
@@ -5084,21 +5074,21 @@
   fi
 
     echo $ac_n "checking "for gcc -mpreferred-stack-boundary=2 support"""... $ac_c" 1>&6
-echo "configure:5088: checking "for gcc -mpreferred-stack-boundary=2 support"" >&5
+echo "configure:5078: checking "for gcc -mpreferred-stack-boundary=2 support"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_gcc_stack_boundary'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   saved_cflags=$CFLAGS
   CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
   cat > conftest.$ac_ext <<EOF
-#line 5095 "configure"
+#line 5085 "configure"
 #include "confdefs.h"
 
 int main() {
 return 0
 ; return 0; }
 EOF
-if { (eval echo configure:5102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_gcc_stack_boundary="yes"
 else
@@ -5121,7 +5111,7 @@
 
 
 echo $ac_n "checking "whether .type must sit inside a .def directive"""... $ac_c" 1>&6
-echo "configure:5125: checking "whether .type must sit inside a .def directive"" >&5
+echo "configure:5115: checking "whether .type must sit inside a .def directive"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_type_in_def'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5134,14 +5124,14 @@
 	.long 0
 EOF
 cat > conftest.$ac_ext <<EOF
-#line 5138 "configure"
+#line 5128 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_c_type_in_def="yes"
 else
@@ -5165,7 +5155,7 @@
  
 
 echo $ac_n "checking "whether external symbols need an underscore prefix"""... $ac_c" 1>&6
-echo "configure:5169: checking "whether external symbols need an underscore prefix"" >&5
+echo "configure:5159: checking "whether external symbols need an underscore prefix"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_extern_prefix'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5177,14 +5167,14 @@
 	.long 0
 EOF
 cat > conftest.$ac_ext <<EOF
-#line 5181 "configure"
+#line 5171 "configure"
 #include "confdefs.h"
 extern int ac_test;
 int main() {
 if (ac_test) return 1
 ; return 0; }
 EOF
-if { (eval echo configure:5188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_c_extern_prefix="yes"
 else
@@ -5208,7 +5198,7 @@
 
 
 echo $ac_n "checking "whether assembler accepts .string"""... $ac_c" 1>&6
-echo "configure:5212: checking "whether assembler accepts .string"" >&5
+echo "configure:5202: checking "whether assembler accepts .string"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_asm_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5218,14 +5208,14 @@
 	.string "test"
 EOF
 cat > conftest.$ac_ext <<EOF
-#line 5222 "configure"
+#line 5212 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_c_asm_string="yes"
 else
@@ -5253,21 +5243,21 @@
 if test "$LIBEXT" = "so"
 then
   echo $ac_n "checking "whether we can build a GNU style ELF dll"""... $ac_c" 1>&6
-echo "configure:5257: checking "whether we can build a GNU style ELF dll"" >&5
+echo "configure:5247: checking "whether we can build a GNU style ELF dll"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_dll_gnuelf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   saved_cflags=$CFLAGS
   CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
   cat > conftest.$ac_ext <<EOF
-#line 5264 "configure"
+#line 5254 "configure"
 #include "confdefs.h"
 
 int main() {
 return 1
 ; return 0; }
 EOF
-if { (eval echo configure:5271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_c_dll_gnuelf="yes"
 else
@@ -5288,21 +5278,21 @@
     LDDLLFLAGS="-Wl,-Bsymbolic"
   else
     echo $ac_n "checking whether we can build a UnixWare (Solaris) dll""... $ac_c" 1>&6
-echo "configure:5292: checking whether we can build a UnixWare (Solaris) dll" >&5
+echo "configure:5282: checking whether we can build a UnixWare (Solaris) dll" >&5
 if eval "test \"`echo '$''{'ac_cv_c_dll_unixware'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   saved_cflags=$CFLAGS
     CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
     cat > conftest.$ac_ext <<EOF
-#line 5299 "configure"
+#line 5289 "configure"
 #include "confdefs.h"
 
 int main() {
 return 1
 ; return 0; }
 EOF
-if { (eval echo configure:5306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_c_dll_unixware="yes"
 else
@@ -5348,85 +5338,11 @@
 
 if test "$LIBEXT" = "so"; then
     DLLFLAGS="-fPIC"
-    DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
     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
-    DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
     LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
-else
-    DLL_LINK="-L\$(DLLDIR) \$(DLLS:%=-l%) \$(LIBWINE) \$(LIBUNICODE) \$(X_LIBS) \$(XLIB)"
-    echo $ac_n "checking whether the linker supports --[no]-whole-archive (Linux)""... $ac_c" 1>&6
-echo "configure:5361: checking whether the linker supports --[no]-whole-archive (Linux)" >&5
-if eval "test \"`echo '$''{'ac_cv_c_whole_archive'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  saved_cflags=$CFLAGS
-            CFLAGS="$CFLAGS -Wl,--whole-archive -Wl,--no-whole-archive"
-            cat > conftest.$ac_ext <<EOF
-#line 5368 "configure"
-#include "confdefs.h"
-
-int main() {
-return 1
-; return 0; }
-EOF
-if { (eval echo configure:5375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  ac_cv_c_whole_archive="yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_whole_archive="no"
 fi
-rm -f conftest*
-            CFLAGS=$saved_cflags
-            
-fi
-
-echo "$ac_t""$ac_cv_c_whole_archive" 1>&6
-    if test "$ac_cv_c_whole_archive" = "yes"
-    then
-        DLL_LINK="-Wl,--whole-archive $DLL_LINK -Wl,--no-whole-archive"
-    else
-        echo $ac_n "checking whether the linker supports -z {all,default}extract (Linux)""... $ac_c" 1>&6
-echo "configure:5395: checking whether the linker supports -z {all,default}extract (Linux)" >&5
-if eval "test \"`echo '$''{'ac_cv_c_allextract'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  saved_cflags=$CFLAGS
-		CFLAGS="$CFLAGS -Wl,-z,allextract -Wl,-z,defaultextract"
-		cat > conftest.$ac_ext <<EOF
-#line 5402 "configure"
-#include "confdefs.h"
-
-int main() {
-return 1
-; return 0; }
-EOF
-if { (eval echo configure:5409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  ac_cv_c_allextract="yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_allextract="no"
-fi
-rm -f conftest*
-		CFLAGS=$saved_cflags
-		
-fi
-
-echo "$ac_t""$ac_cv_c_allextract" 1>&6
-        if test "$ac_cv_c_allextract" = "yes"
-        then
-            DLL_LINK="-Wl,-z,allextract $DLL_LINK -Wl,-z,defaultextract"
-        fi
-    fi
-fi
-
 
 
 
@@ -5440,7 +5356,7 @@
 wine_cv_libc_reentrant=no 
 
   echo $ac_n "checking for reentrant libc: __errno_location""... $ac_c" 1>&6
-echo "configure:5444: checking for reentrant libc: __errno_location" >&5
+echo "configure:5360: checking for reentrant libc: __errno_location" >&5
 if eval "test \"`echo '$''{'wine_cv_libc_r___errno_location'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5448,14 +5364,14 @@
   wine_cv_libc_r___errno_location=yes 
 else
   cat > conftest.$ac_ext <<EOF
-#line 5452 "configure"
+#line 5368 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
 int *__errno_location(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 EOF
-if { (eval echo configure:5459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wine_cv_libc_r___errno_location=yes
 else
@@ -5478,7 +5394,7 @@
 
 
   echo $ac_n "checking for reentrant libc: __error""... $ac_c" 1>&6
-echo "configure:5482: checking for reentrant libc: __error" >&5
+echo "configure:5398: checking for reentrant libc: __error" >&5
 if eval "test \"`echo '$''{'wine_cv_libc_r___error'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5486,14 +5402,14 @@
   wine_cv_libc_r___error=yes 
 else
   cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5406 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
 int *__error(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 EOF
-if { (eval echo configure:5497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wine_cv_libc_r___error=yes
 else
@@ -5516,7 +5432,7 @@
 
 
   echo $ac_n "checking for reentrant libc: ___errno""... $ac_c" 1>&6
-echo "configure:5520: checking for reentrant libc: ___errno" >&5
+echo "configure:5436: checking for reentrant libc: ___errno" >&5
 if eval "test \"`echo '$''{'wine_cv_libc_r____errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5524,14 +5440,14 @@
   wine_cv_libc_r____errno=yes 
 else
   cat > conftest.$ac_ext <<EOF
-#line 5528 "configure"
+#line 5444 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
 int *___errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 EOF
-if { (eval echo configure:5535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wine_cv_libc_r____errno=yes
 else
@@ -5554,7 +5470,7 @@
 
 
   echo $ac_n "checking for reentrant libc: __thr_errno""... $ac_c" 1>&6
-echo "configure:5558: checking for reentrant libc: __thr_errno" >&5
+echo "configure:5474: checking for reentrant libc: __thr_errno" >&5
 if eval "test \"`echo '$''{'wine_cv_libc_r___thr_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5562,14 +5478,14 @@
   wine_cv_libc_r___thr_errno=yes 
 else
   cat > conftest.$ac_ext <<EOF
-#line 5566 "configure"
+#line 5482 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
 int *__thr_errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 EOF
-if { (eval echo configure:5573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wine_cv_libc_r___thr_errno=yes
 else
@@ -5592,7 +5508,7 @@
 
 
   echo $ac_n "checking for reentrant libc: __errno""... $ac_c" 1>&6
-echo "configure:5596: checking for reentrant libc: __errno" >&5
+echo "configure:5512: checking for reentrant libc: __errno" >&5
 if eval "test \"`echo '$''{'wine_cv_libc_r___errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5600,14 +5516,14 @@
   wine_cv_libc_r___errno=yes 
 else
   cat > conftest.$ac_ext <<EOF
-#line 5604 "configure"
+#line 5520 "configure"
 #include "confdefs.h"
 int myerrno = 0;
 char buf[256];
 int *__errno(){return &myerrno;}
 main(){connect(0,buf,255); exit(!myerrno);}
 EOF
-if { (eval echo configure:5611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wine_cv_libc_r___errno=yes
 else
@@ -5641,7 +5557,7 @@
 if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
 then
 echo $ac_n "checking "for reentrant X libraries"""... $ac_c" 1>&6
-echo "configure:5645: checking "for reentrant X libraries"" >&5
+echo "configure:5561: checking "for reentrant X libraries"" >&5
 if eval "test \"`echo '$''{'wine_cv_x_reentrant'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5690,19 +5606,19 @@
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:5694: checking for working alloca.h" >&5
+echo "configure:5610: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5699 "configure"
+#line 5615 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:5706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -5723,12 +5639,12 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:5727: checking for alloca" >&5
+echo "configure:5643: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5732 "configure"
+#line 5648 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -5756,7 +5672,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:5760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -5788,12 +5704,12 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:5792: checking whether alloca needs Cray hooks" >&5
+echo "configure:5708: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5797 "configure"
+#line 5713 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -5818,12 +5734,12 @@
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5822: checking for $ac_func" >&5
+echo "configure:5738: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5827 "configure"
+#line 5743 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5846,7 +5762,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5873,7 +5789,7 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:5877: checking stack direction for C alloca" >&5
+echo "configure:5793: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5881,7 +5797,7 @@
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 5885 "configure"
+#line 5801 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -5900,7 +5816,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:5904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -5960,12 +5876,12 @@
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5964: checking for $ac_func" >&5
+echo "configure:5880: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5969 "configure"
+#line 5885 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5988,7 +5904,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6071,17 +5987,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6075: checking for $ac_hdr" >&5
+echo "configure:5991: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6080 "configure"
+#line 5996 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6085: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6001: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6108,12 +6024,12 @@
 done
 
 echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:6112: checking whether stat file-mode macros are broken" >&5
+echo "configure:6028: checking whether stat file-mode macros are broken" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6117 "configure"
+#line 6033 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -6166,12 +6082,12 @@
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:6170: checking for working const" >&5
+echo "configure:6086: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6175 "configure"
+#line 6091 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -6220,7 +6136,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -6241,21 +6157,21 @@
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:6245: checking for inline" >&5
+echo "configure:6161: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 6252 "configure"
+#line 6168 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:6259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -6281,12 +6197,12 @@
 esac
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:6285: checking for ANSI C header files" >&5
+echo "configure:6201: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6290 "configure"
+#line 6206 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -6294,7 +6210,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6311,7 +6227,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 <<EOF
-#line 6315 "configure"
+#line 6231 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -6329,7 +6245,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 <<EOF
-#line 6333 "configure"
+#line 6249 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -6350,7 +6266,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 6354 "configure"
+#line 6270 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -6361,7 +6277,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:6365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -6385,12 +6301,12 @@
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:6389: checking for size_t" >&5
+echo "configure:6305: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6394 "configure"
+#line 6310 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6418,7 +6334,7 @@
 fi
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:6422: checking size of long long" >&5
+echo "configure:6338: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6426,7 +6342,7 @@
   ac_cv_sizeof_long_long=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 6430 "configure"
+#line 6346 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -6438,7 +6354,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:6442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -6459,12 +6375,12 @@
 
 
 echo $ac_n "checking "whether linux/input.h is for real"""... $ac_c" 1>&6
-echo "configure:6463: checking "whether linux/input.h is for real"" >&5
+echo "configure:6379: checking "whether linux/input.h is for real"" >&5
 if eval "test \"`echo '$''{'wine_cv_linux_input_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6468 "configure"
+#line 6384 "configure"
 #include "confdefs.h"
 
 	    #include <linux/input.h>
@@ -6477,7 +6393,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_linux_input_h=yes
 else
@@ -6501,12 +6417,12 @@
 
    
 echo $ac_n "checking "whether we can use re-entrant gethostbyname_r Linux style"""... $ac_c" 1>&6
-echo "configure:6505: checking "whether we can use re-entrant gethostbyname_r Linux style"" >&5
+echo "configure:6421: checking "whether we can use re-entrant gethostbyname_r Linux style"" >&5
 if eval "test \"`echo '$''{'wine_cv_linux_gethostbyname_r_6'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6510 "configure"
+#line 6426 "configure"
 #include "confdefs.h"
 
 #include <netdb.h>
@@ -6527,7 +6443,7 @@
     
 ; return 0; }
 EOF
-if { (eval echo configure:6531: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_linux_gethostbyname_r_6=yes
 else
@@ -6553,12 +6469,12 @@
 if test "$ac_cv_header_linux_joystick_h" = "yes"
 then
    echo $ac_n "checking "whether linux/joystick.h uses the Linux 2.2+ API"""... $ac_c" 1>&6
-echo "configure:6557: checking "whether linux/joystick.h uses the Linux 2.2+ API"" >&5
+echo "configure:6473: checking "whether linux/joystick.h uses the Linux 2.2+ API"" >&5
 if eval "test \"`echo '$''{'wine_cv_linux_joystick_22_api'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6562 "configure"
+#line 6478 "configure"
 #include "confdefs.h"
 
 	#include <sys/ioctl.h>
@@ -6573,7 +6489,7 @@
 /*empty*/
 ; return 0; }
 EOF
-if { (eval echo configure:6577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6493: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_linux_joystick_22_api=yes
 else
@@ -6600,12 +6516,12 @@
 if test "$ac_cv_header_sys_vfs_h" = "yes"
 then
     echo $ac_n "checking "whether sys/vfs.h defines statfs"""... $ac_c" 1>&6
-echo "configure:6604: checking "whether sys/vfs.h defines statfs"" >&5
+echo "configure:6520: checking "whether sys/vfs.h defines statfs"" >&5
 if eval "test \"`echo '$''{'wine_cv_sys_vfs_has_statfs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6609 "configure"
+#line 6525 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -6622,7 +6538,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_sys_vfs_has_statfs=yes
 else
@@ -6649,12 +6565,12 @@
 if test "$ac_cv_header_sys_statfs_h" = "yes"
 then
     echo $ac_n "checking "whether sys/statfs.h defines statfs"""... $ac_c" 1>&6
-echo "configure:6653: checking "whether sys/statfs.h defines statfs"" >&5
+echo "configure:6569: checking "whether sys/statfs.h defines statfs"" >&5
 if eval "test \"`echo '$''{'wine_cv_sys_statfs_has_statfs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6658 "configure"
+#line 6574 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -6669,7 +6585,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6673: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_sys_statfs_has_statfs=yes
 else
@@ -6696,12 +6612,12 @@
 if test "$ac_cv_header_sys_mount_h" = "yes"
 then
     echo $ac_n "checking "whether sys/mount.h defines statfs"""... $ac_c" 1>&6
-echo "configure:6700: checking "whether sys/mount.h defines statfs"" >&5
+echo "configure:6616: checking "whether sys/mount.h defines statfs"" >&5
 if eval "test \"`echo '$''{'wine_cv_sys_mount_has_statfs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6705 "configure"
+#line 6621 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -6716,7 +6632,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_sys_mount_has_statfs=yes
 else
@@ -6742,7 +6658,7 @@
 
 
 echo $ac_n "checking "for statfs.f_bfree"""... $ac_c" 1>&6
-echo "configure:6746: checking "for statfs.f_bfree"" >&5
+echo "configure:6662: checking "for statfs.f_bfree"" >&5
 if eval "test \"`echo '$''{'wine_cv_statfs_bfree'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6751,7 +6667,7 @@
         wine_cv_statfs_bfree=no
     else
     	cat > conftest.$ac_ext <<EOF
-#line 6755 "configure"
+#line 6671 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -6778,7 +6694,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_statfs_bfree=yes
 else
@@ -6802,7 +6718,7 @@
 fi
 
 echo $ac_n "checking "for statfs.f_bavail"""... $ac_c" 1>&6
-echo "configure:6806: checking "for statfs.f_bavail"" >&5
+echo "configure:6722: checking "for statfs.f_bavail"" >&5
 if eval "test \"`echo '$''{'wine_cv_statfs_bavail'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6811,7 +6727,7 @@
         wine_cv_statfs_bavail=no
     else
     	cat > conftest.$ac_ext <<EOF
-#line 6815 "configure"
+#line 6731 "configure"
 #include "confdefs.h"
 
 	#include <sys/types.h>
@@ -6838,7 +6754,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6758: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wine_cv_statfs_bavail=yes
 else
@@ -6863,12 +6779,12 @@
 
 
 echo $ac_n "checking "for msg_accrights in struct msghdr"""... $ac_c" 1>&6
-echo "configure:6867: checking "for msg_accrights in struct msghdr"" >&5
+echo "configure:6783: checking "for msg_accrights in struct msghdr"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_msg_accrights'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6872 "configure"
+#line 6788 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6876,7 +6792,7 @@
 struct msghdr hdr; hdr.msg_accrights=0
 ; return 0; }
 EOF
-if { (eval echo configure:6880: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_msg_accrights="yes"
 else
@@ -6899,12 +6815,12 @@
 
 
 echo $ac_n "checking "for sa_len in struct sockaddr"""... $ac_c" 1>&6
-echo "configure:6903: checking "for sa_len in struct sockaddr"" >&5
+echo "configure:6819: checking "for sa_len in struct sockaddr"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_sockaddr_sa_len'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6908 "configure"
+#line 6824 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6913,7 +6829,7 @@
 static struct sockaddr addr; addr.sa_len = 1
 ; return 0; }
 EOF
-if { (eval echo configure:6917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_sockaddr_sa_len="yes"
 else
@@ -6936,12 +6852,12 @@
 
 
 echo $ac_n "checking "for sun_len in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:6940: checking "for sun_len in struct sockaddr_un"" >&5
+echo "configure:6856: checking "for sun_len in struct sockaddr_un"" >&5
 if eval "test \"`echo '$''{'ac_cv_c_sockaddr_sun_len'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6945 "configure"
+#line 6861 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6950,7 +6866,7 @@
 static struct sockaddr_un addr; addr.sun_len = 1
 ; return 0; }
 EOF
-if { (eval echo configure:6954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_sockaddr_sun_len="yes"
 else
@@ -6973,12 +6889,12 @@
 
 
 echo $ac_n "checking "whether we need to define __i386__"""... $ac_c" 1>&6
-echo "configure:6977: checking "whether we need to define __i386__"" >&5
+echo "configure:6893: checking "whether we need to define __i386__"" >&5
 if eval "test \"`echo '$''{'ac_cv_cpp_def_i386'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6982 "configure"
+#line 6898 "configure"
 #include "confdefs.h"
 #if (defined(i386) || defined(__i386)) && !defined(__i386__)
 yes
@@ -7316,18 +7232,14 @@
 s%@LDCOMBINE@%$LDCOMBINE%g
 s%@JPEGLIB@%$JPEGLIB%g
 s%@XLIB@%$XLIB%g
-s%@X_DLLS@%$X_DLLS%g
 s%@XFILES@%$XFILES%g
 s%@OPENGLFILES@%$OPENGLFILES%g
-s%@OPENGL32_DLL@%$OPENGL32_DLL%g
 s%@GLU32FILES@%$GLU32FILES%g
-s%@GLU32_DLL@%$GLU32_DLL%g
 s%@CUPSLIBS@%$CUPSLIBS%g
 s%@ft_devel@%$ft_devel%g
 s%@ft_devel2@%$ft_devel2%g
 s%@FREETYPELIBS@%$FREETYPELIBS%g
 s%@FREETYPEINCL@%$FREETYPEINCL%g
-s%@DLL_LINK@%$DLL_LINK%g
 s%@DLLFLAGS@%$DLLFLAGS%g
 s%@LDSHARED@%$LDSHARED%g
 s%@LDDLLFLAGS@%$LDDLLFLAGS%g
diff --git a/configure.in b/configure.in
index cda784c..3ee02df 100644
--- a/configure.in
+++ b/configure.in
@@ -133,18 +133,12 @@
 
 
 AC_SUBST(XLIB)
-AC_SUBST(X_DLLS)
-X_DLLS=""
 AC_SUBST(XFILES)
 XFILES=""
 AC_SUBST(OPENGLFILES)
 OPENGLFILES=""
-AC_SUBST(OPENGL32_DLL)
-OPENGL32_DLL=""
-GLU32FILES=""
 AC_SUBST(GLU32FILES)
-GLU32_DLL=""
-AC_SUBST(GLU32_DLL)
+GLU32FILES=""
 if test "$have_x" = "yes"
 then
     XLIB="-lXext -lX11"
@@ -341,8 +335,6 @@
 				    AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
                                               [Define if the OpenGL headers define extension typedefs])
 				fi
-
-				OPENGL32_DLL=opengl32
 			fi
 
 		fi
@@ -350,7 +342,6 @@
 		AC_CHECK_LIB(GLU,gluLookAt,
 			     X_PRE_LIBS="$X_PRE_LIBS -lGLU"
 			     GLU32FILES='$(GLU32FILES)'
-			     GLU32_DLL=glu32
 			     ,,
 			     $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
 		)
@@ -359,7 +350,6 @@
     fi
 
     CPPFLAGS="$ac_save_CPPFLAGS"
-    X_DLLS='$(X_DLLS)'
     XFILES='$(XFILES)'
 else
     XLIB=""
@@ -716,40 +706,12 @@
 
 if test "$LIBEXT" = "so"; then
     DLLFLAGS="-fPIC"
-    DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
     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
-    DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
     LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
-else
-    DLL_LINK="-L\$(DLLDIR) \$(DLLS:%=-l%) \$(LIBWINE) \$(LIBUNICODE) \$(X_LIBS) \$(XLIB)"
-    AC_CACHE_CHECK([whether the linker supports --[[no]]-whole-archive (Linux)],
- 	           ac_cv_c_whole_archive,
-            [saved_cflags=$CFLAGS
-            CFLAGS="$CFLAGS -Wl,--whole-archive -Wl,--no-whole-archive"
-            AC_TRY_LINK(,[return 1],ac_cv_c_whole_archive="yes",ac_cv_c_whole_archive="no")
-            CFLAGS=$saved_cflags
-            ])
-    if test "$ac_cv_c_whole_archive" = "yes"
-    then
-        DLL_LINK="-Wl,--whole-archive $DLL_LINK -Wl,--no-whole-archive"
-    else
-        AC_CACHE_CHECK([whether the linker supports -z {all,default}extract (Linux)],
-                       ac_cv_c_allextract,
-		[saved_cflags=$CFLAGS
-		CFLAGS="$CFLAGS -Wl,-z,allextract -Wl,-z,defaultextract"
-		AC_TRY_LINK(,[return 1],ac_cv_c_allextract="yes",ac_cv_c_allextract="no")
-		CFLAGS=$saved_cflags
-		])
-        if test "$ac_cv_c_allextract" = "yes"
-        then
-            DLL_LINK="-Wl,-z,allextract $DLL_LINK -Wl,-z,defaultextract"
-        fi
-    fi
 fi
 
-AC_SUBST(DLL_LINK)
 AC_SUBST(DLLFLAGS)
 AC_SUBST(LDSHARED)
 AC_SUBST(LDDLLFLAGS)
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index 2f3a51d..23d1c83 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -13,12 +13,11 @@
 LIBEXT     = @LIBEXT@
 SONAME     = lib$(MODULE).so
 IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT))
-ALLNAMES   = lib$(MODULE).so $(ALTNAMES:%=lib%.so)
 SPEC_SRCS  = $(ALTNAMES:%=%.spec)
 ALL_OBJS   = $(MODULE).spec.o $(OBJS)
 ALL_LIBS   = $(LIBWINE) $(EXTRALIBS) $(LIBS)
 
-all: lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT))
+all: lib$(MODULE).$(LIBEXT)
 
 @MAKE_RULES@
 
@@ -27,17 +26,8 @@
 lib$(MODULE).so: $(ALL_OBJS) Makefile.in
 	$(LDSHARED) $(LDDLLFLAGS) $(ALL_OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
 
-$(ALTNAMES:%=lib%.$(LIBEXT)): lib$(MODULE).$(LIBEXT)
-	$(RM) $@ && $(LN_S) lib$(MODULE).$(LIBEXT) $@
-
-# Rules for .a files
-
-lib$(MODULE).a: $(ALL_OBJS) Makefile.in
-	$(RM) $@
-	$(AR) $@ $(ALL_OBJS)
-	$(RANLIB) $@
-
 # 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)
 
@@ -59,20 +49,18 @@
 
 # Rules for installation
 
-.PHONY: install_so install_a
+.PHONY: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT))
 
-$(ALTNAMES:%=_install_/lib%.$(LIBEXT)): $(LIBEXT:%=install_%)
+$(ALTNAMES:%=_install_/lib%.$(LIBEXT)): install_lib
 	cd $(libdir) && $(RM) `basename $@` && $(LN_S) lib$(MODULE).$(LIBEXT) `basename $@`
 
-install_so: lib$(MODULE).so
+install_lib: lib$(MODULE).$(LIBEXT)
 	[ -d $(libdir) ] || $(MKDIR) $(libdir)
-	$(INSTALL_PROGRAM) lib$(MODULE).so $(libdir)/lib$(MODULE).so
+	$(INSTALL_PROGRAM) lib$(MODULE).$(LIBEXT) $(libdir)/lib$(MODULE).$(LIBEXT)
 
-install_a: lib$(MODULE).a
-	[ -d $(libdir) ] || $(MKDIR) $(libdir)
-	$(INSTALL_DATA) lib$(MODULE).a $(libdir)/lib$(MODULE).a
-
-install:: $(LIBEXT:%=install_%) $(ALTNAMES:%=_install_/lib%.$(LIBEXT))
+install:: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT))
 
 uninstall::
 	cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT))
+
+# End of global dll rules
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 8352ba9..3a8a137 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -1,155 +1,33 @@
+# Automatically generated by make_dlls; DO NOT EDIT!!
+
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
+LIBEXT    = @LIBEXT@
 
-GLU32FILES= \
-	glu32/libglu32.@LIBEXT@
+# special configure-dependent targets
 
-OPENGLFILES= \
-	@GLU32FILES@ \
-	opengl32/libopengl32.@LIBEXT@
+GLU32FILES = glu32
+OPENGLFILES = opengl32
+XFILES = ddraw x11drv
+EXTRADIRS = @GLU32FILES@ @OPENGLFILES@ @XFILES@
 
-XFILES = \
-	ddraw/libddraw.@LIBEXT@ \
-	@OPENGLFILES@ \
-	x11drv/libx11drv.@LIBEXT@
-
-DLLFILES = \
-	@XFILES@ \
-	advapi32/libadvapi32.@LIBEXT@ \
-	avifil32/libavifil32.@LIBEXT@ \
-	comctl32/libcomctl32.@LIBEXT@ \
-	commdlg/libcomdlg32.@LIBEXT@ \
-	crtdll/libcrtdll.@LIBEXT@ \
-	dciman32/libdciman32.@LIBEXT@ \
-	dinput/libdinput.@LIBEXT@ \
-	dplay/libdplay.@LIBEXT@ \
-	dplayx/libdplayx.@LIBEXT@ \
-	dsound/libdsound.@LIBEXT@ \
-	gdi/libgdi32.@LIBEXT@ \
-	icmp/libicmp.@LIBEXT@ \
-	imagehlp/libimagehlp.@LIBEXT@ \
-	imm32/libimm32.@LIBEXT@ \
-	kernel/libkernel32.@LIBEXT@ \
-	lzexpand/liblz32.@LIBEXT@ \
-	mapi32/libmapi32.@LIBEXT@ \
-	mpr/libmpr.@LIBEXT@ \
-	msacm/libmsacm32.@LIBEXT@ \
-	msimg32/libmsimg32.@LIBEXT@ \
-	msnet32/libmsnet32.@LIBEXT@ \
-	msvcrt/libmsvcrt.@LIBEXT@ \
-	msvideo/libmsvfw32.@LIBEXT@ \
-	ntdll/libntdll.@LIBEXT@ \
-	odbc32/libodbc32.@LIBEXT@ \
-	ole32/libole32.@LIBEXT@ \
-	oleaut32/liboleaut32.@LIBEXT@ \
-	olecli/libolecli32.@LIBEXT@ \
-	oledlg/liboledlg.@LIBEXT@ \
-	olepro32/libolepro32.@LIBEXT@ \
-	olesvr/libolesvr32.@LIBEXT@ \
-	psapi/libpsapi.@LIBEXT@ \
-	quartz/libquartz.@LIBEXT@ \
-	rasapi32/librasapi32.@LIBEXT@ \
-	richedit/libriched32.@LIBEXT@ \
-	rpcrt4/librpcrt4.@LIBEXT@ \
-	serialui/libserialui.@LIBEXT@ \
-	setupapi/libsetupapi.@LIBEXT@ \
-	shdocvw/libshdocvw.@LIBEXT@ \
-	shell32/libshell32.@LIBEXT@ \
-	shfolder/libshfolder.@LIBEXT@ \
-	shlwapi/libshlwapi.@LIBEXT@ \
-	sti/libsti.@LIBEXT@ \
-	tapi32/libtapi32.@LIBEXT@ \
-	ttydrv/libttydrv.@LIBEXT@ \
-	url/liburl.@LIBEXT@ \
-	urlmon/liburlmon.@LIBEXT@ \
-	user/libuser32.@LIBEXT@ \
-	version/libversion.@LIBEXT@ \
-	win32s/libw32skrnl.@LIBEXT@ \
-	winaspi/libwnaspi32.@LIBEXT@ \
-	winedos/libwinedos.@LIBEXT@ \
-	wineps/libwineps.@LIBEXT@ \
-	wininet/libwininet.@LIBEXT@ \
-	winmm/joystick/libjoystick.drv.@LIBEXT@ \
-	winmm/libwinmm.@LIBEXT@ \
-	winmm/mcianim/libmcianim.drv.@LIBEXT@ \
-	winmm/mciavi/libmciavi.drv.@LIBEXT@ \
-	winmm/mcicda/libmcicda.drv.@LIBEXT@ \
-	winmm/mciseq/libmciseq.drv.@LIBEXT@ \
-	winmm/mciwave/libmciwave.drv.@LIBEXT@ \
-	winmm/midimap/libmidimap.drv.@LIBEXT@ \
-	winmm/wavemap/libmsacm.drv.@LIBEXT@ \
-	winmm/wineoss/libwineoss.drv.@LIBEXT@ \
-	winnls/libwinnls32.@LIBEXT@ \
-	winsock/libws2_32.@LIBEXT@ \
-	winspool/libwinspool.drv.@LIBEXT@ \
-	wintrust/libwintrust.@LIBEXT@ \
-	wow32/libwow32.@LIBEXT@ \
-	wsock32/libwsock32.@LIBEXT@
-
-# extra names for dlls containing multiple spec files
-EXTRADLLNAMES = \
-	avifile \
-	comm \
-	commdlg \
-	compobj \
-	ddeml \
-	dispdib \
-	display \
-	gdi \
-	imm \
-	kernel \
-	keyboard \
-	lzexpand \
-	mmsystem \
-	mouse \
-	msacm \
-	msvideo \
-	ole2 \
-	ole2conv \
-	ole2disp \
-	ole2nls \
-	ole2prox \
-	ole2thk \
-	olecli \
-	olesvr \
-	rasapi16 \
-	setupx \
-	shell \
-	sound \
-	storage \
-	stress \
-	system \
-	toolhelp \
-	typelib \
-	user \
-	ver \
-	w32sys \
-	win32s16 \
-	win87em \
-	winaspi \
-	windebug \
-	wineps16 \
-	wing \
-	winnls \
-	winsock \
-	wprocs
+# Subdir list
 
 SUBDIRS = \
+	$(EXTRADIRS) \
 	advapi32 \
 	avifil32 \
 	comctl32 \
 	commdlg \
 	crtdll \
 	dciman32 \
-	ddraw \
 	dinput \
 	dplay \
 	dplayx \
 	dsound \
 	gdi \
-	glu32 \
 	icmp \
 	imagehlp \
 	imm32 \
@@ -170,7 +48,6 @@
 	oledlg \
 	olepro32 \
 	olesvr \
-	opengl32 \
 	psapi \
 	quartz \
 	rasapi32 \
@@ -209,330 +86,643 @@
 	winspool \
 	wintrust \
 	wow32 \
-	wsock32 \
-	x11drv
+	wsock32
+
+# Main target
+
+all: \
+	$(EXTRADIRS:%=lib%.$(LIBEXT)) \
+	libadvapi32.$(LIBEXT) \
+	libavifil32.$(LIBEXT) \
+	libavifile.$(LIBEXT) \
+	libcomctl32.$(LIBEXT) \
+	libcomdlg32.$(LIBEXT) \
+	libcomm.$(LIBEXT) \
+	libcommdlg.$(LIBEXT) \
+	libcompobj.$(LIBEXT) \
+	libcrtdll.$(LIBEXT) \
+	libdciman32.$(LIBEXT) \
+	libddeml.$(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) \
+	libmsimg32.$(LIBEXT) \
+	libmsnet32.$(LIBEXT) \
+	libmsvcrt.$(LIBEXT) \
+	libmsvfw32.$(LIBEXT) \
+	libmsvideo.$(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) \
+	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: $(DLLS:%=lib%.@LIBEXT@) $(EXTRADLLNAMES:%=lib%.@LIBEXT@)
-
 # Map library name to directory
 
-libadvapi32.@LIBEXT@: advapi32/libadvapi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) advapi32/libadvapi32.@LIBEXT@ $@
+libadvapi32.$(LIBEXT): advapi32/libadvapi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) advapi32/libadvapi32.$(LIBEXT) $@
 
-libavifil32.@LIBEXT@ libavifile.@LIBEXT@: avifil32/libavifil32.@LIBEXT@
-	$(RM) $@ && $(LN_S) avifil32/libavifil32.@LIBEXT@ $@
+libavifil32.$(LIBEXT) libavifile.$(LIBEXT): avifil32/libavifil32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) avifil32/libavifil32.$(LIBEXT) $@
 
-libcomctl32.@LIBEXT@: comctl32/libcomctl32.@LIBEXT@
-	$(RM) $@ && $(LN_S) comctl32/libcomctl32.@LIBEXT@ $@
+libcomctl32.$(LIBEXT): comctl32/libcomctl32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) comctl32/libcomctl32.$(LIBEXT) $@
 
-libcomdlg32.@LIBEXT@ libcommdlg.@LIBEXT@: commdlg/libcomdlg32.@LIBEXT@
-	$(RM) $@ && $(LN_S) commdlg/libcomdlg32.@LIBEXT@ $@
+libcomdlg32.$(LIBEXT) libcommdlg.$(LIBEXT): commdlg/libcomdlg32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) commdlg/libcomdlg32.$(LIBEXT) $@
 
-libcrtdll.@LIBEXT@: crtdll/libcrtdll.@LIBEXT@
-	$(RM) $@ && $(LN_S) crtdll/libcrtdll.@LIBEXT@ $@
+libcrtdll.$(LIBEXT): crtdll/libcrtdll.$(LIBEXT)
+	$(RM) $@ && $(LN_S) crtdll/libcrtdll.$(LIBEXT) $@
 
-libdciman32.@LIBEXT@: dciman32/libdciman32.@LIBEXT@
-	$(RM) $@ && $(LN_S) dciman32/libdciman32.@LIBEXT@ $@
+libdciman32.$(LIBEXT): dciman32/libdciman32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) dciman32/libdciman32.$(LIBEXT) $@
 
-libddraw.@LIBEXT@: ddraw/libddraw.@LIBEXT@
-	$(RM) $@ && $(LN_S) ddraw/libddraw.@LIBEXT@ $@
+libddraw.$(LIBEXT): ddraw/libddraw.$(LIBEXT)
+	$(RM) $@ && $(LN_S) ddraw/libddraw.$(LIBEXT) $@
 
-libdinput.@LIBEXT@: dinput/libdinput.@LIBEXT@
-	$(RM) $@ && $(LN_S) dinput/libdinput.@LIBEXT@ $@
+libdinput.$(LIBEXT): dinput/libdinput.$(LIBEXT)
+	$(RM) $@ && $(LN_S) dinput/libdinput.$(LIBEXT) $@
 
-libdplay.@LIBEXT@: dplay/libdplay.@LIBEXT@
-	$(RM) $@ && $(LN_S) dplay/libdplay.@LIBEXT@ $@
+libdplay.$(LIBEXT): dplay/libdplay.$(LIBEXT)
+	$(RM) $@ && $(LN_S) dplay/libdplay.$(LIBEXT) $@
 
-libdplayx.@LIBEXT@: dplayx/libdplayx.@LIBEXT@
-	$(RM) $@ && $(LN_S) dplayx/libdplayx.@LIBEXT@ $@
+libdplayx.$(LIBEXT): dplayx/libdplayx.$(LIBEXT)
+	$(RM) $@ && $(LN_S) dplayx/libdplayx.$(LIBEXT) $@
 
-libdsound.@LIBEXT@: dsound/libdsound.@LIBEXT@
-	$(RM) $@ && $(LN_S) dsound/libdsound.@LIBEXT@ $@
+libdsound.$(LIBEXT): dsound/libdsound.$(LIBEXT)
+	$(RM) $@ && $(LN_S) dsound/libdsound.$(LIBEXT) $@
 
-libgdi32.@LIBEXT@ libdispdib.@LIBEXT@ libgdi.@LIBEXT@ libwing.@LIBEXT@: gdi/libgdi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) gdi/libgdi32.@LIBEXT@ $@
+libgdi32.$(LIBEXT) libdispdib.$(LIBEXT) libgdi.$(LIBEXT) \
+  libwing.$(LIBEXT): gdi/libgdi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) gdi/libgdi32.$(LIBEXT) $@
 
-libglu32.@LIBEXT@: glu32/libglu32.@LIBEXT@
-	$(RM) $@ && $(LN_S) glu32/libglu32.@LIBEXT@ $@
+libglu32.$(LIBEXT): glu32/libglu32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) glu32/libglu32.$(LIBEXT) $@
 
-libicmp.@LIBEXT@: icmp/libicmp.@LIBEXT@
-	$(RM) $@ && $(LN_S) icmp/libicmp.@LIBEXT@ $@
+libicmp.$(LIBEXT): icmp/libicmp.$(LIBEXT)
+	$(RM) $@ && $(LN_S) icmp/libicmp.$(LIBEXT) $@
 
-libimagehlp.@LIBEXT@: imagehlp/libimagehlp.@LIBEXT@
-	$(RM) $@ && $(LN_S) imagehlp/libimagehlp.@LIBEXT@ $@
+libimagehlp.$(LIBEXT): imagehlp/libimagehlp.$(LIBEXT)
+	$(RM) $@ && $(LN_S) imagehlp/libimagehlp.$(LIBEXT) $@
 
-libimm32.@LIBEXT@ libimm.@LIBEXT@: imm32/libimm32.@LIBEXT@
-	$(RM) $@ && $(LN_S) imm32/libimm32.@LIBEXT@ $@
+libimm32.$(LIBEXT) libimm.$(LIBEXT): imm32/libimm32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) imm32/libimm32.$(LIBEXT) $@
 
-libjoystick.drv.@LIBEXT@: winmm/joystick/libjoystick.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/joystick/libjoystick.drv.@LIBEXT@ $@
+libjoystick.drv.$(LIBEXT): winmm/joystick/libjoystick.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/joystick/libjoystick.drv.$(LIBEXT) $@
 
-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@ $@
+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) $@
 
-liblz32.@LIBEXT@ liblzexpand.@LIBEXT@: lzexpand/liblz32.@LIBEXT@
-	$(RM) $@ && $(LN_S) lzexpand/liblz32.@LIBEXT@ $@
+liblz32.$(LIBEXT) liblzexpand.$(LIBEXT): lzexpand/liblz32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) lzexpand/liblz32.$(LIBEXT) $@
 
-libmapi32.@LIBEXT@: mapi32/libmapi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) mapi32/libmapi32.@LIBEXT@ $@
+libmapi32.$(LIBEXT): mapi32/libmapi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) mapi32/libmapi32.$(LIBEXT) $@
 
-libmcianim.drv.@LIBEXT@: winmm/mcianim/libmcianim.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/mcianim/libmcianim.drv.@LIBEXT@ $@
+libmcianim.drv.$(LIBEXT): winmm/mcianim/libmcianim.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/mcianim/libmcianim.drv.$(LIBEXT) $@
 
-libmciavi.drv.@LIBEXT@: winmm/mciavi/libmciavi.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/mciavi/libmciavi.drv.@LIBEXT@ $@
+libmciavi.drv.$(LIBEXT): winmm/mciavi/libmciavi.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/mciavi/libmciavi.drv.$(LIBEXT) $@
 
-libmcicda.drv.@LIBEXT@: winmm/mcicda/libmcicda.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/mcicda/libmcicda.drv.@LIBEXT@ $@
+libmcicda.drv.$(LIBEXT): winmm/mcicda/libmcicda.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/mcicda/libmcicda.drv.$(LIBEXT) $@
 
-libmciseq.drv.@LIBEXT@: winmm/mciseq/libmciseq.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/mciseq/libmciseq.drv.@LIBEXT@ $@
+libmciseq.drv.$(LIBEXT): winmm/mciseq/libmciseq.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/mciseq/libmciseq.drv.$(LIBEXT) $@
 
-libmciwave.drv.@LIBEXT@: winmm/mciwave/libmciwave.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/mciwave/libmciwave.drv.@LIBEXT@ $@
+libmciwave.drv.$(LIBEXT): winmm/mciwave/libmciwave.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/mciwave/libmciwave.drv.$(LIBEXT) $@
+
+libmidimap.drv.$(LIBEXT): winmm/midimap/libmidimap.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/midimap/libmidimap.drv.$(LIBEXT) $@
+
+libmpr.$(LIBEXT): mpr/libmpr.$(LIBEXT)
+	$(RM) $@ && $(LN_S) mpr/libmpr.$(LIBEXT) $@
+
+libmsacm.drv.$(LIBEXT): winmm/wavemap/libmsacm.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/wavemap/libmsacm.drv.$(LIBEXT) $@
+
+libmsacm32.$(LIBEXT) libmsacm.$(LIBEXT): msacm/libmsacm32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) msacm/libmsacm32.$(LIBEXT) $@
+
+libmsimg32.$(LIBEXT): msimg32/libmsimg32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) msimg32/libmsimg32.$(LIBEXT) $@
+
+libmsnet32.$(LIBEXT): msnet32/libmsnet32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) msnet32/libmsnet32.$(LIBEXT) $@
+
+libmsvcrt.$(LIBEXT): msvcrt/libmsvcrt.$(LIBEXT)
+	$(RM) $@ && $(LN_S) msvcrt/libmsvcrt.$(LIBEXT) $@
+
+libmsvfw32.$(LIBEXT) libmsvideo.$(LIBEXT): msvideo/libmsvfw32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) msvideo/libmsvfw32.$(LIBEXT) $@
+
+libntdll.$(LIBEXT): ntdll/libntdll.$(LIBEXT)
+	$(RM) $@ && $(LN_S) ntdll/libntdll.$(LIBEXT) $@
+
+libodbc32.$(LIBEXT): odbc32/libodbc32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) odbc32/libodbc32.$(LIBEXT) $@
+
+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) $@
+
+liboleaut32.$(LIBEXT) libole2disp.$(LIBEXT) libtypelib.$(LIBEXT): oleaut32/liboleaut32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) oleaut32/liboleaut32.$(LIBEXT) $@
+
+libolecli32.$(LIBEXT) libolecli.$(LIBEXT): olecli/libolecli32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) olecli/libolecli32.$(LIBEXT) $@
+
+liboledlg.$(LIBEXT): oledlg/liboledlg.$(LIBEXT)
+	$(RM) $@ && $(LN_S) oledlg/liboledlg.$(LIBEXT) $@
+
+libolepro32.$(LIBEXT): olepro32/libolepro32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) olepro32/libolepro32.$(LIBEXT) $@
+
+libolesvr32.$(LIBEXT) libolesvr.$(LIBEXT): olesvr/libolesvr32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) olesvr/libolesvr32.$(LIBEXT) $@
+
+libopengl32.$(LIBEXT): opengl32/libopengl32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) opengl32/libopengl32.$(LIBEXT) $@
+
+libpsapi.$(LIBEXT): psapi/libpsapi.$(LIBEXT)
+	$(RM) $@ && $(LN_S) psapi/libpsapi.$(LIBEXT) $@
+
+libquartz.$(LIBEXT): quartz/libquartz.$(LIBEXT)
+	$(RM) $@ && $(LN_S) quartz/libquartz.$(LIBEXT) $@
+
+librasapi32.$(LIBEXT) librasapi16.$(LIBEXT): rasapi32/librasapi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) rasapi32/librasapi32.$(LIBEXT) $@
+
+libriched32.$(LIBEXT): richedit/libriched32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) richedit/libriched32.$(LIBEXT) $@
+
+librpcrt4.$(LIBEXT): rpcrt4/librpcrt4.$(LIBEXT)
+	$(RM) $@ && $(LN_S) rpcrt4/librpcrt4.$(LIBEXT) $@
+
+libserialui.$(LIBEXT): serialui/libserialui.$(LIBEXT)
+	$(RM) $@ && $(LN_S) serialui/libserialui.$(LIBEXT) $@
+
+libsetupapi.$(LIBEXT) libsetupx.$(LIBEXT): setupapi/libsetupapi.$(LIBEXT)
+	$(RM) $@ && $(LN_S) setupapi/libsetupapi.$(LIBEXT) $@
+
+libshdocvw.$(LIBEXT): shdocvw/libshdocvw.$(LIBEXT)
+	$(RM) $@ && $(LN_S) shdocvw/libshdocvw.$(LIBEXT) $@
+
+libshell32.$(LIBEXT) libshell.$(LIBEXT): shell32/libshell32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) shell32/libshell32.$(LIBEXT) $@
+
+libshfolder.$(LIBEXT): shfolder/libshfolder.$(LIBEXT)
+	$(RM) $@ && $(LN_S) shfolder/libshfolder.$(LIBEXT) $@
+
+libshlwapi.$(LIBEXT): shlwapi/libshlwapi.$(LIBEXT)
+	$(RM) $@ && $(LN_S) shlwapi/libshlwapi.$(LIBEXT) $@
+
+libsti.$(LIBEXT): sti/libsti.$(LIBEXT)
+	$(RM) $@ && $(LN_S) sti/libsti.$(LIBEXT) $@
+
+libtapi32.$(LIBEXT): tapi32/libtapi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) tapi32/libtapi32.$(LIBEXT) $@
+
+libttydrv.$(LIBEXT): ttydrv/libttydrv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) ttydrv/libttydrv.$(LIBEXT) $@
+
+liburl.$(LIBEXT): url/liburl.$(LIBEXT)
+	$(RM) $@ && $(LN_S) url/liburl.$(LIBEXT) $@
+
+liburlmon.$(LIBEXT): urlmon/liburlmon.$(LIBEXT)
+	$(RM) $@ && $(LN_S) urlmon/liburlmon.$(LIBEXT) $@
+
+libuser32.$(LIBEXT) libddeml.$(LIBEXT) libdisplay.$(LIBEXT) \
+  libkeyboard.$(LIBEXT) libmouse.$(LIBEXT) libuser.$(LIBEXT): user/libuser32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) user/libuser32.$(LIBEXT) $@
+
+libversion.$(LIBEXT) libver.$(LIBEXT): version/libversion.$(LIBEXT)
+	$(RM) $@ && $(LN_S) version/libversion.$(LIBEXT) $@
+
+libw32skrnl.$(LIBEXT) libw32sys.$(LIBEXT) libwin32s16.$(LIBEXT): win32s/libw32skrnl.$(LIBEXT)
+	$(RM) $@ && $(LN_S) win32s/libw32skrnl.$(LIBEXT) $@
+
+libwinedos.$(LIBEXT): winedos/libwinedos.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winedos/libwinedos.$(LIBEXT) $@
+
+libwineoss.drv.$(LIBEXT): winmm/wineoss/libwineoss.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/wineoss/libwineoss.drv.$(LIBEXT) $@
+
+libwineps.$(LIBEXT) libwineps16.$(LIBEXT): wineps/libwineps.$(LIBEXT)
+	$(RM) $@ && $(LN_S) wineps/libwineps.$(LIBEXT) $@
+
+libwininet.$(LIBEXT): wininet/libwininet.$(LIBEXT)
+	$(RM) $@ && $(LN_S) wininet/libwininet.$(LIBEXT) $@
+
+libwinmm.$(LIBEXT) libmmsystem.$(LIBEXT) libsound.$(LIBEXT): winmm/libwinmm.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winmm/libwinmm.$(LIBEXT) $@
+
+libwinnls32.$(LIBEXT) libwinnls.$(LIBEXT): winnls/libwinnls32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winnls/libwinnls32.$(LIBEXT) $@
+
+libwinspool.drv.$(LIBEXT): winspool/libwinspool.drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winspool/libwinspool.drv.$(LIBEXT) $@
+
+libwintrust.$(LIBEXT): wintrust/libwintrust.$(LIBEXT)
+	$(RM) $@ && $(LN_S) wintrust/libwintrust.$(LIBEXT) $@
+
+libwnaspi32.$(LIBEXT) libwinaspi.$(LIBEXT): winaspi/libwnaspi32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winaspi/libwnaspi32.$(LIBEXT) $@
+
+libwow32.$(LIBEXT): wow32/libwow32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) wow32/libwow32.$(LIBEXT) $@
+
+libws2_32.$(LIBEXT) libwinsock.$(LIBEXT): winsock/libws2_32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) winsock/libws2_32.$(LIBEXT) $@
+
+libwsock32.$(LIBEXT): wsock32/libwsock32.$(LIBEXT)
+	$(RM) $@ && $(LN_S) wsock32/libwsock32.$(LIBEXT) $@
+
+libx11drv.$(LIBEXT): x11drv/libx11drv.$(LIBEXT)
+	$(RM) $@ && $(LN_S) x11drv/libx11drv.$(LIBEXT) $@
+
+# Inter-dll dependencies
+
+advapi32/libadvapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd advapi32 && $(MAKE) libadvapi32.$(LIBEXT)
+
+avifil32/libavifil32.$(LIBEXT): dummy libmsvfw32.$(LIBEXT) libole32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd avifil32 && $(MAKE) libavifil32.$(LIBEXT)
+
+comctl32/libcomctl32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd comctl32 && $(MAKE) libcomctl32.$(LIBEXT)
+
+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)
+
+crtdll/libcrtdll.$(LIBEXT): dummy libmsvcrt.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd crtdll && $(MAKE) libcrtdll.$(LIBEXT)
+
+dciman32/libdciman32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd dciman32 && $(MAKE) libdciman32.$(LIBEXT)
+
+ddraw/libddraw.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd ddraw && $(MAKE) libddraw.$(LIBEXT)
+
+dinput/libdinput.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd dinput && $(MAKE) libdinput.$(LIBEXT)
+
+dplay/libdplay.$(LIBEXT): dummy libdplayx.$(LIBEXT)
+	@cd dplay && $(MAKE) libdplay.$(LIBEXT)
+
+dplayx/libdplayx.$(LIBEXT): dummy libwinmm.$(LIBEXT) libole32.$(LIBEXT) \
+  libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd dplayx && $(MAKE) libdplayx.$(LIBEXT)
+
+dsound/libdsound.$(LIBEXT): dummy libwinmm.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd dsound && $(MAKE) libdsound.$(LIBEXT)
+
+gdi/libgdi32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd gdi && $(MAKE) libgdi32.$(LIBEXT)
+
+glu32/libglu32.$(LIBEXT): dummy
+	@cd glu32 && $(MAKE) libglu32.$(LIBEXT)
+
+icmp/libicmp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd icmp && $(MAKE) libicmp.$(LIBEXT)
+
+imagehlp/libimagehlp.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd imagehlp && $(MAKE) libimagehlp.$(LIBEXT)
+
+imm32/libimm32.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd imm32 && $(MAKE) libimm32.$(LIBEXT)
+
+kernel/libkernel32.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd kernel && $(MAKE) libkernel32.$(LIBEXT)
+
+lzexpand/liblz32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd lzexpand && $(MAKE) liblz32.$(LIBEXT)
+
+mapi32/libmapi32.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd mapi32 && $(MAKE) libmapi32.$(LIBEXT)
+
+mpr/libmpr.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd mpr && $(MAKE) libmpr.$(LIBEXT)
+
+msacm/libmsacm32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd msacm && $(MAKE) libmsacm32.$(LIBEXT)
 
-libmidimap.drv.@LIBEXT@: winmm/midimap/libmidimap.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/midimap/libmidimap.drv.@LIBEXT@ $@
+msimg32/libmsimg32.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd msimg32 && $(MAKE) libmsimg32.$(LIBEXT)
 
-libmpr.@LIBEXT@: mpr/libmpr.@LIBEXT@
-	$(RM) $@ && $(LN_S) mpr/libmpr.@LIBEXT@ $@
+msnet32/libmsnet32.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd msnet32 && $(MAKE) libmsnet32.$(LIBEXT)
 
-libmsacm.drv.@LIBEXT@: winmm/wavemap/libmsacm.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/wavemap/libmsacm.drv.@LIBEXT@ $@
+msvcrt/libmsvcrt.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd msvcrt && $(MAKE) libmsvcrt.$(LIBEXT)
 
-libmsacm32.@LIBEXT@ libmsacm.@LIBEXT@: msacm/libmsacm32.@LIBEXT@
-	$(RM) $@ && $(LN_S) msacm/libmsacm32.@LIBEXT@ $@
+msvideo/libmsvfw32.$(LIBEXT): dummy libwinmm.$(LIBEXT) libcomctl32.$(LIBEXT) \
+  libversion.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd msvideo && $(MAKE) libmsvfw32.$(LIBEXT)
 
-libmsimg32.@LIBEXT@: msimg32/libmsimg32.@LIBEXT@
-	$(RM) $@ && $(LN_S) msimg32/libmsimg32.@LIBEXT@ $@
+ntdll/libntdll.$(LIBEXT): dummy
+	@cd ntdll && $(MAKE) libntdll.$(LIBEXT)
 
-libmsnet32.@LIBEXT@: msnet32/libmsnet32.@LIBEXT@
-	$(RM) $@ && $(LN_S) msnet32/libmsnet32.@LIBEXT@ $@
+odbc32/libodbc32.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd odbc32 && $(MAKE) libodbc32.$(LIBEXT)
 
-libmsvcrt.@LIBEXT@: msvcrt/libmsvcrt.@LIBEXT@
-	$(RM) $@ && $(LN_S) msvcrt/libmsvcrt.@LIBEXT@ $@
+ole32/libole32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libuser32.$(LIBEXT) \
+  libgdi32.$(LIBEXT) librpcrt4.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd ole32 && $(MAKE) libole32.$(LIBEXT)
 
-libmsvfw32.@LIBEXT@ libmsvideo.@LIBEXT@: msvideo/libmsvfw32.@LIBEXT@
-	$(RM) $@ && $(LN_S) msvideo/libmsvfw32.@LIBEXT@ $@
+oleaut32/liboleaut32.$(LIBEXT): dummy libole32.$(LIBEXT) libuser32.$(LIBEXT) \
+  libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd oleaut32 && $(MAKE) liboleaut32.$(LIBEXT)
 
-libntdll.@LIBEXT@: ntdll/libntdll.@LIBEXT@
-	$(RM) $@ && $(LN_S) ntdll/libntdll.@LIBEXT@ $@
+olecli/libolecli32.$(LIBEXT): dummy libole32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd olecli && $(MAKE) libolecli32.$(LIBEXT)
 
-libodbc32.@LIBEXT@: odbc32/libodbc32.@LIBEXT@
-	$(RM) $@ && $(LN_S) odbc32/libodbc32.@LIBEXT@ $@
+oledlg/liboledlg.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd oledlg && $(MAKE) liboledlg.$(LIBEXT)
 
-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@ $@
+olepro32/libolepro32.$(LIBEXT): dummy liboleaut32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd olepro32 && $(MAKE) libolepro32.$(LIBEXT)
 
-liboleaut32.@LIBEXT@ libole2disp.@LIBEXT@ libtypelib.@LIBEXT@: oleaut32/liboleaut32.@LIBEXT@
-	$(RM) $@ && $(LN_S) oleaut32/liboleaut32.@LIBEXT@ $@
+olesvr/libolesvr32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd olesvr && $(MAKE) libolesvr32.$(LIBEXT)
 
-libolecli32.@LIBEXT@ libolecli.@LIBEXT@: olecli/libolecli32.@LIBEXT@
-	$(RM) $@ && $(LN_S) olecli/libolecli32.@LIBEXT@ $@
+opengl32/libopengl32.$(LIBEXT): dummy libuser32.$(LIBEXT) libx11drv.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd opengl32 && $(MAKE) libopengl32.$(LIBEXT)
 
-liboledlg.@LIBEXT@: oledlg/liboledlg.@LIBEXT@
-	$(RM) $@ && $(LN_S) oledlg/liboledlg.@LIBEXT@ $@
+psapi/libpsapi.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd psapi && $(MAKE) libpsapi.$(LIBEXT)
 
-libolepro32.@LIBEXT@: olepro32/libolepro32.@LIBEXT@
-	$(RM) $@ && $(LN_S) olepro32/libolepro32.@LIBEXT@ $@
+quartz/libquartz.$(LIBEXT): dummy liboleaut32.$(LIBEXT) libole32.$(LIBEXT) \
+  libwinmm.$(LIBEXT) libuser32.$(LIBEXT) libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd quartz && $(MAKE) libquartz.$(LIBEXT)
 
-libolesvr32.@LIBEXT@ libolesvr.@LIBEXT@: olesvr/libolesvr32.@LIBEXT@
-	$(RM) $@ && $(LN_S) olesvr/libolesvr32.@LIBEXT@ $@
+rasapi32/librasapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd rasapi32 && $(MAKE) librasapi32.$(LIBEXT)
 
-libopengl32.@LIBEXT@: opengl32/libopengl32.@LIBEXT@
-	$(RM) $@ && $(LN_S) opengl32/libopengl32.@LIBEXT@ $@
+richedit/libriched32.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd richedit && $(MAKE) libriched32.$(LIBEXT)
 
-libpsapi.@LIBEXT@: psapi/libpsapi.@LIBEXT@
-	$(RM) $@ && $(LN_S) psapi/libpsapi.@LIBEXT@ $@
+rpcrt4/librpcrt4.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd rpcrt4 && $(MAKE) librpcrt4.$(LIBEXT)
 
-libquartz.@LIBEXT@: quartz/libquartz.@LIBEXT@
-	$(RM) $@ && $(LN_S) quartz/libquartz.@LIBEXT@ $@
+serialui/libserialui.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd serialui && $(MAKE) libserialui.$(LIBEXT)
 
-librasapi32.@LIBEXT@ librasapi16.@LIBEXT@: rasapi32/librasapi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) rasapi32/librasapi32.@LIBEXT@ $@
+setupapi/libsetupapi.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd setupapi && $(MAKE) libsetupapi.$(LIBEXT)
 
-libriched32.@LIBEXT@: richedit/libriched32.@LIBEXT@
-	$(RM) $@ && $(LN_S) richedit/libriched32.@LIBEXT@ $@
+shdocvw/libshdocvw.$(LIBEXT): dummy libole32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd shdocvw && $(MAKE) libshdocvw.$(LIBEXT)
 
-librpcrt4.@LIBEXT@: rpcrt4/librpcrt4.@LIBEXT@
-	$(RM) $@ && $(LN_S) rpcrt4/librpcrt4.@LIBEXT@ $@
+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)
 
-libserialui.@LIBEXT@: serialui/libserialui.@LIBEXT@
-	$(RM) $@ && $(LN_S) serialui/libserialui.@LIBEXT@ $@
+shfolder/libshfolder.$(LIBEXT): dummy libshell32.$(LIBEXT)
+	@cd shfolder && $(MAKE) libshfolder.$(LIBEXT)
 
-libsetupapi.@LIBEXT@ libsetupx.@LIBEXT@: setupapi/libsetupapi.@LIBEXT@
-	$(RM) $@ && $(LN_S) setupapi/libsetupapi.@LIBEXT@ $@
+shlwapi/libshlwapi.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libuser32.$(LIBEXT) \
+  libgdi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd shlwapi && $(MAKE) libshlwapi.$(LIBEXT)
 
-libshdocvw.@LIBEXT@: shdocvw/libshdocvw.@LIBEXT@
-	$(RM) $@ && $(LN_S) shdocvw/libshdocvw.@LIBEXT@ $@
+sti/libsti.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd sti && $(MAKE) libsti.$(LIBEXT)
 
-libshell32.@LIBEXT@ libshell.@LIBEXT@: shell32/libshell32.@LIBEXT@
-	$(RM) $@ && $(LN_S) shell32/libshell32.@LIBEXT@ $@
+tapi32/libtapi32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd tapi32 && $(MAKE) libtapi32.$(LIBEXT)
 
-libshfolder.@LIBEXT@: shfolder/libshfolder.@LIBEXT@
-	$(RM) $@ && $(LN_S) shfolder/libshfolder.@LIBEXT@ $@
+ttydrv/libttydrv.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd ttydrv && $(MAKE) libttydrv.$(LIBEXT)
 
-libshlwapi.@LIBEXT@: shlwapi/libshlwapi.@LIBEXT@
-	$(RM) $@ && $(LN_S) shlwapi/libshlwapi.@LIBEXT@ $@
+url/liburl.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd url && $(MAKE) liburl.$(LIBEXT)
 
-libsti.@LIBEXT@: sti/libsti.@LIBEXT@
-	$(RM) $@ && $(LN_S) sti/libsti.@LIBEXT@ $@
+urlmon/liburlmon.$(LIBEXT): dummy libole32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd urlmon && $(MAKE) liburlmon.$(LIBEXT)
 
-libtapi32.@LIBEXT@: tapi32/libtapi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) tapi32/libtapi32.@LIBEXT@ $@
+user/libuser32.$(LIBEXT): dummy libgdi32.$(LIBEXT) libadvapi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd user && $(MAKE) libuser32.$(LIBEXT)
 
-libttydrv.@LIBEXT@: ttydrv/libttydrv.@LIBEXT@
-	$(RM) $@ && $(LN_S) ttydrv/libttydrv.@LIBEXT@ $@
+version/libversion.$(LIBEXT): dummy liblz32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd version && $(MAKE) libversion.$(LIBEXT)
 
-liburl.@LIBEXT@: url/liburl.@LIBEXT@
-	$(RM) $@ && $(LN_S) url/liburl.@LIBEXT@ $@
+win32s/libw32skrnl.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd win32s && $(MAKE) libw32skrnl.$(LIBEXT)
 
-liburlmon.@LIBEXT@: urlmon/liburlmon.@LIBEXT@
-	$(RM) $@ && $(LN_S) urlmon/liburlmon.@LIBEXT@ $@
+winaspi/libwnaspi32.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd winaspi && $(MAKE) libwnaspi32.$(LIBEXT)
 
-libuser32.@LIBEXT@ libddeml.@LIBEXT@ libdisplay.@LIBEXT@ libkeyboard.@LIBEXT@ \
-  libmouse.@LIBEXT@ libuser.@LIBEXT@: user/libuser32.@LIBEXT@
-	$(RM) $@ && $(LN_S) user/libuser32.@LIBEXT@ $@
+winedos/libwinedos.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd winedos && $(MAKE) libwinedos.$(LIBEXT)
 
-libversion.@LIBEXT@ libver.@LIBEXT@: version/libversion.@LIBEXT@
-	$(RM) $@ && $(LN_S) version/libversion.@LIBEXT@ $@
+wineps/libwineps.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libwinspool.drv.$(LIBEXT) libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd wineps && $(MAKE) libwineps.$(LIBEXT)
 
-libw32skrnl.@LIBEXT@ libw32sys.@LIBEXT@ libwin32s16.@LIBEXT@: win32s/libw32skrnl.@LIBEXT@
-	$(RM) $@ && $(LN_S) win32s/libw32skrnl.@LIBEXT@ $@
+wininet/libwininet.$(LIBEXT): dummy libshlwapi.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd wininet && $(MAKE) libwininet.$(LIBEXT)
 
-libwinedos.@LIBEXT@: winedos/libwinedos.@LIBEXT@
-	$(RM) $@ && $(LN_S) winedos/libwinedos.@LIBEXT@ $@
+winmm/joystick/libjoystick.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd winmm/joystick && $(MAKE) libjoystick.drv.$(LIBEXT)
 
-libwineoss.drv.@LIBEXT@: winmm/wineoss/libwineoss.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/wineoss/libwineoss.drv.@LIBEXT@ $@
+winmm/libwinmm.$(LIBEXT): dummy libuser32.$(LIBEXT) libadvapi32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm && $(MAKE) libwinmm.$(LIBEXT)
 
-libwineps.@LIBEXT@ libwineps16.@LIBEXT@: wineps/libwineps.@LIBEXT@
-	$(RM) $@ && $(LN_S) wineps/libwineps.@LIBEXT@ $@
+winmm/mcianim/libmcianim.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/mcianim && $(MAKE) libmcianim.drv.$(LIBEXT)
 
-libwininet.@LIBEXT@: wininet/libwininet.@LIBEXT@
-	$(RM) $@ && $(LN_S) wininet/libwininet.@LIBEXT@ $@
+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)
 
-libwinmm.@LIBEXT@ libmmsystem.@LIBEXT@ libsound.@LIBEXT@: winmm/libwinmm.@LIBEXT@
-	$(RM) $@ && $(LN_S) winmm/libwinmm.@LIBEXT@ $@
+winmm/mcicda/libmcicda.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/mcicda && $(MAKE) libmcicda.drv.$(LIBEXT)
 
-libwinnls32.@LIBEXT@ libwinnls.@LIBEXT@: winnls/libwinnls32.@LIBEXT@
-	$(RM) $@ && $(LN_S) winnls/libwinnls32.@LIBEXT@ $@
+winmm/mciseq/libmciseq.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/mciseq && $(MAKE) libmciseq.drv.$(LIBEXT)
 
-libwinspool.drv.@LIBEXT@: winspool/libwinspool.drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) winspool/libwinspool.drv.@LIBEXT@ $@
+winmm/mciwave/libmciwave.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/mciwave && $(MAKE) libmciwave.drv.$(LIBEXT)
 
-libwintrust.@LIBEXT@: wintrust/libwintrust.@LIBEXT@
-	$(RM) $@ && $(LN_S) wintrust/libwintrust.@LIBEXT@ $@
+winmm/midimap/libmidimap.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/midimap && $(MAKE) libmidimap.drv.$(LIBEXT)
 
-libwnaspi32.@LIBEXT@ libwinaspi.@LIBEXT@: winaspi/libwnaspi32.@LIBEXT@
-	$(RM) $@ && $(LN_S) winaspi/libwnaspi32.@LIBEXT@ $@
+winmm/wavemap/libmsacm.drv.$(LIBEXT): dummy libmsacm32.$(LIBEXT) libwinmm.$(LIBEXT) \
+  libuser32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/wavemap && $(MAKE) libmsacm.drv.$(LIBEXT)
 
-libwow32.@LIBEXT@: wow32/libwow32.@LIBEXT@
-	$(RM) $@ && $(LN_S) wow32/libwow32.@LIBEXT@ $@
+winmm/wineoss/libwineoss.drv.$(LIBEXT): dummy libwinmm.$(LIBEXT) libuser32.$(LIBEXT) \
+  libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winmm/wineoss && $(MAKE) libwineoss.drv.$(LIBEXT)
 
-libws2_32.@LIBEXT@ libwinsock.@LIBEXT@: winsock/libws2_32.@LIBEXT@
-	$(RM) $@ && $(LN_S) winsock/libws2_32.@LIBEXT@ $@
+winnls/libwinnls32.$(LIBEXT): dummy libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd winnls && $(MAKE) libwinnls32.$(LIBEXT)
 
-libwsock32.@LIBEXT@: wsock32/libwsock32.@LIBEXT@
-	$(RM) $@ && $(LN_S) wsock32/libwsock32.@LIBEXT@ $@
+winsock/libws2_32.$(LIBEXT): dummy libuser32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd winsock && $(MAKE) libws2_32.$(LIBEXT)
 
-libx11drv.@LIBEXT@: x11drv/libx11drv.@LIBEXT@
-	$(RM) $@ && $(LN_S) x11drv/libx11drv.@LIBEXT@ $@
+winspool/libwinspool.drv.$(LIBEXT): dummy libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd winspool && $(MAKE) libwinspool.drv.$(LIBEXT)
 
-# Inter-dll dependencies (only necessary for dynamic libs)
+wintrust/libwintrust.$(LIBEXT): dummy libntdll.$(LIBEXT)
+	@cd wintrust && $(MAKE) libwintrust.$(LIBEXT)
 
-advapi32/libadvapi32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-avifil32/libavifil32.@LIBEXT@: libmsvfw32.@LIBEXT@ libole32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-comctl32/libcomctl32.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-commdlg/libcomdlg32.@LIBEXT@: libshell32.@LIBEXT@ libshlwapi.@LIBEXT@ libcomctl32.@LIBEXT@ libwinspool.drv.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-crtdll/libcrtdll.@LIBEXT@: libmsvcrt.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-dciman32/libdciman32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-ddraw/libddraw.@LIBEXT@: libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-dinput/libdinput.@LIBEXT@: libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-dplay/libdplay.@LIBEXT@: libdplayx.@LIBEXT@
-dplayx/libdplayx.@LIBEXT@: libwinmm.@LIBEXT@ libole32.@LIBEXT@ libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-dsound/libdsound.@LIBEXT@: libwinmm.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-gdi/libgdi32.@LIBEXT@: libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-icmp/libicmp.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-imagehlp/libimagehlp.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-imm32/libimm32.@LIBEXT@: libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-kernel/libkernel32.@LIBEXT@: libntdll.@LIBEXT@
-lzexpand/liblz32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-mapi32/libmapi32.@LIBEXT@: libntdll.@LIBEXT@
-mpr/libmpr.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-msacm/libmsacm32.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-msimg32/libmsimg32.@LIBEXT@: libntdll.@LIBEXT@
-msnet32/libmsnet32.@LIBEXT@: libntdll.@LIBEXT@
-msvcrt/libmsvcrt.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-msvideo/libmsvfw32.@LIBEXT@: libwinmm.@LIBEXT@ libcomctl32.@LIBEXT@ libversion.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-odbc32/libodbc32.@LIBEXT@: libntdll.@LIBEXT@
-ole32/libole32.@LIBEXT@: libadvapi32.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ librpcrt4.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-oleaut32/liboleaut32.@LIBEXT@: libole32.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-olecli/libolecli32.@LIBEXT@: libole32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-oledlg/liboledlg.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-olepro32/libolepro32.@LIBEXT@: liboleaut32.@LIBEXT@ libntdll.@LIBEXT@
-olesvr/libolesvr32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-opengl32/libopengl32.@LIBEXT@: libuser32.@LIBEXT@ libx11drv.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-psapi/libpsapi.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-quartz/libquartz.@LIBEXT@: liboleaut32.@LIBEXT@ libole32.@LIBEXT@ libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-rasapi32/librasapi32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-richedit/libriched32.@LIBEXT@: libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-rpcrt4/librpcrt4.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-serialui/libserialui.@LIBEXT@: libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-setupapi/libsetupapi.@LIBEXT@: libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-shdocvw/libshdocvw.@LIBEXT@: libole32.@LIBEXT@ libntdll.@LIBEXT@
-shell32/libshell32.@LIBEXT@: libole32.@LIBEXT@ libshlwapi.@LIBEXT@ libcomctl32.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-shfolder/libshfolder.@LIBEXT@: libshell32.@LIBEXT@
-shlwapi/libshlwapi.@LIBEXT@: libadvapi32.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-sti/libsti.@LIBEXT@: libntdll.@LIBEXT@
-tapi32/libtapi32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-ttydrv/libttydrv.@LIBEXT@: libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-url/liburl.@LIBEXT@: libntdll.@LIBEXT@
-urlmon/liburlmon.@LIBEXT@: libole32.@LIBEXT@ libntdll.@LIBEXT@
-user/libuser32.@LIBEXT@: libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-version/libversion.@LIBEXT@: liblz32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-win32s/libw32skrnl.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winaspi/libwnaspi32.@LIBEXT@: libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winedos/libwinedos.@LIBEXT@: libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-wineps/libwineps.@LIBEXT@: libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libwinspool.drv.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-wininet/libwininet.@LIBEXT@: libshlwapi.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/joystick/libjoystick.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/libwinmm.@LIBEXT@: libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/mcianim/libmcianim.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/mciavi/libmciavi.drv.@LIBEXT@: libmsvfw32.@LIBEXT@ libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/mcicda/libmcicda.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/mciseq/libmciseq.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/mciwave/libmciwave.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/midimap/libmidimap.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/wavemap/libmsacm.drv.@LIBEXT@: libmsacm32.@LIBEXT@ libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winmm/wineoss/libwineoss.drv.@LIBEXT@: libwinmm.@LIBEXT@ libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winnls/libwinnls32.@LIBEXT@: libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winsock/libws2_32.@LIBEXT@: libuser32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-winspool/libwinspool.drv.@LIBEXT@: libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-wintrust/libwintrust.@LIBEXT@: libntdll.@LIBEXT@
-wow32/libwow32.@LIBEXT@: libkernel32.@LIBEXT@
-wsock32/libwsock32.@LIBEXT@: libws2_32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
-x11drv/libx11drv.@LIBEXT@: libuser32.@LIBEXT@ libgdi32.@LIBEXT@ libadvapi32.@LIBEXT@ libkernel32.@LIBEXT@ libntdll.@LIBEXT@
+wow32/libwow32.$(LIBEXT): dummy libkernel32.$(LIBEXT)
+	@cd wow32 && $(MAKE) libwow32.$(LIBEXT)
 
-$(DLLFILES): dummy
-	@cd `dirname $@` && $(MAKE)
+wsock32/libwsock32.$(LIBEXT): dummy libws2_32.$(LIBEXT) libkernel32.$(LIBEXT) \
+  libntdll.$(LIBEXT)
+	@cd wsock32 && $(MAKE) libwsock32.$(LIBEXT)
 
-$(DLLFILES:%=%_install_): dummy
-	@cd `dirname $@` && $(MAKE) install
+x11drv/libx11drv.$(LIBEXT): dummy libuser32.$(LIBEXT) libgdi32.$(LIBEXT) \
+  libadvapi32.$(LIBEXT) libkernel32.$(LIBEXT) libntdll.$(LIBEXT)
+	@cd x11drv && $(MAKE) libx11drv.$(LIBEXT)
 
-$(DLLFILES:%=%_uninstall_): dummy
-	@cd `dirname $@` && $(MAKE) uninstall
+# Misc rules
 
-$(DLLFILES:%=%_checklink_): dummy
+$(SUBDIRS:%=%/__checklink__): dummy
 	@cd `dirname $@` && $(MAKE) checklink
 
-install:: $(DLLFILES:%=%_install_)
+$(SUBDIRS:%=%/__debug_channels__): dummy
+	@cd `dirname $@` && $(MAKE) debug_channels
 
-uninstall:: $(DLLFILES:%=%_uninstall_)
+install:: $(SUBDIRS:%=%/__install__)
 
-checklink:: $(DLLFILES:%=%_checklink_)
+uninstall:: $(SUBDIRS:%=%/__uninstall__)
+
+checklink:: $(SUBDIRS:%=%/__checklink__)
+
+debug_channels:: $(SUBDIRS:%=%/__debug_channels__)
diff --git a/dlls/make_dlls b/dlls/make_dlls
index 05dd5a2..5db5b3e 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
 #
 # Update the dll dependencies in the dlls main Makefile.in.
 # Must be run in the dlls/ directory of the Wine tree.
@@ -12,6 +12,15 @@
 %directories = ();
 %altnames = ();
 
+# list of special dlls that can be switched on or off by configure
+%special_dlls =
+(
+  "ddraw"    => "XFILES",
+  "glu32"    => "GLU32FILES",
+  "opengl32" => "OPENGLFILES",
+  "x11drv"   => "XFILES"
+);
+
 foreach $i (split(/\s/,$makefiles))
 {
     open MAKE,$i;
@@ -55,91 +64,153 @@
     }
 }
 
-open OLDMAKE,"Makefile.in" or die "cannot open Makefile.in";
 open NEWMAKE,">Makefile.in.new" or die "cannot create Makefile.in.new";
 
-while (<OLDMAKE>)
-{
-    last if (/^EXTRADLLNAMES/);
-    print NEWMAKE $_;
-}
-close OLDMAKE;
+################################################################
+# makefile header
 
-printf NEWMAKE "EXTRADLLNAMES =";
-foreach $extra (values %altnames) { push @extra, @$extra; }
-foreach $extra (sort @extra)
-{
-    printf NEWMAKE " \\\n\t%s", $extra;
-}
+print NEWMAKE <<EOF;
+# Automatically generated by make_dlls; DO NOT EDIT!!
 
-printf NEWMAKE "\n\nSUBDIRS =";
+TOPSRCDIR = \@top_srcdir\@
+TOPOBJDIR = ..
+SRCDIR    = \@srcdir\@
+VPATH     = \@srcdir\@
+LIBEXT    = \@LIBEXT\@
+
+EOF
+
+################################################################
+# output special dlls configure definitions
+
+printf NEWMAKE "# special configure-dependent targets\n\n";
+my %specials = ();
+foreach $mod (sort keys %special_dlls)
+{
+    $specials{$special_dlls{$mod}} .= " " . $mod;
+}
+foreach $i (sort keys %specials)
+{
+    printf NEWMAKE "%s =%s\n", $i, $specials{$i};
+}
+printf NEWMAKE "EXTRADIRS =";
+foreach $i (sort keys %specials) { printf NEWMAKE " \@%s\@", $i; }
+printf NEWMAKE "\n\n";
+
+
+################################################################
+# output the subdirs list
+
+print NEWMAKE <<EOF;
+# Subdir list
+
+SUBDIRS = \\
+EOF
+printf NEWMAKE "\t\$(EXTRADIRS)";
 foreach $dir (sort values %directories)
 {
+    next if defined($special_dlls{$dir});  # skip special dlls
     printf NEWMAKE " \\\n\t%s", $dir;
 }
 printf NEWMAKE "\n";
 
+
+################################################################
+# output the all: target
+
+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 unless defined $altnames{$mod};
+    foreach $i (sort @{$altnames{$mod}})
+    {
+        $targets{sprintf("lib%s.\$(LIBEXT)",$i)} = 1;
+    }
+}
+print NEWMAKE <<EOF;
+
+# Main target
+
+all: \\
+	\$(EXTRADIRS:%=lib%.\$(LIBEXT)) \\
+EOF
+printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
+
+
+################################################################
+# output the lib name -> directory rules
+
 print NEWMAKE <<EOF;
 
 \@MAKE_RULES\@
 
-all: \$(DLLS:%=lib%.\@LIBEXT\@) \$(EXTRADLLNAMES:%=lib%.\@LIBEXT\@)
-
 # Map library name to directory
 
 EOF
 
 foreach $mod (sort keys %directories)
 {
-    my $count = 0;
-    printf NEWMAKE "lib%s.\@LIBEXT\@", $mod;
-    foreach $i (sort @{$altnames{$mod}})
+    printf NEWMAKE "lib%s.\$(LIBEXT)", $mod;
+    if (defined $altnames{$mod})
     {
-        if ($count++ >= 3)
+        my $count = 1;
+        foreach $i (sort @{$altnames{$mod}})
         {
-            $count = 0;
-            printf NEWMAKE " \\\n ";
+            if (!($count++ % 3)) { printf NEWMAKE " \\\n "; }
+            printf NEWMAKE " lib%s.\$(LIBEXT)", $i;
         }
-        printf NEWMAKE " lib%s.\@LIBEXT\@", $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/lib%s.\$(LIBEXT)\n", $directories{$mod}, $mod;
+    printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/lib%s.\$(LIBEXT) \$@\n\n", $directories{$mod}, $mod;
 }
 
-print NEWMAKE "# Inter-dll dependencies (only necessary for dynamic libs)\n\n";
+
+################################################################
+# output the inter-dll dependencies and rules
+
+print NEWMAKE "# Inter-dll dependencies\n\n";
 
 my @depends = ();
 foreach $mod (sort keys %imports)
 {
-    next unless $#{$imports{$mod}} >= 0;
-    my $dep = sprintf("%s/lib%s.\@LIBEXT\@:", $directories{$mod}, $mod);
+    my $count = 1;
+    my $dep = sprintf("%s/lib%s.\$(LIBEXT): dummy", $directories{$mod}, $mod);
     foreach $i (@{$imports{$mod}})
     {
-        $dep .= sprintf(" lib%s.\@LIBEXT\@", $i);
+        if ($count++ >= 3)
+        {
+            $count = 0;
+            $dep .= " \\\n ";
+        }
+        $dep .= sprintf(" lib%s.\$(LIBEXT)", $i);
     }
-    push @depends, $dep . "\n";
+    $dep .= sprintf("\n\t\@cd %s && \$(MAKE) lib%s.\$(LIBEXT)\n\n",$directories{$mod}, $mod);
+    push @depends, $dep;
 }
 print NEWMAKE sort @depends;
 
+
+################################################################
+# makefile trailer
+
 print NEWMAKE <<EOF;
+# Misc rules
 
-\$(DLLFILES): dummy
-	\@cd `dirname \$\@` && \$(MAKE)
-
-\$(DLLFILES:%=%_install_): dummy
-	\@cd `dirname \$\@` && \$(MAKE) install
-
-\$(DLLFILES:%=%_uninstall_): dummy
-	\@cd `dirname \$\@` && \$(MAKE) uninstall
-
-\$(DLLFILES:%=%_checklink_): dummy
+\$(SUBDIRS:%=%/__checklink__): dummy
 	\@cd `dirname \$\@` && \$(MAKE) checklink
 
-install:: \$(DLLFILES:%=%_install_)
+\$(SUBDIRS:%=%/__debug_channels__): dummy
+	\@cd `dirname \$\@` && \$(MAKE) debug_channels
 
-uninstall:: \$(DLLFILES:%=%_uninstall_)
+install:: \$(SUBDIRS:%=%/__install__)
 
-checklink:: \$(DLLFILES:%=%_checklink_)
+uninstall:: \$(SUBDIRS:%=%/__uninstall__)
+
+checklink:: \$(SUBDIRS:%=%/__checklink__)
+
+debug_channels:: \$(SUBDIRS:%=%/__debug_channels__)
 EOF
 
 close NEWMAKE;