diff --git a/Makefile.in b/Makefile.in
index 19ba92c5f0..92238dc1a3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -104,7 +104,7 @@ install::
 
 # Dependencies between directories
 
-all: dlls library miscemu ole programs server tools tsx11 unicode
+all: $(SUBDIRS)
 dlls: library ole tools tsx11 unicode
 server: library tools unicode
 miscemu programs: dlls library ole tools tsx11 unicode
diff --git a/README b/README
index 5fd7bec8e0..c18fae8724 100644
--- a/README
+++ b/README
@@ -195,7 +195,7 @@ http://home.nexgo.de/andi.mohr/download/decorrupt_explorer
 Some documentation (various Wine Guides etc.) can be found in the
 documentation/ directory (apart from also being available on WineHQ).
 
-If you want to process the SGML files in there, then you can run "make"
+If you want to process the SGML files in there, then you can run "make doc"
 in the documentation/ directory.
 Doing so requires the sgml tools package (for db2html, db2ps, db2pdf) named:
 Debian:		docbook-utils
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 5a0da6e190..c582a40934 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -726,6 +726,7 @@ urlmon/__install__: urlmon.dll$(DLLEXT)
 user/__install__: user32.dll$(DLLEXT)
 version/__install__: version.dll$(DLLEXT)
 win32s/__install__: w32skrnl.dll$(DLLEXT)
+winmm/winealsa/__install__: winealsa.drv$(DLLEXT)
 winmm/winearts/__install__: winearts.drv$(DLLEXT)
 winedos/__install__: winedos.dll$(DLLEXT)
 msacm/winemp3/__install__: winemp3.acm$(DLLEXT)
@@ -855,16 +856,16 @@ x11drv:   user32.dll$(DLLEXT) gdi32.dll$(DLLEXT) advapi32.dll$(DLLEXT) kernel32.
 
 LINKABLE_DLLS = ntdll.dll gdi32.dll user32.dll kernel32.dll
 
-libntdll.dll.$(LIBEXT): ntdll
+libntdll.dll.$(LIBEXT): ntdll/ntdll.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) ntdll/ntdll.dll$(DLLEXT) $@
 
-libgdi32.dll.$(LIBEXT): gdi
+libgdi32.dll.$(LIBEXT): gdi/gdi32.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) gdi/gdi32.dll$(DLLEXT) $@
 
-libuser32.dll.$(LIBEXT): user
+libuser32.dll.$(LIBEXT): user/user32.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) user/user32.dll$(DLLEXT) $@
 
-libkernel32.dll.$(LIBEXT): kernel
+libkernel32.dll.$(LIBEXT): kernel/kernel32.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) kernel/kernel32.dll$(DLLEXT) $@
 
 uninstall::
diff --git a/dlls/make_dlls b/dlls/make_dlls
index 42d4145970..38cdf7256d 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -253,7 +253,7 @@ printf NEWMAKE "LINKABLE_DLLS = %s\n\n", join( " ", keys %linkable_dlls );
 
 foreach my $mod (keys %linkable_dlls)
 {
-    printf NEWMAKE "lib%s.\$(LIBEXT): %s\n", $mod, $directories{$mod};
+    printf NEWMAKE "lib%s.\$(LIBEXT): %s/%s\$(DLLEXT)\n", $mod, $directories{$mod}, $mod;
     printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s\$(DLLEXT) \$@\n\n", $directories{$mod}, $mod;
 }
 
diff --git a/documentation/Makefile.in b/documentation/Makefile.in
index a0a6164dc5..a505f68eec 100644
--- a/documentation/Makefile.in
+++ b/documentation/Makefile.in
@@ -51,10 +51,18 @@ BOOK_TARGETS = \
 	$(BOOKNAME).pdf \
 	$(BOOKNAME).ps
 
-all: $(MAN_TARGETS) $(BOOK_TARGETS)
+all: $(MAN_TARGETS)
 
 @MAKE_RULES@
 
+everything: $(MAN_TARGETS) $(BOOK_TARGETS)
+doc: $(BOOK_TARGETS)
+html: $(BOOKNAME)/index.html
+pdf: $(BOOKNAME).pdf
+ps: $(BOOKNAME).ps
+
+.PHONY: everything doc html pdf ps
+
 $(BOOKNAME)/index.html: $(BOOK_SRCS)
 	$(DB2HTML) $(BOOKNAME).sgml