A pseudotarget is a target in a description block that is not a file. It is a name that serves as a handle for building a group of files or executing a command block. There are two types of pseudotargets recognized by NMAKE32, predefined and user defined.
Predefined pseudotargets start with a period (.) and are used to control NMAKE32 processing characteristics. NMAKE32 provided pseudotargets and function follow:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³.IGNORE: [targets] ³Tells NMAKE32 to ignore return codes from ³ ³ ³invoked commands. Same function as /i option ³ ³ ³on the command line. If specified with ³ ³ ³targets, only return codes of those targets ³ ³ ³are ignored. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.MAKEINIT: [command] ³The commands of this target are executed just³ ³ ³before the first real target is examined ³ ³ ³(after the command line and the description ³ ³ ³file have been processed). ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.INIT: [command] ³The commands of this target are executed just³ ³ ³before the first real target is built (just ³ ³ ³before the first user command is invoked). ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.MAKEDEINIT: [command] ³The commands of this target are executed just³ ³ ³before NMAKE32 terminates. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.DEINIT: [command] ³The commands of this target are executed just³ ³ ³before the commands of the .MAKEDEINIT: ³ ³ ³target are executed, but only if the commands³ ³ ³of the .INIT: target and at least one user ³ ³ ³command have been executed. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.RECHECK: ³Instructs NMAKE32 to recheck the date, time ³ ³ ³and path of each target (the check occurs ³ ³ ³after all commands for that target have been ³ ³ ³executed). ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.NORECHECK: ³Instructs NMAKE32 to not recheck the date, ³ ³ ³time and path of each target. This is the ³ ³ ³default behavior. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.PRECIOUS: [targets] ³Instructs NMAKE32 not to delete the targets ³ ³ ³if the command completes with a nonzero ³ ³ ³return code. If specified with targets, ³ ³ ³only those targets are saved for nonzero ³ ³ ³return codes. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.SILENT: ³Instructs NMAKE32 not to echo commands. Same ³ ³ ³function as /s option on the command line. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³.SUFFIXES: [exts] ³Used to change the defined extensions that ³ ³ ³NMAKE32 recognizes for inference rule ³ ³ ³processing. If specified without extensions, ³ ³ ³resets the defined extensions to null. If ³ ³ ³followed by extensions, these are added to ³ ³ ³the defined recognized extensions. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Example:
# Example of .SUFFIXES and .PRECIOUS .sav.exe: -copy keep.sav keepthis.exe .SUFFIXES: # This set .SUFFIXES to null .SUFFIXES: .sav .exe # These two extensions can be used # in inference rules .PRECIOUS: keepthis.exe # This protects keepthis.exe from # being deleted keepthis.exe :keep.sav # Inference rule will be used here
User defined pseudotargets are used when you wish to invoke a block of commands without having them associated to a target. This would allow you to invoke the block of commands either from the command line by specifying the pseudotarget name, or from the description file via a dependency. (The commands for a pseudotarget without dependencies are always executed.)
Example:
ALWAYS: @echo These commands will always execute if you @echo specify the pseudotarget ALWAYS on the NMAKE32 @echo invocation, or you run a description file where @echo ALWAYS appears as a dependent, or the only target @echo in the description file. There is no actual @echo file named ALWAYS.