List 16-bit spec files explicitly to avoid problems with some versions
of make.

diff --git a/Make.rules.in b/Make.rules.in
index 3ca4d23..303f2d6 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -10,7 +10,6 @@
 # C_SRCS       : C sources for the module
 # C_SRCS16     : 16-bit C sources for the module
 # RC_SRCS      : resource source files
-# SPEC_SRCS    : interface definition files
 # EXTRA_SRCS   : extra source files for make depend
 # EXTRA_OBJS   : extra object files
 # IMPORTS      : dlls to import
@@ -154,7 +153,7 @@
 
 # Rule to rebuild the tools
 
-$(MAKEDEP) $(WIDL) $(WINEBUILD) $(WMC) $(WRC):
+$(MAKEDEP):
 	cd $(TOOLSDIR)/tools && $(MAKE) `basename $@`
 
 # Rules for makefile
@@ -163,28 +162,6 @@
 	@echo Makefile is older than $?, please rerun $(TOPSRCDIR)/configure
 	@exit 1
 
-# Rules for auto documentation
-
-$(SUBDIRS:%=%/__man__): dummy
-	cd `dirname $@` && $(MAKE) man
-
-man: $(C_SRCS) $(SUBDIRS:%=%/__man__)
-	$(MKINSTALLDIRS) $(TOPOBJDIR)/documentation/man$(api_manext) && $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -S$(api_manext) $(DIVINCL) $(MAINSPEC:%=-w %) $(SPEC_SRCS:%=-w %) $(C_SRCS) $(C_SRCS16)
-
-$(SUBDIRS:%=%/__doc_html__): dummy
-	cd `dirname $@` && $(MAKE) doc-html
-
-doc-html: $(C_SRCS) $(SUBDIRS:%=%/__doc_html__)
-	$(MKINSTALLDIRS) $(TOPOBJDIR)/documentation/html && $(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPOBJDIR) $(DIVINCL) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS:%=-w %) $(C_SRCS) $(C_SRCS16)
-
-$(SUBDIRS:%=%/__doc_sgml__): dummy
-	cd `dirname $@` && $(MAKE) doc-sgml
-
-doc-sgml: $(C_SRCS) $(SUBDIRS:%=%/__doc_sgml__)
-	$(MKINSTALLDIRS) $(TOPOBJDIR)/documentation/api-guide && $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPOBJDIR) $(DIVINCL) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS:%=-w %) $(C_SRCS) $(C_SRCS16)
-
-.PHONY: man doc-html doc-sgml $(SUBDIRS:%=%/__man__) $(SUBDIRS:%=%/__doc_html__) $(SUBDIRS:%=%/__doc_sgml__)
-
 # Rule for linting
 
 $(MODULE).ln : $(LINTS)
@@ -274,8 +251,6 @@
 
 # Misc. rules
 
-$(SPEC_SRCS:.spec=.spec.c): $(WINEBUILD)
-
 $(RC_SRCS:.rc=.res): $(WRC)
 
 $(RC_SRCS16:.rc=.res): $(WRC)
diff --git a/Makefile.in b/Makefile.in
index e7e54f9..6d46088 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -133,7 +133,7 @@
 
 manpages:
 	$(MKINSTALLDIRS) $(TOPOBJDIR)/documentation/man3w
-	for i in $(SUBDIRS); do (cd $$i && $(MAKE) man); done
+	cd dlls && $(MAKE) man
 
 htmlpages:
 	$(MKINSTALLDIRS) $(TOPOBJDIR)/documentation/html
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index f1b929c..6f422fd 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -4,17 +4,16 @@
 # MODULE       : name of the main module being built
 # ALTNAMES     : alternate names for this dll (optional)
 # EXTRALIBS    : extra libraries to link in (optional)
+# SPEC_SRCS16  : interface definition files for 16-bit dlls (optional)
 #
 # plus all variables required by the global Make.rules.in
 #
 
 DEFS        = @DLLFLAGS@ -D__WINESRC__ $(EXTRADEFS)
 DLLEXT      = @DLLEXT@
-ALTSPECS    = $(ALTNAMES:%.dll=%)
-SPEC_SRCS   = $(ALTSPECS:%=%.spec)
 MAINSPEC    = $(MODULE:%.dll=%).spec
 SPEC_DEF    = $(MAINSPEC).def
-WIN16_FILES = $(SPEC_SRCS:.spec=.spec.o) $(C_SRCS16:.c=.o) $(EXTRA_OBJS16)
+WIN16_FILES = $(SPEC_SRCS16:.spec=.spec.o) $(C_SRCS16:.c=.o) $(EXTRA_OBJS16)
 ALL_OBJS    = @WIN16_FILES@ $(OBJS) $(MODULE).dbg.o
 ALL_LIBS    = $(LIBWINE) $(EXTRALIBS) $(LIBPORT) $(LIBS)
 IMPORTLIBS  = $(DELAYIMPORTS:%=$(DLLDIR)/lib%.$(IMPLIBEXT)) $(IMPORTS:%=$(DLLDIR)/lib%.$(IMPLIBEXT))
@@ -66,6 +65,28 @@
 
 crosstest:: $(SUBDIRS:%=%/__crosstest__)
 
+# Rules for auto documentation
+
+$(SUBDIRS:%=%/__man__): dummy
+	cd `dirname $@` && $(MAKE) man
+
+man: $(C_SRCS) $(SUBDIRS:%=%/__man__)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -S$(api_manext) $(DIVINCL) $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+$(SUBDIRS:%=%/__doc_html__): dummy
+	cd `dirname $@` && $(MAKE) doc-html
+
+doc-html: $(C_SRCS) $(SUBDIRS:%=%/__doc_html__)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPOBJDIR) $(DIVINCL) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+$(SUBDIRS:%=%/__doc_sgml__): dummy
+	cd `dirname $@` && $(MAKE) doc-sgml
+
+doc-sgml: $(C_SRCS) $(SUBDIRS:%=%/__doc_sgml__)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPOBJDIR) $(DIVINCL) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+.PHONY: man doc-html doc-sgml $(SUBDIRS:%=%/__man__) $(SUBDIRS:%=%/__doc_html__) $(SUBDIRS:%=%/__doc_sgml__)
+
 # Sanity check
 
 Makedll.rules: $(TOPSRCDIR)/dlls/Makedll.rules.in $(TOPSRCDIR)/configure
@@ -90,4 +111,8 @@
 uninstall::
 	$(RM) $(dlldir)/$(MODULE)$(DLLEXT) $(ALTNAMES:%=$(dlldir)/%$(DLLEXT))
 
+# Misc. rules
+
+$(SPEC_SRCS16:.spec=.spec.c): $(WINEBUILD)
+
 # End of global dll rules
diff --git a/dlls/avifil32/Makefile.in b/dlls/avifil32/Makefile.in
index f0e9ab3..07f4dcb 100644
--- a/dlls/avifil32/Makefile.in
+++ b/dlls/avifil32/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	acmstream.c \
 	api.c \
diff --git a/dlls/commdlg/Makefile.in b/dlls/commdlg/Makefile.in
index 4ba1147..f3444f8 100644
--- a/dlls/commdlg/Makefile.in
+++ b/dlls/commdlg/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	cdlg32.c \
 	colordlg.c \
diff --git a/dlls/ctl3d/Makefile.in b/dlls/ctl3d/Makefile.in
index f8379ce..4396961 100644
--- a/dlls/ctl3d/Makefile.in
+++ b/dlls/ctl3d/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = ctl3d32.c
 
 C_SRCS16 = ctl3d.c
diff --git a/dlls/gdi/Makefile.in b/dlls/gdi/Makefile.in
index 3a9c0f9..8d5c7ce 100644
--- a/dlls/gdi/Makefile.in
+++ b/dlls/gdi/Makefile.in
@@ -12,6 +12,11 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = \
+	dispdib.spec \
+	gdi.exe.spec \
+	wing.spec
+
 C_SRCS = \
 	$(TOPOBJDIR)/graphics/bitblt.c \
 	$(TOPOBJDIR)/graphics/dispdib.c \
diff --git a/dlls/imm32/Makefile.in b/dlls/imm32/Makefile.in
index 8250f3e..d612640 100644
--- a/dlls/imm32/Makefile.in
+++ b/dlls/imm32/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	imm.c
 
diff --git a/dlls/kernel/Makefile.in b/dlls/kernel/Makefile.in
index 775849a..b98c018 100644
--- a/dlls/kernel/Makefile.in
+++ b/dlls/kernel/Makefile.in
@@ -9,6 +9,16 @@
 LDIMPORTS = ntdll.dll
 DLLMAIN   = MAIN_KernelInit
 
+SPEC_SRCS16 = \
+	comm.spec \
+	krnl386.exe.spec \
+	stress.spec \
+	system.spec \
+	toolhelp.spec \
+	win87em.spec \
+	windebug.spec \
+	wprocs.spec
+
 C_SRCS = \
 	$(TOPOBJDIR)/ole/ole2nls.c \
 	comm.c \
diff --git a/dlls/lzexpand/Makefile.in b/dlls/lzexpand/Makefile.in
index 8ab3892..b3c0ef0 100644
--- a/dlls/lzexpand/Makefile.in
+++ b/dlls/lzexpand/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS   = lzexpand_main.c
 C_SRCS16 = lzexpand16.c
 
diff --git a/dlls/msacm/Makefile.in b/dlls/msacm/Makefile.in
index 700ab91..927c7d3 100644
--- a/dlls/msacm/Makefile.in
+++ b/dlls/msacm/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	driver.c \
 	filter.c \
diff --git a/dlls/msvideo/Makefile.in b/dlls/msvideo/Makefile.in
index 8352889..395b25f 100644
--- a/dlls/msvideo/Makefile.in
+++ b/dlls/msvideo/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	mciwnd.c \
 	msvideo_main.c \
diff --git a/dlls/ole32/Makefile.in b/dlls/ole32/Makefile.in
index 301b92c..d328f6c 100644
--- a/dlls/ole32/Makefile.in
+++ b/dlls/ole32/Makefile.in
@@ -11,6 +11,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	antimoniker.c \
 	bindctx.c \
diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index 6fd3967..73d1167 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -12,6 +12,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	connpt.c \
 	dispatch.c \
diff --git a/dlls/olecli/Makefile.in b/dlls/olecli/Makefile.in
index 5b95b7b..071224f 100644
--- a/dlls/olecli/Makefile.in
+++ b/dlls/olecli/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	olecli_main.c
 
diff --git a/dlls/olesvr/Makefile.in b/dlls/olesvr/Makefile.in
index aad972f..46fd1b9 100644
--- a/dlls/olesvr/Makefile.in
+++ b/dlls/olesvr/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	olesvr_main.c
 
diff --git a/dlls/rasapi32/Makefile.in b/dlls/rasapi32/Makefile.in
index ac8e0ae..2ab90a2 100644
--- a/dlls/rasapi32/Makefile.in
+++ b/dlls/rasapi32/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = rasapi.c
 
 @MAKE_DLL_RULES@
diff --git a/dlls/setupapi/Makefile.in b/dlls/setupapi/Makefile.in
index b3c9b28..7b32feb 100644
--- a/dlls/setupapi/Makefile.in
+++ b/dlls/setupapi/Makefile.in
@@ -11,6 +11,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	devinst.c \
 	dirid.c \
diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in
index d6d6f66..ea685f5 100644
--- a/dlls/shell32/Makefile.in
+++ b/dlls/shell32/Makefile.in
@@ -12,6 +12,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	brsfolder.c \
 	changenotify.c \
diff --git a/dlls/user/Makefile.in b/dlls/user/Makefile.in
index 57688f2..3a5ada8 100644
--- a/dlls/user/Makefile.in
+++ b/dlls/user/Makefile.in
@@ -12,6 +12,13 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = \
+	ddeml.spec \
+	display.spec \
+	keyboard.spec \
+	mouse.spec \
+	user.exe.spec
+
 C_SRCS = \
 	$(TOPOBJDIR)/controls/button.c \
 	$(TOPOBJDIR)/controls/combo.c \
diff --git a/dlls/version/Makefile.in b/dlls/version/Makefile.in
index 6239f14..f007838 100644
--- a/dlls/version/Makefile.in
+++ b/dlls/version/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	info.c \
 	install.c \
diff --git a/dlls/win32s/Makefile.in b/dlls/win32s/Makefile.in
index 1af2b43..ed544cc 100644
--- a/dlls/win32s/Makefile.in
+++ b/dlls/win32s/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	w32skernel.c \
 	w32sys.c
diff --git a/dlls/winaspi/Makefile.in b/dlls/winaspi/Makefile.in
index 3bc1567..9de280d 100644
--- a/dlls/winaspi/Makefile.in
+++ b/dlls/winaspi/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	aspi.c \
 	winaspi32.c
diff --git a/dlls/wineps/Makefile.in b/dlls/wineps/Makefile.in
index 2b57226..230438c 100644
--- a/dlls/wineps/Makefile.in
+++ b/dlls/wineps/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = wineps16.drv.spec
+
 FONTMETRICS = \
 	AvantGarde_Book \
 	AvantGarde_BookOblique \
diff --git a/dlls/winmm/Makefile.in b/dlls/winmm/Makefile.in
index 735ef26..9369574 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	driver.c \
 	joystick.c \
diff --git a/dlls/winnls/Makefile.in b/dlls/winnls/Makefile.in
index b527aae..14e6633 100644
--- a/dlls/winnls/Makefile.in
+++ b/dlls/winnls/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	winnls.c
 
diff --git a/dlls/winsock/Makefile.in b/dlls/winsock/Makefile.in
index ed18254..5f08f69 100644
--- a/dlls/winsock/Makefile.in
+++ b/dlls/winsock/Makefile.in
@@ -10,6 +10,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	async.c \
 	socket.c
diff --git a/dlls/wintab32/Makefile.in b/dlls/wintab32/Makefile.in
index 0fd7bf4..e6dec86 100644
--- a/dlls/wintab32/Makefile.in
+++ b/dlls/wintab32/Makefile.in
@@ -9,6 +9,8 @@
 LDDLLFLAGS = @LDDLLFLAGS@
 SYMBOLFILE = $(MODULE).tmp.o
 
+SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
+
 C_SRCS = \
 	context.c \
 	manager.c
diff --git a/miscemu/Makefile.in b/miscemu/Makefile.in
index bd8ab15..2b7398d 100644
--- a/miscemu/Makefile.in
+++ b/miscemu/Makefile.in
@@ -6,8 +6,6 @@
 IMPORTS   = ntdll
 LDIMPORTS = ntdll.dll
 
-SPEC_SRCS = wine.spec
-
 C_SRCS = \
 	main.c
 
@@ -15,13 +13,13 @@
 
 @MAKE_RULES@
 
-ALL_OBJS = $(SPEC_SRCS:.spec=.spec.o) $(OBJS)
+ALL_OBJS = $(MODULE).spec.o $(OBJS)
 
 $(MODULE): $(ALL_OBJS)
 	$(CC) -o $@ $(ALL_OBJS) -L$(DLLDIR) $(LDIMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBPORT) $(LIBS) $(LDFLAGS)
 
-wine.spec.c: $(WINEBUILD)
-	$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe wine --exe-mode gui --entry wine_initial_task -L$(DLLDIR) $(IMPORTS:%=-l%)
+$(MODULE).spec.c: $(WINEBUILD)
+	$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe $(MODULE) --exe-mode gui --entry wine_initial_task -L$(DLLDIR) $(IMPORTS:%=-l%)
 
 install:: $(MODULE)
 	$(MKINSTALLDIRS) $(bindir)