◄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► -♦-