Comment out the lines that generated by mk1mf.pl include three separate rules
that are equivalent to $(OUT_D). This was what was causing the 'too many rules'
warning under VC++.
diff --git a/INSTALL.W32 b/INSTALL.W32
index 6388c4c..61b563c 100644
--- a/INSTALL.W32
+++ b/INSTALL.W32
@@ -31,9 +31,8 @@
 
 nmake -f ms\ntdll.mak
 
-you may get a warning about too many rules but if all is well it should all
-compile and you will have some DLLs and executables in out32dll. If you want
-to try the tests then cd to out32dll and run ..\ms\test
+If all is well it should compile and you will have some DLLs and executables
+in out32dll. If you want to try the tests then cd to out32dll and run ..\ms\test
 
 Troubleshooting.
 
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index 18e9b04..80381e6 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -333,6 +333,9 @@
 # BIN_D  - Binary output directory
 # TEST_D - Binary test file output directory
 # LIB_D  - library output directory
+# Note: if you change these point to different directories then uncomment out
+# the lines around the 'NB' comment below.
+# 
 BIN_D=\$(OUT_D)
 TEST_D=\$(OUT_D)
 LIB_D=\$(OUT_D)
@@ -374,12 +377,12 @@
 
 \$(TMP_D):
 	\$(MKDIR) \$(TMP_D)
-
-\$(BIN_D):
-	\$(MKDIR) \$(BIN_D)
-
-\$(TEST_D):
-	\$(MKDIR) \$(TEST_D)
+# NB: uncomment out these lines if BIN_D, TEST_D and LIB_D are different
+#\$(BIN_D):
+#	\$(MKDIR) \$(BIN_D)
+#
+#\$(TEST_D):
+#	\$(MKDIR) \$(TEST_D)
 
 \$(LIB_D):
 	\$(MKDIR) \$(LIB_D)