Modify File-Specification Macros

A full file specification gives the base name of the file, the file-name extension, and the path. The path provides the disk-drive identifier and the sequence of directories needed to locate the file on the disk.

For example, the file specification:

C:\SOURCE\PROG\SORT.OBJ

has the following parts:

Path Name               C:\SOURCE\PROG
Base File Name          SORT
File-Name Extension     .OBJ

Characters That Modify File Specification Macros
The following six macros all resolve to a file specification (or possibly several file specifications for $** and $?):

$*       $@        $**       $<         $?         $$@

You can append characters to any of these macros to modify the file name returned by the macro. Depending on which character you use, parts of the full file specification are returned:

                                  Appended Character
File Part Returned D F B R
File Path Yes No No Yes
Base File Name No Yes Yes Yes
File Name Extension No Yes No No

File Specification Macros Example

If the macro $@ has the value

C:\SOURCE\PROG\SORT.OBJ

then:

Macro   Returns:
$(@D)   C:\SOURCE\PROG
$(@F)   SORT.OBJ
$(@B)   SORT
$(@R)   C:\SOURCE\PROG\SORT

Note: Modified macros are always longer than a single character -- they must be enclosed by parentheses. The only exceptions to this rule are the predefined macros $** and $$@.



Make Utility Macros


Define a Make Utility Macro


Predefined Make Utility Macros