Programmer's WorkBench (pwb.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
How PWB Creates a Project Makefile
                                             Up Contents Index Back
─────Programmer's WorkBench─────────────────────────────────────────────────
 
     PWB creates a project makefile by applying the current set of build
     rules (the project template) to the project file list. PWB
     regenerates the makefile each time you choose Save List in the Edit
     Project dialog box.
 
     PWB uses the following algorithm to create a PWB makefile:
 
       1. Create macro definitions for every Build:macro rule.
 
       2. Create a definition for the FILES macro. This macro contains
          the project file list that you specify in the Edit Project
          dialog box.
 
       3. Apply the Build:all rule to create the 'all' pseudotarget.
 
       4. Apply the Build:suffixes rule to create the first two of three
          .SUFFIXES directives in the makefile. The first directive
          clears the predefined NMAKE suffixes list.
 
       5. For each target listed in the Build:all rule, create a
          description block using that target's Build:target rule and
          associated Build:command rules.
 
       6. For each description block, scan the commands for references
          to macro names of the form:
 
               <ext>S
 
          For each macro of this form that is found, generate
          dependencies for the description block and apply inference
          rules to create description blocks for the dependent files.
          See: Generating Dependents
 
       7. For each description block, scan the commands for references
          to macros of the form:
 
               <ext>_FILE
 
          When a reference to an <ext>_FILE macro is found, look for a
          single file with the specified extension in the file list. If
          the file is found, create a definition for the <ext>_FILE
          macro that contains the name of that file and add the macro to
          the dependency list.
 
          If more than one such file is found, generate the message:
 
               Multiple <ext> files - only one is allowed
 
          and use only the first file in the list.
 
       8. Add the description block for the run and debug pseudotargets.
 
       9. If any files in the list are not used in any of the preceding
          steps, generate the message:
 
               File type not used with current project template
 
          The file remains in the file list and appears in the FILES
          macro. However, it is not a dependent for any target in the
          makefile. It not used by any part of the PWB build process.
 
     After creating the makefile, PWB creates the project status file.
     The project is now complete.
     See: Project Status File
 
     See
 
     Build:all
     Build:command
     Build:command {run │ debug} "<command_line>"
     Build:include [no] dependencies
     Build:include [no] system
     Build:suffixes
     Build:target
     Project menu, Edit Project
     User Part of a PWB Makefile
                                    -♦-