Creating Inference Rules for Nonstandard File Extensions

Last reviewed: January 24, 1995
Article ID: Q81454
The information in this article applies to:
  • Microsoft NMAKE for MS-DOS, versions 1.11, 1.12, 1.13, 1.2, and 1.3
  • Microsoft NMAKE for OS/2, versions 1.11, 1.12, 1.13, and 1.21
  • Microsoft NMAKE Utility for Windows NT, versions 1.4 and 1.5

SUMMARY

If you use NMAKE to create an Inference Rule for a file with a nonstandard file extension (for example, an extension other than .ASM, .BAS, .C, and so forth), you must specify the extension in the .SUFFIXES list in the makefile.

MORE INFORMATION

It is sometimes necessary or desirable to compile a source file that has a nonstandard file extension. For example, you may want to store a Microsoft QuickBasic source-code file as TEST.SRC rather than the standard TEST.BAS. To compile this file with NMAKE, you must create a new inference rule for that extension. The text below is an example of an inference rule to compile a QuickBasic file with the extension .SRC that is out-of-date with respect to its target object (.OBJ) file:

   .src.obj:
      @echo Compiling Source File
      bc $<;

However, another step is required for NMAKE to recognize the .SRC filename extension. You must add the extension to the .SUFFIXES list for NMAKE to recognize the new extension. Otherwise, NMAKE ignores the compiler call without any errors. The text below demonstrates the syntax for the .SUFFIXES statement in a makefile:

   .SUFFIXES: .src

The resulting makefile would resemble the following:

.SUFFIXES: .src

.src.obj:

   @echo Compiling Source File
   bc $<;

test.obj : test.src


Additional reference words: kbinf kbinf 1.10 1.20 1.30 1.40 1.50
KBCategory: kbtool
KBSubcategory: NmakeIss


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.

Last reviewed: January 24, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.