diff --git a/Make.rules.in b/Make.rules.in
index db3a45f2184e830dfe975f7e56ee59af813d1b83..fb7ac3ee774e2b493e64ef0888c7f3088c092799 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -109,6 +109,20 @@ CROSSOBJS = $(OBJS:.o=.cross.o)
 dlldata.c: $(WIDL) Makefile.in
 	$(WIDL) $(IDLFLAGS) --dlldata-only -o $@ $(IDL_P_SRCS)
 
+# Rules for static libraries
+
+all: $(STATICLIB)
+
+$(STATICLIB): $(OBJS) Makefile.in
+	$(RM) $@
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+	$(RANLIB) $@
+
+$(STATICLIB:.a=.cross.a): $(CROSSOBJS) Makefile.in
+	$(RM) $@
+	$(CROSSAR) $(ARFLAGS) $@ $(CROSSOBJS)
+	$(CROSSRANLIB) $@
+
 # Rules for dependencies
 
 DEPEND_SRCS = $(C_SRCS) $(OBJC_SRCS) $(RC_SRCS) $(MC_SRCS) \
diff --git a/dlls/Makeimplib.rules.in b/dlls/Makeimplib.rules.in
index 51129485e06846683fdd758ec8a2a66258ff3aca..5e59a50c93223974b154a6b81575e8388cb15520 100644
--- a/dlls/Makeimplib.rules.in
+++ b/dlls/Makeimplib.rules.in
@@ -9,20 +9,6 @@
 DLLFLAGS = @DLLFLAGS@
 MAKEDEPFLAGS = -xo -xcross.o
 
-@MAKE_RULES@
-
-all: $(MODULE) @CROSSTEST_DISABLE@ $(MODULE:.a=.cross.a)
-
-# Rules for .a library
+@CROSSTEST_DISABLE@ all: $(STATICLIB:.a=.cross.a)
 
-$(MODULE): $(OBJS) Makefile.in
-	$(RM) $@
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-	$(RANLIB) $@
-
-$(MODULE:.a=.cross.a): $(CROSSOBJS) Makefile.in
-	$(RM) $@
-	$(CROSSAR) $(ARFLAGS) $@ $(CROSSOBJS)
-	$(CROSSRANLIB) $@
-
-# End of global library rules
+@MAKE_RULES@
diff --git a/dlls/adsiid/Makefile.in b/dlls/adsiid/Makefile.in
index a5b27d53fa8e93285c056d7ea79b121e01bc7a5e..221f19abaa25f134a4e4858359439dc14f1a559c 100644
--- a/dlls/adsiid/Makefile.in
+++ b/dlls/adsiid/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libadsiid.a
+STATICLIB = libadsiid.a
 
 C_SRCS = \
 	adsiid.c
diff --git a/dlls/dxerr8/Makefile.in b/dlls/dxerr8/Makefile.in
index aa46a267403a1ed70a2777812ee77b4eba140ff5..dbd9b0263a90e7dace0a6e344d7e4ceef2940825 100644
--- a/dlls/dxerr8/Makefile.in
+++ b/dlls/dxerr8/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libdxerr8.a
+STATICLIB = libdxerr8.a
 
 C_SRCS = \
 	dxerr8.c
diff --git a/dlls/dxerr9/Makefile.in b/dlls/dxerr9/Makefile.in
index 57edb145f29594100ce281e512d3b6d38df31bfd..c85f648e615b76c169ee7c05df0cc19c7a8bd88d 100644
--- a/dlls/dxerr9/Makefile.in
+++ b/dlls/dxerr9/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libdxerr9.a
+STATICLIB = libdxerr9.a
 
 C_SRCS = \
 	dxerr9.c
diff --git a/dlls/dxguid/Makefile.in b/dlls/dxguid/Makefile.in
index a47a51f0ad2a67c55cef09bcbb1496832eb5bb25..261e0d046855389ecf1f294325142c9e908bbe06 100644
--- a/dlls/dxguid/Makefile.in
+++ b/dlls/dxguid/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libdxguid.a
+STATICLIB = libdxguid.a
 
 C_SRCS = \
 	dx10guid.c \
diff --git a/dlls/strmbase/Makefile.in b/dlls/strmbase/Makefile.in
index 3ac7c5611e2ffc4625392f4bdd2cc7c6d052f14f..473cbddc04dc6f3c465385b54afcfa5d499c731c 100644
--- a/dlls/strmbase/Makefile.in
+++ b/dlls/strmbase/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libstrmbase.a
+STATICLIB = libstrmbase.a
 
 C_SRCS = \
 	audio.c \
diff --git a/dlls/strmiids/Makefile.in b/dlls/strmiids/Makefile.in
index 744682e752a11e3df4e4e22d06c0f3657db6a81f..3ed92477ffa8f033a74783a0c2bbae99fe44e11e 100644
--- a/dlls/strmiids/Makefile.in
+++ b/dlls/strmiids/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libstrmiids.a
+STATICLIB = libstrmiids.a
 
 C_SRCS = \
 	strmiids.c
diff --git a/dlls/uuid/Makefile.in b/dlls/uuid/Makefile.in
index bc35e6983adc276a3874758320c8138d60d967db..904c354e4c275fa9923482a514631838cc71398f 100644
--- a/dlls/uuid/Makefile.in
+++ b/dlls/uuid/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libuuid.a
+STATICLIB = libuuid.a
 
 C_SRCS = \
 	uuid.c
diff --git a/dlls/winecrt0/Makefile.in b/dlls/winecrt0/Makefile.in
index 23dca02d85d48477afa05e2d79bd574ce5bb261e..99cd65f81721d4fab81d4f45926f330d0bb6ae49 100644
--- a/dlls/winecrt0/Makefile.in
+++ b/dlls/winecrt0/Makefile.in
@@ -1,4 +1,4 @@
-MODULE    = libwinecrt0.a
+STATICLIB = libwinecrt0.a
 
 C_SRCS = \
 	delay_load.c \
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
index 3f42fd441653c279bbf25090824fce29ffd18cc9..bcf4c66b331399a946ce654c8bc751185073f8f1 100644
--- a/libs/port/Makefile.in
+++ b/libs/port/Makefile.in
@@ -1,5 +1,5 @@
 DLLFLAGS  = @DLLFLAGS@
-MODULE    = libwine_port.a
+STATICLIB = libwine_port.a
 
 C_SRCS = \
 	ffs.c \
@@ -25,11 +25,4 @@ C_SRCS = \
 	symlink.c \
 	usleep.c
 
-all: $(MODULE)
-
 @MAKE_RULES@
-
-$(MODULE): $(OBJS) Makefile.in
-	$(RM) $@
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-	$(RANLIB) $@
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index ad9c3c94e7fa9c0706e8c917b6237c30193a8f63..24635c1d99fa9daa410e350745adb3163fae83cc 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -1,6 +1,7 @@
 DLLFLAGS  = @DLLFLAGS@
 EXTRALIBS = $(LIBPORT) @LIBDL@ @COREFOUNDATIONLIB@ @CORESERVICESLIB@
 EXTRADEFS = -DWINE_UNICODE_API=""
+STATICLIB = libwine_static.a
 
 VERSION   = 1.0
 SOVERSION = 1
@@ -122,11 +123,6 @@ version.c: dummy
 $(RELPATH):
 	@cd $(TOOLSDIR)/tools && $(MAKE) relpath$(TOOLSEXT)
 
-all: libwine_static.a
-
-libwine_static.a: $(OBJS) Makefile.in
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-
 # Make sure that make_makefiles sees the generated rules
 install install-lib::
 install install-dev::
diff --git a/libs/wpp/Makefile.in b/libs/wpp/Makefile.in
index 4cd080eedf14e649fbe8bcbfcb2e98f618bde32d..668c137b21926eeb42ee6f38d84011d9d41aa62e 100644
--- a/libs/wpp/Makefile.in
+++ b/libs/wpp/Makefile.in
@@ -1,5 +1,5 @@
 DLLFLAGS  = @DLLFLAGS@
-MODULE    = libwpp.a
+STATICLIB = libwpp.a
 
 C_SRCS = \
 	preproc.c \
@@ -8,11 +8,4 @@ C_SRCS = \
 LEX_SRCS   = ppl.l
 BISON_SRCS = ppy.y
 
-all: $(MODULE)
-
 @MAKE_RULES@
-
-$(MODULE): $(OBJS)
-	$(RM) $@
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-	$(RANLIB) $@