You bet! And it is a very smart mechanism, indeed.
First, PBInit checks to see if the .MAK name you are about to create
already exists. If it does, you can abort, refresh it, or delete it
and start a new one.
Next, PBInit scans for .LNK files in the current directory. If it
finds more than one, you must choose one. If there is only one, PBInit
continues without prompting.
Once PBInit has determined which link file you are going to use, it
opens it and reads it into memory. As it reads it in, it seperates it
into categories, such as source references and library references and
lines that have no bearing on .MAK script creation.
After PBInit has determined all of the source files which were pointed
to in the .LNK file you are using as a template, each source file is
opened and completely scanned for #INCLUDE references. Now, PBInit has
built three sets of files. The SOURCE set, the LIB set and the INCLUDE
set.
At this point, PBInit uses the CLIPPER compiler on each source module,
trying different flag combinations from the most difficult to the most
forgiving. Each file in the SOURCE set is subcategorized according to
these flag combinations. Here is the list of FLAG= testing.
/N is tested to see if you need it.
Then, in the following order (with or without the /N flag as
determined in the previous step)
/M /W /ES2
/M /W /A /ES2
/M /W /V /ES2
/M /W /A /V /ES2
/M /ES2
/M
Once this process finishes, the path to each file in the INCLUDE set
and the LIB set is located.
PBInit then reads your default data from the PBMAKE.INI file, such as
the editor you have set up to jump to when an error is encountered.
Finally, with all of this information that has been collected and
determined, the .MAK file is written and you return to DOS.