◄Up► ◄Contents► ◄Index► ◄Back► ─────Programmer's WorkBench───────────────────────────────────────────────── After PWB creates a description block for a Build:target rule, it scans the commands in the description block for <ext>S macros. PWB uses the following algorithm to create the dependency list for the target description block and the description blocks for each dependent file. 1. When a reference to an <ext>S macro is found, look for matching files in the file list. If any such files are found, create a definition for the <ext>S_EXT macro that contains all such files. 2. Apply inference rules to create a description block for each file. Add each inferred dependent to the definition of the <ext>S macro and add the <ext>S macro to the dependency list. The definition of the <ext>S macro includes the <ext>S_EXT macro. If an inference rule is used, place the extensions in the third suffixes list and add the inference rule to the makefile. Note that PWB, like NMAKE, does not apply inference rules recursively. This means that indirect dependency is not directly supportd by NMAKE or the PWB build process. This can cause problems when using a tool that generates source files that you want to compile. You can build these kinds of projects by short-circuiting the indirect dependency. See: ◄Handling Indirect Dependency► 3. For each generated description block, add the source file to the dependency list. 4. If the source-file extension matches a Build:include rule and include dependency generation is enabled, scan for include dependencies. If an include file is found and a Build:include rule matches its extension, then recursively scan for dependencies. All matching files are added to the dependency list for the description block. See ◄Build:suffixes► ◄NMAKE .SUFFIXES Directive► -♦-