DOCUMENT:Q66649 31-OCT-1999 [utilities] TITLE :PRB: Cause of U4004 Error Message PRODUCT :Microsoft Programming Utilities PROD/VER:MS-DOS:1.11,1.12,1.13,1.2,1.3,1.4; NT:1.4,1.5; OS/2:1.11,1.12,1.13,1.21 OPER/SYS: KEYWORDS: ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft NMAKE Utility for MS-DOS, versions 1.11, 1.12, 1.13, 1.2, 1.3, 1.4 - Microsoft NMAKE Utility for OS/2, versions 1.11, 1.12, 1.13, 1.21 - Microsoft NMAKE Utility for Windows NT, versions 1.4, 1.5 ------------------------------------------------------------------------------- SYMPTOMS ======== An attempt to use a makefile fails and NMAKE generates the following message: warning U4004: too many rules for target 'test.exe' CAUSE ===== The makefile contains more than one build dependency block for one target and the makefile does not use the multiple dependency block separator, a double colon (::). RESOLUTION ========== To eliminate the error, modify the makefile to use the multiple dependency block separator. MORE INFORMATION ================ The following makefile example demonstrates this warning. Sample Makefile 1 ----------------- all: test.exe test.exe : test.c cl test.c test.exe : test.res rc test.res The following makefile example works as expected. Sample Makefile 2 ----------------- all: test.exe test.exe :: test.c # Double colons are used here cl test.c test.exe :: test.res # Double colons are used here rc test.res Additional query words: 1.10 1.20 1.30 1.40 1.50 ====================================================================== Keywords : Technology : kbVCsearch kbAudDeveloper kbNMAKESearch kbNMAKE111DOS kbNMAKE112DOS kbNMAKE113DOS kbNMAKE120DOS kbNMAKE130DOS kbNMAKE140DOS kbNMAKE111OS2 kbNMAKE112OS2 kbNMAKE113OS2 kbNMAKE121OS2 kbNMAKE140NT kbNMAKE150NT Version : MS-DOS:1.11,1.12,1.13,1.2,1.3,1.4; NT:1.4,1.5; OS/2:1.11,1.12,1.13,1.21 ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 1999.