SCCS and RCS

Charles LaBrec crl at pur-phy.UUCP
Tue Jul 31 14:37:33 AEST 1984


Well, I guess I can let the cat out of the bag now.  We run RCS here on
a PDP-11/44 running 2.8 BSD, and we immediated noted the problems using
RCS with make.  I therefore undertook the project of improving make.
As of this date, the software has been given to the USENIX tape people,
so please refrain from asking me for a copy--they do a much better job
at redistributing licensed code than I could do.  It has been tested
on 2.8 BSD, 4.1, 4.1c, and 4.2, and seems to be bug free (well, I think
so, at least).  Here's how it works:

Two modes were added to make, auto-checkout and auto-delete.  By default,
both of these are on.  When make looks up a file, say "foo.h", if it
doesn't exist and auto-checkout is on, it looks in "RCS/" first and then
"." for a "foo.h,v".  If it finds one, it remembers the fact that the
file is in RCS and uses the mtime of the RCS file as the mtime of the
(non-existent) working file.  If at some time it needs to invoke a rule
that depends on this working file, it invokes the rule ".CO:" which
is usually "co -q $@", for every working file that does not already exist.
Furthermore, it sets the mtime of the checked out file to be equal to 
that of the RCS file.  This is important, because it means that a .h
file auto-checked out does not cause recompilation of all later objects.
If auto-delete is on, it remembers this checked out file for later
deletion.  On exit, these files are removed unless the normal ".PRECIOUS"
rule applies.

Comparing this to the Sys V make, I believe it is better because of the
games it plays with modified times.  Furthermore, it lints!  I have no
idea when the USENIX tape will be ready for distribution.

Charles LaBrec
UUCP:		pur-ee!Physics:crl, purdue!Physics:crl
INTERNET:	crl @ pur-phy.UUCP



More information about the Comp.unix.wizards mailing list