Programmer's WorkBench (pwb.hlp) (Table of Contents; Topic list)
Generating Dependents
                                             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
                                    -♦-