Dependancies |
If you know what a make file does then this is basically the functionality PPWIZARD is trying to supply. Once you have built your output files you don't need to rebuild them unless you modify one of your source files. PPWIZARD actually does a very much better job than any make-file-based process.
Let's consider a very complicated example where:
The whole process might take a while. You really only want to preprocess the above 3 input files to produce the 2 output files if you need to. PPWIZARD stores information in a dependancy file for each compile which will allow it to check whether a build is required or not. It will detect if any input or output files have changed or if they are missing and begin to rebuild the output.
To conditionally make your ".IT" files you could use:
ppwizard *.it /output:out\*.htm /CrLf /DependsOn:Depends\*.*.dep
This command says to make "*.IT" and put all output into the "OUT" directory and creates a "DEPENDS" directory and places dependancy information in this directory.
Most dependancies can be handled by the preprocessor but sometimes you need to help identify the input and output files. For example, you probably used a REXX linein() command to read from "CONFIG.SYS", you will need to use the #DependsOn command to indicate this one. In a similar manner, the example generates 2 output files; if you used the REXX lineout() command to create these then you would again need to use the #DependsOn command to indicate this output dependancy.
You might wish to have a look at these switches:
Note that you can use the HOOK_DEPENDSON macro to add to or filter the information written to the dependancy file.