PBMake 2.16 for Clipper, Xbase++, C and ASM

GNU RCS Version Control Support:

PBMake now includes Revision Control Awareness!
How do I use PBMake with an RCS system?
How does PBMake look into the RCS system?


PBMake now includes Revision Control Awareness!

If you use a Revision (or Version) Control System (RCS/VCS) for your projects then PBMake can be made aware of the 'checked in' location of your source files, libraries and include files. To set up PBMake to be aware of your revision control system, the command required to check-out a file, and the command required to clean up the temporarily checked out file must be added to your PBMake .MAK script. PBMake has been tested with dosRCS, the free revision control system which is managed by the GNU project team. If you've not yet seen dosRCS or you are not currently using an RCS system to manage your source code, then point yourself to :- ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/devtools/rcs57pc1.zip ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/devtools/rcs57pc2.zip

How do I use PBMake with an RCS system?

The first thing to do is to switch on RCS checking in PBMake. This is achieved by adding the RCSCHECKOUT directive in your make file. RCSCHECKOUT=co -M This directive switches on RCS checking, and also tells PBMake how to check out a source file from RCS if it doesn't exist in the current directory. If a SOURCE, INCLUDE or LIBRARY file already exists, PBMake will continue normally. If the source file doesn't exist then the RCS checking kicks in. After adding the RCSCHECKOUT directive you need to add the RCSTIDYUP directive, this directive tells PBMake how to delete the files that had to be checked out in order to continue with the make. RCSTIDYUP=rm -f Remember, most RCS systems check out files with the READONLY file attribute set ... so you must use a DELETE function that can delete READONLY files. I use the GNU clone of the Unix program 'rm', which has the -f flag to force the delete. MS/DOS 6 -> allow you to use DEL /F, to force the delete. Once you've added the RCSCHECKOUT directive and the RCSTIDYUP directive, your PBMake script is RCS aware. This means that if PBMake looks in your source directory for (which could also be a library or include file) and it is not found there, then PBMake will begin to look for <sourcefile> within the RCS system, and will check it out if necessary.

How does PBMake look into the RCS system?

If the <sourcefile> in question exists in the current directory, then it is used, and RCS is not called into play. If <sourcefile> is still unresolved, and you have a child subdirectory in your source directory named RCS, then that directory will be searched for <sourcefile>. If <sourcefile> is found there, it is checked out and used. If <sourcefile> is still unresolved, and you have a file named RCS in your source directory, then that file should contain the full drive and directory of where the RCS files are stored. This 'pointed to' directory is then searched for <sourcefile>. If <sourcefile> is found there, it is checked out and used. If <sourcefile> is still unresolved, the RCSDIR environment directive is checked. If the RCSDIR environment variable exists, the directory it points to is searched for the file. If <sourcefile> is found there, it is checked out and used. If <sourcefile> is still unresolved, then it is reported as missing.