Made winmm a separate shared library.

diff --git a/Make.rules.in b/Make.rules.in
index e2ecbdfc..7618962 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -126,6 +126,7 @@
 	windebug \
 	wineoss.drv \
 	wing \
+	winmm \
 	winspool \
 	wnaspi32 \
 	wsock32
diff --git a/Makefile.in b/Makefile.in
index f27dff2..6fac5be 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -35,7 +35,6 @@
 	dlls/mpr \
 	dlls/ntdll \
 	dlls/winaspi \
-	dlls/winmm \
 	files \
 	graphics \
 	graphics/enhmetafiledrv \
@@ -113,7 +112,6 @@
 	dlls/mpr/mpr.o \
 	dlls/ntdll/ntdll.o \
 	dlls/winaspi/winaspi.o \
-	dlls/winmm/winmm.o \
 	files/files.o \
 	graphics/graphics.o \
 	graphics/enhmetafiledrv/enhmetafiledrv.o \
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 3c68904..45c4079 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -37,6 +37,7 @@
 	win87em/libwin87em.@LIBEXT@ \
 	windebug/libwindebug.@LIBEXT@ \
 	wing/libwing.@LIBEXT@ \
+	winmm/libwinmm.@LIBEXT@ \
 	winmm/joystick/libjoystick.drv.@LIBEXT@ \
 	winmm/mcianim/libmcianim.drv.@LIBEXT@ \
 	winmm/mciavi/libmciavi.drv.@LIBEXT@ \
@@ -226,6 +227,10 @@
 	$(RM) $@
 	$(LN_S) wing/libwing.@LIBEXT@ $@
 
+libwinmm.@LIBEXT@: winmm/libwinmm.@LIBEXT@
+	$(RM) $@
+	$(LN_S) winmm/libwinmm.@LIBEXT@ $@
+
 libwinspool.@LIBEXT@: winspool/libwinspool.@LIBEXT@
 	$(RM) $@
 	$(LN_S) winspool/libwinspool.@LIBEXT@ $@
diff --git a/dlls/avifil32/Makefile.in b/dlls/avifil32/Makefile.in
index e67d9af..916b0bb 100644
--- a/dlls/avifil32/Makefile.in
+++ b/dlls/avifil32/Makefile.in
@@ -6,7 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = avifil32
 SOVERSION = 1.0
-IMPORTS   = msvfw32
+IMPORTS   = msvfw32 winmm
 
 SPEC_SRCS = avifil32.spec avifile.spec
 
diff --git a/dlls/comctl32/Makefile.in b/dlls/comctl32/Makefile.in
index e84f84f..664089d9 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = comctl32
 SOVERSION = 1.0
+IMPORTS   = winmm
 WRCEXTRA  = -s -p$(MODULE)
 
 SPEC_SRCS = comctl32.spec
diff --git a/dlls/commdlg/Makefile.in b/dlls/commdlg/Makefile.in
index a98c279..8d912f5 100644
--- a/dlls/commdlg/Makefile.in
+++ b/dlls/commdlg/Makefile.in
@@ -6,7 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = comdlg32
 SOVERSION = 1.0
-IMPORTS   = shell32 ole32 comctl32 winspool
+IMPORTS   = shell32 ole32 comctl32 winspool winmm
 WRCEXTRA  = -s -pcomdlg32
 
 SPEC_SRCS = commdlg.spec comdlg32.spec
diff --git a/dlls/msvideo/Makefile.in b/dlls/msvideo/Makefile.in
index e668e2a..9aa1e1d 100644
--- a/dlls/msvideo/Makefile.in
+++ b/dlls/msvideo/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = msvfw32
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = msvfw32.spec msvideo.spec
 
diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index ae96750..9cf29a4 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -6,7 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = oleaut32
 SOVERSION = 1.0
-IMPORTS   = olepro32 ole32 comctl32
+IMPORTS   = olepro32 ole32 comctl32 winmm
 
 SPEC_SRCS = oleaut32.spec ole2disp.spec typelib.spec
 
diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in
index fe98fcc..29c6d0b 100644
--- a/dlls/shell32/Makefile.in
+++ b/dlls/shell32/Makefile.in
@@ -6,7 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = shell32
 SOVERSION = 1.0
-IMPORTS   = ole32 comctl32
+IMPORTS   = ole32 comctl32 winmm
 WRCEXTRA  = -s -p$(MODULE)
 
 SPEC_SRCS = \
diff --git a/dlls/winmm/.cvsignore b/dlls/winmm/.cvsignore
index c20e2ff..9231b6a 100644
--- a/dlls/winmm/.cvsignore
+++ b/dlls/winmm/.cvsignore
@@ -1,5 +1,6 @@
-Makefile
+*.glue.c
 *.spec.c
 *.spec.glue.s
-*.glue.c
+Makefile
+libwinmm.so.1.0
 winmm_res.s
diff --git a/dlls/winmm/Makefile.in b/dlls/winmm/Makefile.in
index a02e076..bb502bf 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -3,7 +3,9 @@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
+LIBEXT    = @LIBEXT@
 MODULE    = winmm
+SOVERSION = 1.0
 WRCEXTRA  = -s -pwinmm
 
 SPEC_SRCS = \
@@ -25,7 +27,7 @@
 RC_SRCS= \
 	winmm_res.rc
 
-all: check_wrc $ $(MODULE).o
+all: check_wrc $ lib$(MODULE).$(LIBEXT)
 
 SUBDIRS = \
 	joystick \
@@ -45,4 +47,7 @@
 
 $(RC_SRCS:.rc=.s): $(WRC)
 
+clean::
+	$(RM) lib$(MODULE).$(LIBEXT).$(SOVERSION)
+
 ### Dependencies:
diff --git a/dlls/winmm/joystick/Makefile.in b/dlls/winmm/joystick/Makefile.in
index d21e08f..028d2d3 100644
--- a/dlls/winmm/joystick/Makefile.in
+++ b/dlls/winmm/joystick/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = joystick.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	joystick.spec
diff --git a/dlls/winmm/mcianim/Makefile.in b/dlls/winmm/mcianim/Makefile.in
index 69f17e6..d54653a 100644
--- a/dlls/winmm/mcianim/Makefile.in
+++ b/dlls/winmm/mcianim/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = mcianim.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	mcianim.spec
diff --git a/dlls/winmm/mciavi/Makefile.in b/dlls/winmm/mciavi/Makefile.in
index ee31b73..1a48517 100644
--- a/dlls/winmm/mciavi/Makefile.in
+++ b/dlls/winmm/mciavi/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = mciavi.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	mciavi.spec
diff --git a/dlls/winmm/mcicda/Makefile.in b/dlls/winmm/mcicda/Makefile.in
index edc778c..da823f6 100644
--- a/dlls/winmm/mcicda/Makefile.in
+++ b/dlls/winmm/mcicda/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = mcicda.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	mcicda.spec
diff --git a/dlls/winmm/mciseq/Makefile.in b/dlls/winmm/mciseq/Makefile.in
index 1c16515..e4136b7 100644
--- a/dlls/winmm/mciseq/Makefile.in
+++ b/dlls/winmm/mciseq/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = mciseq.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	mciseq.spec
diff --git a/dlls/winmm/mciwave/Makefile.in b/dlls/winmm/mciwave/Makefile.in
index 87d1c6b..26e6f69 100644
--- a/dlls/winmm/mciwave/Makefile.in
+++ b/dlls/winmm/mciwave/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = mciwave.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	mciwave.spec
diff --git a/dlls/winmm/midimap/Makefile.in b/dlls/winmm/midimap/Makefile.in
index b774fb8..b50fe28 100644
--- a/dlls/winmm/midimap/Makefile.in
+++ b/dlls/winmm/midimap/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = midimap.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	midimap.spec
diff --git a/dlls/winmm/wavemap/Makefile.in b/dlls/winmm/wavemap/Makefile.in
index c854fec..6b4b323 100644
--- a/dlls/winmm/wavemap/Makefile.in
+++ b/dlls/winmm/wavemap/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = msacm.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	msacm.spec
diff --git a/dlls/winmm/wineoss/Makefile.in b/dlls/winmm/wineoss/Makefile.in
index e7c5823..bb1f5e7 100644
--- a/dlls/winmm/wineoss/Makefile.in
+++ b/dlls/winmm/wineoss/Makefile.in
@@ -6,6 +6,7 @@
 LIBEXT    = @LIBEXT@
 MODULE    = wineoss.drv
 SOVERSION = 1.0
+IMPORTS   = winmm
 
 SPEC_SRCS = \
 	wineoss.spec
diff --git a/include/acconfig.h b/include/acconfig.h
index 6f3bcb2..87ba6c6 100644
--- a/include/acconfig.h
+++ b/include/acconfig.h
@@ -12,6 +12,9 @@
 /* Define if struct msghdr contains msg_accrights */
 #undef HAVE_MSGHDR_ACCRIGHTS
 
+/* Define if struct sockaddr_un contains sun_len */
+#undef HAVE_SOCKADDR_SUN_LEN
+
 /* Define if you have the Xxf86dga library (-lXxf86dga).  */
 #undef HAVE_LIBXXF86DGA
 
diff --git a/include/config.h.in b/include/config.h.in
index b2d3ed6..d94db3c 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -53,7 +53,7 @@
 /* Define if struct msghdr contains msg_accrights */
 #undef HAVE_MSGHDR_ACCRIGHTS
 
-/* Define if struct sockaddr_un has the member sun_len */
+/* Define if struct sockaddr_un contains sun_len */
 #undef HAVE_SOCKADDR_SUN_LEN
 
 /* Define if you have the Xxf86dga library (-lXxf86dga).  */