Moved dll-specific make rules to a separate Makedll.rules file.

diff --git a/Make.rules.in b/Make.rules.in
index e8351ae..a6c0b56 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -36,14 +36,11 @@
 DIVINCL   = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include
 ALLCFLAGS = $(DIVINCL) $(CFLAGS) $(DEFS) $(OPTIONS) $(X_CFLAGS)
 LDCOMBINE = ld -r
-SONAME    = lib$(MODULE).so
-LDSHARED  = @LDSHARED@
 AR        = ar rc
 RM        = rm -f
 MV        = mv
 MKDIR     = mkdir -p
 C2MAN     = @C2MAN@
-LDCONFIG  = @LDCONFIG@
 MANSPECS  = -w $(TOPSRCDIR)/relay32/gdi32.spec \
 	    -w $(TOPSRCDIR)/relay32/user32.spec \
 	    -w $(TOPSRCDIR)/relay32/comctl32.spec \
@@ -174,6 +171,10 @@
 
 .PHONY: all install uninstall clean distclean depend dummy
 
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all: Makefile
+
 # Rule to rebuild the resource compiler
 
 $(WRC) check_wrc:
@@ -199,56 +200,12 @@
 $(MODULE).o: $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
 	$(LDCOMBINE) $(OBJS) -o $(MODULE).o
 
-lib$(MODULE).so.$(SOVERSION): $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
-	$(LDSHARED) $(OBJS) -o $@
-
-lib$(MODULE).so: lib$(MODULE).so.$(SOVERSION)
-	$(RM) $@
-	$(LN_S) lib$(MODULE).so.$(SOVERSION) $@
-
-lib$(MODULE).a: $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
-	$(RM) $@
-	$(AR) $@ $(OBJS)
-	$(RANLIB) $@
-
 # Rules for makefile
 
 Makefile: Makefile.in $(TOPSRCDIR)/configure
 	@echo Makefile is older than $?, please rerun $(TOPSRCDIR)/configure
 	@exit 1
 
-all: Makefile
-
-# Rules for checking that no imports are missing
-
-IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT))
-
-checklink_so checklink_a: lib$(MODULE).$(LIBEXT) $(IMPORTLIBS)
-	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) -L$(DLLDIR) $(IMPORTS:%=-l%) -L$(TOPOBJDIR) -lwine $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS) && $(RM) checklink
-
-checklink:: $(LIBEXT:%=checklink_%)
-
-$(IMPORTLIBS): dummy
-	@cd $(DLLDIR) && $(MAKE) `basename $@`
-
-# Rules for installation
-
-install_so: lib$(MODULE).so.$(SOVERSION)
-	[ -d $(libdir) ] || $(MKDIR) $(libdir)
-	$(INSTALL_PROGRAM) lib$(MODULE).so.$(SOVERSION) $(libdir)/lib$(MODULE).so.$(SOVERSION)
-	cd $(libdir) && $(RM) lib$(MODULE).so && $(LN_S) lib$(MODULE).so.$(SOVERSION) lib$(MODULE).so
-
-install_a: lib$(MODULE).a
-	[ -d $(libdir) ] || $(MKDIR) $(libdir)
-	$(INSTALL_DATA) lib$(MODULE).a $(libdir)/lib$(MODULE).a
-
-uninstall_so uninstall_a:
-	cd $(libdir) && $(RM) lib$(MODULE).so lib$(MODULE).so.$(SOVERSION) lib$(MODULE).a
-
-install:: $(LIBEXT:%=install_%)
-
-uninstall:: $(LIBEXT:%=uninstall_%)
-
 # Rules for auto documentation
 
 man: $(C_SRCS)
@@ -281,6 +238,8 @@
 
 $(GLUE:.c=.glue.c): $(BUILD) $(TOPSRCDIR)/include/builtin16.h $(TOPSRCDIR)/include/builtin32.h
 
+$(RC_SRCS:.rc=.s): $(WRC)
+
 depend:: $(MAKEDEP) $(C_SRCS) $(RC_SRCS) $(EXTRA_SRCS)
 	$(MAKEDEP) $(DIVINCL) -C$(SRCDIR) $(C_SRCS) $(RC_SRCS) $(EXTRA_SRCS)
 
diff --git a/Makefile.in b/Makefile.in
index 6fac5be..3eef1b4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -17,8 +17,11 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 LIBEXT    = @LIBEXT@
+LDSHARED  = @LDSHARED@
+LDCONFIG  = @LDCONFIG@
 MODULE    = wine
 SOVERSION = 1.0
+SONAME    = libwine.so
 
 TOOLSUBDIRS = \
 	tools \
@@ -176,13 +179,22 @@
 llib-lwine.ln : $(LIBLINTS) $(X11LINTS)
 	$(LINT) $(ALLLINTFLAGS) -owine $(LIBLINTS) $(X11LINTS)
 
+install_so: lib$(MODULE).so.$(SOVERSION)
+	[ -d $(libdir) ] || $(MKDIR) $(libdir)
+	$(INSTALL_PROGRAM) lib$(MODULE).so.$(SOVERSION) $(libdir)/lib$(MODULE).so.$(SOVERSION)
+	cd $(libdir) && $(RM) lib$(MODULE).so && $(LN_S) lib$(MODULE).so.$(SOVERSION) lib$(MODULE).so
+
+install_a: lib$(MODULE).a
+	[ -d $(libdir) ] || $(MKDIR) $(libdir)
+	$(INSTALL_DATA) lib$(MODULE).a $(libdir)/lib$(MODULE).a
+
 install_wine: wine
 	[ -d $(bindir) ] || $(MKDIR) $(bindir)
 	[ -d $(libdir) ] || $(MKDIR) $(libdir)
 	[ -f wine.sym ] && $(INSTALL_DATA) wine.sym $(libdir)/wine.sym
 	$(INSTALL_PROGRAM) wine $(bindir)/wine
 
-install:: $(PROGRAMS) $(EMU_TARGET:%=install_%)
+install:: $(PROGRAMS) $(EMU_TARGET:%=install_%) $(LIBEXT:%=install_%)
 	[ -d $(bindir) ] || $(MKDIR) $(bindir)
 	$(INSTALL_PROGRAM) server/wineserver $(bindir)/wineserver
 	$(INSTALL_PROGRAM) windows/x11drv/wineclipsrv $(bindir)/wineclipsrv
@@ -192,6 +204,20 @@
 	cd $(libdir) && $(RM) libwine.a libwine.so libwine.so.$(SOVERSION) wine.sym
 	cd $(bindir) && $(RM) wine wineserver wineclipsrv dosmod
 
+lib$(MODULE).so.$(SOVERSION): $(OBJS) Makefile.in Make.rules.in
+	$(LDSHARED) $(OBJS) -o $@
+
+lib$(MODULE).so: lib$(MODULE).so.$(SOVERSION)
+	$(RM) $@ && $(LN_S) lib$(MODULE).so.$(SOVERSION) $@
+
+lib$(MODULE).a: $(OBJS) Makefile.in Make.rules.in
+	$(RM) $@
+	$(AR) $@ $(OBJS)
+	$(RANLIB) $@
+
+checklink::
+	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -lwine $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS) && $(RM) checklink
+
 $(X11OBJS) $(EMUOBJS) $(LIBOBJS) $(DLLOBJS) $(PROGRAMS): $(TOOLSUBDIRS) dummy
 	@cd `dirname $@` && $(MAKE) `basename $@`
 
@@ -237,7 +263,7 @@
 	$(RM) wine wine.sym libwine.so.1.0 TAGS .#*
 
 distclean: clean
-	$(RM) config.* Make.rules include/config.h documentation/wine.man documentation/wine.conf.man
+	$(RM) config.* Make.rules dlls/Makedll.rules include/config.h documentation/wine.man documentation/wine.conf.man
 	$(RM) `find . \( -name Makefile -o -size 0 \) -print`
 
 # We depend on configure above for checks, so we better don't use this rule.
diff --git a/configure b/configure
index f93bf2d..ab5252c 100755
--- a/configure
+++ b/configure
@@ -6067,6 +6067,9 @@
 MAKE_RULES=Make.rules
 
 
+MAKE_DLL_RULES=dlls/Makedll.rules
+
+
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
@@ -6174,6 +6177,7 @@
 console/Makefile
 controls/Makefile
 debugger/Makefile
+dlls/Makedll.rules
 dlls/Makefile
 dlls/advapi32/Makefile
 dlls/avifil32/Makefile
@@ -6341,6 +6345,8 @@
 s%@GCC_NO_BUILTIN@%$GCC_NO_BUILTIN%g
 /@MAKE_RULES@/r $MAKE_RULES
 s%@MAKE_RULES@%%g
+/@MAKE_DLL_RULES@/r $MAKE_DLL_RULES
+s%@MAKE_DLL_RULES@%%g
 
 CEOF
 EOF
@@ -6387,6 +6393,7 @@
 console/Makefile
 controls/Makefile
 debugger/Makefile
+dlls/Makedll.rules
 dlls/Makefile
 dlls/advapi32/Makefile
 dlls/avifil32/Makefile
diff --git a/configure.in b/configure.in
index a92e01a..fa08d8f 100644
--- a/configure.in
+++ b/configure.in
@@ -930,12 +930,16 @@
 MAKE_RULES=Make.rules
 AC_SUBST_FILE(MAKE_RULES)
 
+MAKE_DLL_RULES=dlls/Makedll.rules
+AC_SUBST_FILE(MAKE_DLL_RULES)
+
 AC_OUTPUT([
 Make.rules
 Makefile
 console/Makefile
 controls/Makefile
 debugger/Makefile
+dlls/Makedll.rules
 dlls/Makefile
 dlls/advapi32/Makefile
 dlls/avifil32/Makefile
diff --git a/dlls/.cvsignore b/dlls/.cvsignore
index f3c7a7c..4ea3f0a 100644
--- a/dlls/.cvsignore
+++ b/dlls/.cvsignore
@@ -1 +1,2 @@
+Makedll.rules
 Makefile
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
new file mode 100644
index 0000000..d0ee5d5
--- /dev/null
+++ b/dlls/Makedll.rules.in
@@ -0,0 +1,61 @@
+# Global rules for building dlls     -*-Makefile-*-
+#
+# Each individual makefile should define the following variables:
+# MODULE       : name of the main module being built
+# SOVERSION    : version of the .so file
+# IMPORTS      : dlls to import (optional)
+#
+# plus all variables required by the global Make.rules.in
+#
+
+DEFS       = @DLLFLAGS@ -D__WINE__
+LIBEXT     = @LIBEXT@
+LDSHARED   = @LDSHARED@
+SONAME     = lib$(MODULE).so
+IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT))
+
+all: lib$(MODULE).$(LIBEXT)
+
+@MAKE_RULES@
+
+lib$(MODULE).so.$(SOVERSION): $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
+	$(LDSHARED) $(OBJS) -o $@
+
+lib$(MODULE).so: lib$(MODULE).so.$(SOVERSION)
+	$(RM) $@ && $(LN_S) lib$(MODULE).so.$(SOVERSION) $@
+
+lib$(MODULE).a: $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
+	$(RM) $@
+	$(AR) $@ $(OBJS)
+	$(RANLIB) $@
+
+# Rules for checking that no imports are missing
+
+IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT))
+
+checklink:: lib$(MODULE).$(LIBEXT) $(IMPORTLIBS)
+	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) -L$(DLLDIR) $(IMPORTS:%=-l%) -L$(TOPOBJDIR) -lwine $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS) && $(RM) checklink
+
+$(IMPORTLIBS): dummy
+	@cd $(DLLDIR) && $(MAKE) `basename $@`
+
+# Rules for installation
+
+.PHONY: install_so install_a
+
+install_so: lib$(MODULE).so.$(SOVERSION)
+	[ -d $(libdir) ] || $(MKDIR) $(libdir)
+	$(INSTALL_PROGRAM) lib$(MODULE).so.$(SOVERSION) $(libdir)/lib$(MODULE).so.$(SOVERSION)
+	cd $(libdir) && $(RM) lib$(MODULE).so && $(LN_S) lib$(MODULE).so.$(SOVERSION) lib$(MODULE).so
+
+install_a: lib$(MODULE).a
+	[ -d $(libdir) ] || $(MKDIR) $(libdir)
+	$(INSTALL_DATA) lib$(MODULE).a $(libdir)/lib$(MODULE).a
+
+install:: $(LIBEXT:%=install_%)
+
+uninstall::
+	cd $(libdir) && $(RM) lib$(MODULE).so lib$(MODULE).so.$(SOVERSION) lib$(MODULE).a
+
+clean::
+	$(RM) lib$(MODULE).so.$(SOVERSION)
diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in
index 20788d0..3082100 100644
--- a/dlls/advapi32/Makefile.in
+++ b/dlls/advapi32/Makefile.in
@@ -19,7 +19,5 @@
 
 @MAKE_RULES@
 
-$(RC_SRCS:.rc=.s): $(WRC)
-
 ### Dependencies:
 
diff --git a/dlls/avifil32/Makefile.in b/dlls/avifil32/Makefile.in
index 916b0bb..0ed9b8a 100644
--- a/dlls/avifil32/Makefile.in
+++ b/dlls/avifil32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = avifil32
 SOVERSION = 1.0
 IMPORTS   = msvfw32 winmm
@@ -13,12 +11,7 @@
 C_SRCS = \
 	avifile.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/comctl32/Makefile.in b/dlls/comctl32/Makefile.in
index 664089d9..37a6853 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = comctl32
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -41,13 +39,8 @@
 RC_SRCS= \
 	rsrc.rc
 
-all: check_wrc lib$(MODULE).$(LIBEXT)
+@MAKE_DLL_RULES@
 
-@MAKE_RULES@
-
-$(RC_SRCS:.rc=.s): $(WRC)
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+all: check_wrc
 
 ### Dependencies:
diff --git a/dlls/commdlg/Makefile.in b/dlls/commdlg/Makefile.in
index 8d912f5..eb2f6ff 100644
--- a/dlls/commdlg/Makefile.in
+++ b/dlls/commdlg/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = comdlg32
 SOVERSION = 1.0
 IMPORTS   = shell32 ole32 comctl32 winspool winmm
@@ -27,13 +25,8 @@
 RC_SRCS= \
 	rsrc.rc
 
-all: check_wrc lib$(MODULE).$(LIBEXT)
+@MAKE_DLL_RULES@
 
-@MAKE_RULES@
-
-$(RC_SRCS:.rc=.s): $(WRC)
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+all: check_wrc
 
 ### Dependencies:
diff --git a/dlls/dciman32/Makefile.in b/dlls/dciman32/Makefile.in
index 3c50fb7..7331275 100644
--- a/dlls/dciman32/Makefile.in
+++ b/dlls/dciman32/Makefile.in
@@ -1,19 +1,12 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = dciman32
 SOVERSION = 1.0
 
 SPEC_SRCS = dciman32.spec
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/display/Makefile.in b/dlls/display/Makefile.in
index 48b355f..74d5516 100644
--- a/dlls/display/Makefile.in
+++ b/dlls/display/Makefile.in
@@ -17,7 +17,5 @@
 
 @MAKE_RULES@
 
-$(RC_SRCS:.rc=.s): $(WRC)
-
 ### Dependencies:
 
diff --git a/dlls/dplayx/Makefile.in b/dlls/dplayx/Makefile.in
index e724bd7..58a1ca4 100644
--- a/dlls/dplayx/Makefile.in
+++ b/dlls/dplayx/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = dplayx
 SOVERSION = 1.0
 IMPORTS   = ole32
@@ -16,12 +14,8 @@
          dplayx_main.c \
          dplayx_global.c
 
-all: lib$(MODULE).$(LIBEXT)
 
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/dsound/Makefile.in b/dlls/dsound/Makefile.in
index f3209a9..ebc52e3 100644
--- a/dlls/dsound/Makefile.in
+++ b/dlls/dsound/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = dsound
 SOVERSION = 1.0
 
@@ -13,12 +11,7 @@
 C_SRCS = \
 	dsound_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/icmp/Makefile.in b/dlls/icmp/Makefile.in
index a7afaee..16716f2 100644
--- a/dlls/icmp/Makefile.in
+++ b/dlls/icmp/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = icmp
 SOVERSION = 1.0
 
@@ -11,12 +9,7 @@
 
 C_SRCS = icmp_main.c 
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/imagehlp/Makefile.in b/dlls/imagehlp/Makefile.in
index 15fd648..05db3e6 100644
--- a/dlls/imagehlp/Makefile.in
+++ b/dlls/imagehlp/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = imagehlp
 SOVERSION = 1.0
 
@@ -18,12 +16,7 @@
 	modify.c \
 	symbol.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/imm32/Makefile.in b/dlls/imm32/Makefile.in
index 75f6cfb..7688a8c 100644
--- a/dlls/imm32/Makefile.in
+++ b/dlls/imm32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = imm32
 SOVERSION = 1.0
 
@@ -12,11 +10,6 @@
 C_SRCS = \
 	imm.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/lzexpand/Makefile.in b/dlls/lzexpand/Makefile.in
index 141620a..36752e4 100644
--- a/dlls/lzexpand/Makefile.in
+++ b/dlls/lzexpand/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = lz32
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	lzexpand_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/mouse/Makefile.in b/dlls/mouse/Makefile.in
index e71586b..baf19e4 100644
--- a/dlls/mouse/Makefile.in
+++ b/dlls/mouse/Makefile.in
@@ -17,7 +17,5 @@
 
 @MAKE_RULES@
 
-$(RC_SRCS:.rc=.s): $(WRC)
-
 ### Dependencies:
 
diff --git a/dlls/msacm/Makefile.in b/dlls/msacm/Makefile.in
index d5cf956..e799085 100644
--- a/dlls/msacm/Makefile.in
+++ b/dlls/msacm/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = msacm
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	msacm_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/msacm32/Makefile.in b/dlls/msacm32/Makefile.in
index 20fb64f..f2eda2b 100644
--- a/dlls/msacm32/Makefile.in
+++ b/dlls/msacm32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = msacm32
 SOVERSION = 1.0
 
@@ -17,12 +15,7 @@
 	msacm32_main.c \
 	stream.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/msnet32/Makefile.in b/dlls/msnet32/Makefile.in
index a3006f0..fc7ae05 100644
--- a/dlls/msnet32/Makefile.in
+++ b/dlls/msnet32/Makefile.in
@@ -1,19 +1,12 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = msnet32
 SOVERSION = 1.0
 
 SPEC_SRCS = msnet32.spec
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/msvideo/Makefile.in b/dlls/msvideo/Makefile.in
index 9aa1e1d..a4b4bc1 100644
--- a/dlls/msvideo/Makefile.in
+++ b/dlls/msvideo/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = msvfw32
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -13,12 +11,7 @@
 C_SRCS = \
 	msvideo_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/odbc32/Makefile.in b/dlls/odbc32/Makefile.in
index 64d911f..30b75df 100644
--- a/dlls/odbc32/Makefile.in
+++ b/dlls/odbc32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = odbc32
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	proxyodbc.c 
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/ole32/Makefile.in b/dlls/ole32/Makefile.in
index 833f281..14c1612 100644
--- a/dlls/ole32/Makefile.in
+++ b/dlls/ole32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = ole32
 SOVERSION = 1.0
 
@@ -32,12 +30,7 @@
 	storage.c \
 	storage32.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index 177a0c7..eceba18 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = oleaut32
 SOVERSION = 1.0
 IMPORTS   = ole32 comctl32 winmm
@@ -20,12 +18,7 @@
 	typelib.c \
 	variant.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/olecli/Makefile.in b/dlls/olecli/Makefile.in
index afb440f..60d8754 100644
--- a/dlls/olecli/Makefile.in
+++ b/dlls/olecli/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = olecli32
 SOVERSION = 1.0
 IMPORTS   = olesvr32 ole32
@@ -13,12 +11,7 @@
 C_SRCS = \
 	olecli_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/oledlg/Makefile.in b/dlls/oledlg/Makefile.in
index afb4dc7..7b1efc8 100644
--- a/dlls/oledlg/Makefile.in
+++ b/dlls/oledlg/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = oledlg
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	oledlg_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/olepro32/Makefile.in b/dlls/olepro32/Makefile.in
index 462301e..65027bc 100644
--- a/dlls/olepro32/Makefile.in
+++ b/dlls/olepro32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = olepro32
 SOVERSION = 1.0
 IMPORTS	  = oleaut32 ole32
@@ -12,11 +10,6 @@
 
 C_SRCS = olepro32stubs.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/olesvr/Makefile.in b/dlls/olesvr/Makefile.in
index 9cc1b49..55d0070 100644
--- a/dlls/olesvr/Makefile.in
+++ b/dlls/olesvr/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = olesvr32
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	olesvr_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/psapi/Makefile.in b/dlls/psapi/Makefile.in
index d02fa910..dd22246 100644
--- a/dlls/psapi/Makefile.in
+++ b/dlls/psapi/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = psapi
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	psapi_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/rasapi32/Makefile.in b/dlls/rasapi32/Makefile.in
index ca642bc..9dc32f8 100644
--- a/dlls/rasapi32/Makefile.in
+++ b/dlls/rasapi32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = rasapi32
 SOVERSION = 1.0
 
@@ -11,12 +9,7 @@
 
 C_SRCS = rasapi.c 
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/setupx/Makefile.in b/dlls/setupx/Makefile.in
index b1b1bdb..495b46d 100644
--- a/dlls/setupx/Makefile.in
+++ b/dlls/setupx/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = setupx
 SOVERSION = 1.0
 
@@ -12,11 +10,6 @@
 C_SRCS = \
 	setupx_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in
index 29c6d0b..5c71c8c 100644
--- a/dlls/shell32/Makefile.in
+++ b/dlls/shell32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = shell32
 SOVERSION = 1.0
 IMPORTS   = ole32 comctl32 winmm
@@ -45,17 +43,9 @@
 RC_SRCS= \
 	shres.rc
 
-#GEN_ASM_SRCS = \
-#	shellres.s
+@MAKE_DLL_RULES@
 
-all: check_wrc lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-$(RC_SRCS:.rc=.s): $(WRC)
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+all: check_wrc
 
 ### Dependencies:
 
diff --git a/dlls/sound/Makefile.in b/dlls/sound/Makefile.in
index 9c056b8..e0b7004 100644
--- a/dlls/sound/Makefile.in
+++ b/dlls/sound/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = sound
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	sound_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/stress/Makefile.in b/dlls/stress/Makefile.in
index 885b6a7..1962b37 100644
--- a/dlls/stress/Makefile.in
+++ b/dlls/stress/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = stress
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	stress_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/tapi32/Makefile.in b/dlls/tapi32/Makefile.in
index cc7b74f..4933b2c 100644
--- a/dlls/tapi32/Makefile.in
+++ b/dlls/tapi32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = tapi32
 SOVERSION = 1.0
 
@@ -14,12 +12,7 @@
 	line.c \
 	phone.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/version/Makefile.in b/dlls/version/Makefile.in
index 5c31a4e..5bf2966 100644
--- a/dlls/version/Makefile.in
+++ b/dlls/version/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = version
 SOVERSION = 1.0
 IMPORTS   = lz32
@@ -16,11 +14,6 @@
 	resource.c \
 	ver16.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/win32s/Makefile.in b/dlls/win32s/Makefile.in
index 22d9bc3..524d4e6 100644
--- a/dlls/win32s/Makefile.in
+++ b/dlls/win32s/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = w32skrnl
 SOVERSION = 1.0
 
@@ -14,12 +12,7 @@
 	w32sys.c \
 	win32s16.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/win87em/Makefile.in b/dlls/win87em/Makefile.in
index 36eef49..6cf2a37 100644
--- a/dlls/win87em/Makefile.in
+++ b/dlls/win87em/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = win87em
 SOVERSION = 1.0
 
@@ -12,11 +10,6 @@
 C_SRCS = \
 	emulate.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/windebug/Makefile.in b/dlls/windebug/Makefile.in
index ca2e742..74fedfd 100644
--- a/dlls/windebug/Makefile.in
+++ b/dlls/windebug/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = windebug
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	windebug_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/wing/Makefile.in b/dlls/wing/Makefile.in
index 830b1bf..fdfe0d1 100644
--- a/dlls/wing/Makefile.in
+++ b/dlls/wing/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = wing
 SOVERSION = 1.0
 
@@ -12,12 +10,7 @@
 C_SRCS = \
 	wing_main.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/winmm/Makefile.in b/dlls/winmm/Makefile.in
index bb502bf..60af645 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = winmm
 SOVERSION = 1.0
 WRCEXTRA  = -s -pwinmm
@@ -27,8 +25,6 @@
 RC_SRCS= \
 	winmm_res.rc
 
-all: check_wrc $ lib$(MODULE).$(LIBEXT)
-
 SUBDIRS = \
 	joystick \
 	mcianim \
@@ -40,14 +36,11 @@
 	wavemap \
 	wineoss
 
+@MAKE_DLL_RULES@
+
+all: check_wrc
+
 $(SUBDIRS): dummy
-	@cd $@; $(MAKE)
-
-@MAKE_RULES@
-
-$(RC_SRCS:.rc=.s): $(WRC)
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+	@cd $@ && $(MAKE)
 
 ### Dependencies:
diff --git a/dlls/winmm/joystick/Makefile.in b/dlls/winmm/joystick/Makefile.in
index 028d2d3..462395f 100644
--- a/dlls/winmm/joystick/Makefile.in
+++ b/dlls/winmm/joystick/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = joystick.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	joystick.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/mcianim/Makefile.in b/dlls/winmm/mcianim/Makefile.in
index d54653a..07128d2 100644
--- a/dlls/winmm/mcianim/Makefile.in
+++ b/dlls/winmm/mcianim/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = mcianim.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	mcianim.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/mciavi/Makefile.in b/dlls/winmm/mciavi/Makefile.in
index 1a48517..2cd327b 100644
--- a/dlls/winmm/mciavi/Makefile.in
+++ b/dlls/winmm/mciavi/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = mciavi.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	mciavi.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/mcicda/Makefile.in b/dlls/winmm/mcicda/Makefile.in
index da823f6..ac1a3cd 100644
--- a/dlls/winmm/mcicda/Makefile.in
+++ b/dlls/winmm/mcicda/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = mcicda.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	mcicda.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/mciseq/Makefile.in b/dlls/winmm/mciseq/Makefile.in
index e4136b7..f26be6a 100644
--- a/dlls/winmm/mciseq/Makefile.in
+++ b/dlls/winmm/mciseq/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = mciseq.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	mcimidi.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/mciwave/Makefile.in b/dlls/winmm/mciwave/Makefile.in
index 26e6f69..93075b4 100644
--- a/dlls/winmm/mciwave/Makefile.in
+++ b/dlls/winmm/mciwave/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = mciwave.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	mciwave.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/midimap/Makefile.in b/dlls/winmm/midimap/Makefile.in
index b50fe28..827783a 100644
--- a/dlls/winmm/midimap/Makefile.in
+++ b/dlls/winmm/midimap/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = midimap.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	midimap.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/wavemap/Makefile.in b/dlls/winmm/wavemap/Makefile.in
index 6b4b323..e5194fe 100644
--- a/dlls/winmm/wavemap/Makefile.in
+++ b/dlls/winmm/wavemap/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = msacm.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -14,11 +12,6 @@
 C_SRCS = \
 	wavemap.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winmm/wineoss/Makefile.in b/dlls/winmm/wineoss/Makefile.in
index bb1f5e7..6672f27 100644
--- a/dlls/winmm/wineoss/Makefile.in
+++ b/dlls/winmm/wineoss/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = wineoss.drv
 SOVERSION = 1.0
 IMPORTS   = winmm
@@ -19,11 +17,6 @@
 	mmaux.c \
 	oss.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winsock/Makefile.in b/dlls/winsock/Makefile.in
index 7cbba7d..29e6b2b 100644
--- a/dlls/winsock/Makefile.in
+++ b/dlls/winsock/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = wsock32
 SOVERSION = 1.0
 
@@ -13,11 +11,6 @@
 	async.c \
 	socket.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/dlls/winspool/Makefile.in b/dlls/winspool/Makefile.in
index 7ada809..c948ec5 100644
--- a/dlls/winspool/Makefile.in
+++ b/dlls/winspool/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = winspool
 SOVERSION = 1.0
 
@@ -13,12 +11,7 @@
 	info.c \
 	wspool.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
 
diff --git a/dlls/wnaspi32/Makefile.in b/dlls/wnaspi32/Makefile.in
index 7ca0a9a..bbbb5f9 100644
--- a/dlls/wnaspi32/Makefile.in
+++ b/dlls/wnaspi32/Makefile.in
@@ -1,9 +1,7 @@
-DEFS      = @DLLFLAGS@ -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
 MODULE    = wnaspi32
 SOVERSION = 1.0
 
@@ -12,11 +10,6 @@
 C_SRCS = \
 	winaspi32.c
 
-all: lib$(MODULE).$(LIBEXT)
-
-@MAKE_RULES@
-
-clean::
-	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+@MAKE_DLL_RULES@
 
 ### Dependencies:
diff --git a/resources/Makefile.in b/resources/Makefile.in
index cba959e..388a1e6 100644
--- a/resources/Makefile.in
+++ b/resources/Makefile.in
@@ -13,6 +13,4 @@
 
 @MAKE_RULES@
 
-$(RC_SRCS:.rc=.s): $(WRC)
-
 ### Dependencies: