Moved rules for building shared libraries into a global Makelib.rules
file.

diff --git a/libs/.cvsignore b/libs/.cvsignore
index f3c7a7c..a7a1682 100644
--- a/libs/.cvsignore
+++ b/libs/.cvsignore
@@ -1 +1,2 @@
 Makefile
+Makelib.rules
diff --git a/libs/Makelib.rules.in b/libs/Makelib.rules.in
new file mode 100644
index 0000000..08b32c8
--- /dev/null
+++ b/libs/Makelib.rules.in
@@ -0,0 +1,58 @@
+# Global rules for building shared libraries     -*-Makefile-*-
+#
+# Each individual makefile should define the following variables:
+# LIBRARY      : name of the library being built (without the lib prefix)
+# SOVERSION    : the .so file version
+#
+# plus all variables required by the global Make.rules.in
+#
+
+DEFS      = @DLLFLAGS@ $(EXTRADEFS)
+LIBEXT    = @LIBEXT@
+LIBNAME   = lib$(LIBRARY)
+DEFNAME   = $(LIBRARY).def
+SONAME    = $(LIBNAME).so.$(SOVERSION)
+MODULE    = $(LIBNAME).$(LIBEXT)
+
+all: $(MODULE) $(MODULE:.dll=.a)
+
+@MAKE_RULES@
+
+$(LIBNAME).so.$(SOVERSION): $(OBJS) Makefile.in
+	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LIBS) -o $@
+
+$(LIBNAME).so: $(LIBNAME).so.$(SOVERSION)
+	$(RM) $@ && $(LN_S) $(LIBNAME).so.$(SOVERSION) $@
+
+$(LIBNAME).a: $(DEFNAME)
+	$(DLLTOOL) -l $@ -d $(SRCDIR)/$(DEFNAME)
+
+$(LIBNAME).dll: $(OBJS) $(DEFNAME) Makefile.in
+	$(DLLWRAP) --def $(SRCDIR)/$(DEFNAME) -o $@ $(OBJS) $(EXTRALIBS)
+
+.PHONY: install-lib-so install-lib-dll install-dev-so install-dev-dll
+
+install-lib-so: $(LIBNAME).so.$(SOVERSION) dummy
+	$(MKINSTALLDIRS) $(libdir)
+	$(INSTALL_PROGRAM) $(LIBNAME).so.$(SOVERSION) $(libdir)/$(LIBNAME).so.$(SOVERSION)
+
+install-lib-dll: $(LIBNAME).dll dummy
+	$(MKINSTALLDIRS) $(libdir)
+	$(INSTALL_DATA) $(LIBNAME).dll $(libdir)/$(LIBNAME).dll
+
+install-dev-so: dummy
+	$(MKINSTALLDIRS) $(libdir)
+	cd $(libdir) && $(RM) $(LIBNAME).so && $(LN_S) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).so
+
+install-dev-dll: $(LIBNAME).a dummy
+	$(MKINSTALLDIRS) $(libdir)
+	$(INSTALL_DATA) $(LIBNAME).a $(libdir)/$(LIBNAME).a
+
+install install-lib:: $(LIBEXT:%=install-lib-%)
+install install-dev:: $(LIBEXT:%=install-dev-%)
+
+uninstall::
+	$(RM) $(libdir)/$(LIBNAME).a $(libdir)/$(LIBNAME).dll $(libdir)/$(LIBNAME).so $(libdir)/$(LIBNAME).so.$(SOVERSION)
+
+clean::
+	$(RM) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).dll
diff --git a/libs/unicode/Makefile.in b/libs/unicode/Makefile.in
index 522cc66..b1753fe 100644
--- a/libs/unicode/Makefile.in
+++ b/libs/unicode/Makefile.in
@@ -1,12 +1,10 @@
-DEFS      = @DLLFLAGS@ -D__WINESRC__ -DNO_LIBWINE_PORT
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
+LIBRARY   = wine_unicode
 SOVERSION = 1
-SONAME    = libwine_unicode.so.$(SOVERSION)
-MODULE    = libwine_unicode.$(LIBEXT)
+EXTRADEFS = -D__WINESRC__ -DNO_LIBWINE_PORT
 
 CODEPAGES = \
 	037 \
@@ -81,47 +79,6 @@
 	wctype.c \
 	$(CODEPAGES:%=c_%.c)
 
-all: $(MODULE) $(MODULE:.dll=.a)
-
-@MAKE_RULES@
-
-libwine_unicode.so.$(SOVERSION): $(OBJS) Makefile.in
-	$(LDSHARED) $(OBJS) -o $@
-
-libwine_unicode.so: libwine_unicode.so.$(SOVERSION)
-	$(RM) $@ && $(LN_S) libwine_unicode.so.$(SOVERSION) $@
-
-libwine_unicode.a: wine_unicode.def
-	$(DLLTOOL) -l $@ -d $(SRCDIR)/wine_unicode.def
-
-libwine_unicode.dll: $(OBJS) wine_unicode.def Makefile.in
-	$(DLLWRAP) --def $(SRCDIR)/wine_unicode.def -o $@ $(OBJS)
-
-.PHONY: install-lib-so install-lib-dll install-dev-so install-dev-dll
-
-install-lib-so: libwine_unicode.so.$(SOVERSION) dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_PROGRAM) libwine_unicode.so.$(SOVERSION) $(libdir)/libwine_unicode.so.$(SOVERSION)
-
-install-lib-dll: libwine_unicode.dll dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_DATA) libwine_unicode.dll $(libdir)/libwine_unicode.dll
-
-install-dev-so: dummy
-	$(MKINSTALLDIRS) $(libdir)
-	cd $(libdir) && $(RM) libwine_unicode.so && $(LN_S) libwine_unicode.so.$(SOVERSION) libwine_unicode.so
-
-install-dev-dll: libwine_unicode.a dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_DATA) libwine_unicode.a $(libdir)/libwine_unicode.a
-
-install install-lib:: $(LIBEXT:%=install-lib-%)
-install install-dev:: $(LIBEXT:%=install-dev-%)
-
-uninstall::
-	$(RM) $(libdir)/libwine_unicode.a $(libdir)/libwine_unicode.dll $(libdir)/libwine_unicode.so $(libdir)/libwine_unicode.so.$(SOVERSION)
-
-clean::
-	$(RM) libwine_unicode.so.$(SOVERSION) libwine_unicode.dll
+@MAKE_LIB_RULES@
 
 ### Dependencies:
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index 46e597b..f3b1cd1 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -1,12 +1,10 @@
-DEFS      = @DLLFLAGS@ -D__WINESRC__ -DDLLDIR="\"$(dlldir)\""
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
-LIBEXT    = @LIBEXT@
+LIBRARY   = wine
 SOVERSION = 1
-SONAME    = libwine.so.$(SOVERSION)
-MODULE    = libwine.$(LIBEXT)
+EXTRADEFS = -D__WINESRC__ -DDLLDIR="\"$(dlldir)\""
 EXTRALIBS = $(LIBPORT) @DLLIBS@ @CRTLIBS@
 
 C_SRCS = \
@@ -16,47 +14,6 @@
 	ldt.c \
 	loader.c
 
-all: $(MODULE) $(MODULE:.dll=.a)
-
-@MAKE_RULES@
-
-libwine.so.$(SOVERSION): $(OBJS) Makefile.in
-	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LIBS) -o $@
-
-libwine.so: libwine.so.$(SOVERSION)
-	$(RM) $@ && $(LN_S) libwine.so.$(SOVERSION) $@
-
-libwine.a: wine.def
-	$(DLLTOOL) -l $@ -d $(SRCDIR)/wine.def
-
-libwine.dll: $(OBJS) wine.def Makefile.in
-	$(DLLWRAP) --def $(SRCDIR)/wine.def -o $@ $(OBJS) $(EXTRALIBS)
-
-.PHONY: install-lib-so install-lib-dll install-dev-so install-dev-dll
-
-install-lib-so: libwine.so.$(SOVERSION) dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_PROGRAM) libwine.so.$(SOVERSION) $(libdir)/libwine.so.$(SOVERSION)
-
-install-lib-dll: libwine.dll dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_DATA) libwine.dll $(libdir)/libwine.dll
-
-install-dev-so: dummy
-	$(MKINSTALLDIRS) $(libdir)
-	cd $(libdir) && $(RM) libwine.so && $(LN_S) libwine.so.$(SOVERSION) libwine.so
-
-install-dev-dll: libwine.a dummy
-	$(MKINSTALLDIRS) $(libdir)
-	$(INSTALL_DATA) libwine.a $(libdir)/libwine.a
-
-install install-lib:: $(LIBEXT:%=install-lib-%)
-install install-dev:: $(LIBEXT:%=install-dev-%)
-
-uninstall::
-	$(RM) $(libdir)/libwine.a $(libdir)/libwine.dll $(libdir)/libwine.so $(libdir)/libwine.so.$(SOVERSION)
-
-clean::
-	$(RM) libwine.so.$(SOVERSION) libwine.dll
+@MAKE_LIB_RULES@
 
 ### Dependencies: