*BSD News Article 5131


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!spool.mu.edu!sdd.hp.com!usc!sol.ctr.columbia.edu!eff!news.byu.edu!ux1!fcom.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: Re: version control with 386bsd
Message-ID: <1992Sep16.170742.20817@fcom.cc.utah.edu>
Keywords: version control RCS CVS
Sender: news@fcom.cc.utah.edu
Organization: Weber State University  (Ogden, UT)
References: <cproto.716644144@marsh>
Date: Wed, 16 Sep 92 17:07:42 GMT
Lines: 61

In article <cproto.716644144@marsh> cproto@cs.curtin.edu.au (Computer Protocol) writes:
>
>Hi there,
>
>has anybody had success with RCS or CVS in the 386BSD context? I would
>like to take some or maybe all of 386bsd-0.1 under version control. I 
>played with both RCS and CVS. Neither seems to be very satisfactory.
>
>Take the kernel for example. If you have all kernel sources under RCS
>control then you have to either check out all sources and include files
>required for a later make or you have to add some rules to the makefile
>to check out required sources and remove them after the compilation.
>The second option doesn't work for include files or if explicit rules
>are specified for a certain target. The first option has the drawback
>that after the make you have to remove all sources and includes.
>
>Another possibility is to edit all required makefiles to do all
>individual checking out and remove all sources once they are not
>required any further. (YUCK)
>
>Note that if you check out all required sources for a large make then
>you require twice the diskspace occupied by your sources.
>
>If you use CVS you again have no option but to check out all files in
>advance before you start your make.
>
>Could it be that i'm blind and don't see the obvious solution?

The second soloution is the correct one.

Make "build" rules for .c and .h files from rcs/cvs checkout.

MAKE SURE YOU "make depend" YOUR "Makefile"S!  THIS IS THE MISSING STEP.
IF A REQUIRED FILE IS MISSING, IT WILL BE "BUILT" FROM SOURCE CODE CONTROL
EXTRACTION.  THIS INCLUDES HEADER FILES.

A MODIFIED ".o" BUILD RULE WILL AUTOMATICALLY REMOVE/CHECK-IN SOURCE FILES
IF DONE CORRECTLY.  THIS PREVENTS A NEED FOR WHOLESALE MODIFICATION OF THE
MAKEFILES.

Of course if your build procedure is "make depend", "make all", "make install",
and "make clean", in that order, you won't need to modify the ".o" building
rule, and will have at most one directory of .o files at a time.  This
implies that "make install" does a "touch" of an indicator file, which is
used as the initial target dependency to allow skipping building unless the
controlled sources have changed and post-date the last build.

Personally, I'd use Imake and a modified Project template and rules file.


					Terry Lambert
					terry_lambert@gateway.novell.com
					terry@icarus.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------