KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q43538: NMAKE Example Incorrect in QuickC Manual; Should Be Lowercase

Article: Q43538
Product(s): See article
Version(s): 2.00
Operating System(s): MS-DOS
Keyword(s): ENDUSER | docerr | mspl13_c
Last Modified: 2-MAY-1989

The example given on Page 169 of the "Microsoft QuickC Tool Kit
Version  2.0" is
incorrect: the inference rule is ignored because its dependent (.OBJ)
is not in the .SUFFIXES list. (NMAKE is case sensitive and will not
match ".OBJ" to ".obj".)

To correct this example, put the entire example in lowercase letters.

Please note that the inference rule given on Page 168 of the same
manual makes the same mistake. This example should also be in all
lowercase letters.

If NMAKE is invoked on this example with no switches, no diagnostics
are given; however, the command is not performed. To reveal the
problem, invoke NMAKE with the /p switch, which will yield the
following message:

   NMAKE : warning U4017: Ignoring rule .OBJ.EXE
                          (extension not in .SUFFIXES)

Another workaround is to append .OBJ to the suffixes list by placing
the following pseudotarget at the top of the NMAKE description file:

   .SUFFIXES: .OBJ

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 1986-2002.