Occasionally, the commands given in a description file exceed the command-line limit of the operating system. To avoid this, NMAKE32 allows the user to generate in-line files which can be read as response files by other programs.

The syntax to generate an in-line file is:

     target: dependents
        command  <<[filename]

     <any text>
     <any text>
     .
     .
     .
     <<[KEEP | NOKEEP]

where <any text> can be text, macros, file names, predefined macros, or anything valid for the command executing.

Note: Loops are not detected.

All of the text between the two sets of double less than signs (<<) is placed into an in-line file and given the name filename. The inline file can be referred to later by using filename, providing the keep option is specified. If filename is not given, NMAKE32 gives the file a unique name in the directory specified by the TMP environment variable. This temporary file is erased after NMAKE32 has processed the command block. The in-line file can be temporary or permanent. If you do not specify otherwise, or if you specify the keyword NOKEEP, the in-line is temporary. Specify KEEP to retain the file. If the -N flag was specified, NMAKE32 will display the contents of the in-line file.

Note: Blank lines and comments are not ignored if they occur in an in-line file.

Example:

Below is a description file excerpt which shows how to create an in-line file for the link program:

     target.exe: file1.obj file2.obj file3.obj file4.obj lib1.lib lib2.lib
         ilink @<<
      $[s,"+\n",$[m,*.obj,$**]]
      $@
      $*.map
      $[s,"+",$[m,*.lib,$**]]
      ;
      <<

NMAKE32 creates a file, in this case the file name is determined at run-time, and places the following lines into it.

     file1.obj+
     file2.obj+
     file3.obj+
     file4.obj+
     target.exe
     target.map
     lib1+lib2
     ;

NMAKE32 executes the command ilink with a response file using the name determined by NMAKE32, and erases the file.


[Back] [Next]