6 messages in com.perforce.jammingAnother Newbie Jam question
FromSent OnAttachments
Olly...@scatcat.demon.co.uk25 Jul 1997 04:37 
Dian...@whistle.com30 Jul 1997 02:09 
Tony...@illustra.com30 Jul 1997 10:35 
Dian...@whistle.com30 Jul 1997 11:31 
Hunt...@eos.ncsu.edu30 Jul 1997 18:41 
Gary...@genarts.com31 Jul 1997 07:43 
Subject:Another Newbie Jam question
From:Hunt...@eos.ncsu.edu (Hunt@eos.ncsu.edu)
Date:07/30/1997 06:41:17 PM
List:com.perforce.jamming

On Fri, 25 Jul 1997, Olly Stephens wrote:

On a similar note (and from another newbie), has anyone worked out any rules for RCS? I can imagine writing a rule whereby

RcsFiles a b c d ;

Defines the dependencies (eg a depends-on RCS/a,v etc.)

I started a set long long ago, but never finished because I quit using RCS (I use PRCS now)

What it did was set the source search to the RCS directory, and setup a depends just like you had it x depends on x,v. It can get a might tricky though - it seemed much easier, if less clean, to just make sure you had the whole project checked out before you started a JAM build. (Which PRCS makes trivial).

but

a) Is there any way of doing it implicitly for all files, like make does when you say

%:: RCS/%,v $(CO) $< $@

Hmmm. [ Scans gnu make man page.] [scans gnu make info pages]

Not really. You could change the other compiling rules in jam to do this implicitly though, or you could just make sure you had a Rcs rule invocation for all the files under RCS control. (That last is probably the best way, if a might hard on the user)

b) How could you do it for Jamfiles, such that it would check out a more recent version from RCS and use that instead if it existed. I guess make has some built-in magic to handle this. [this is where the similarity with the initial question lies]

Note: That (and the syntax used in a)) are GNU make extensions. Yes, GNU make has considerable hair in it to "remake" its own makefiles, doing an implicit recursive make call to deal with it. Jam doesn't have this feature, and while it is useful for this sort of thing, I hope Christopher doesn't add it. [Its just too icky to code and forget about debugging]

Note that occasionally GNU make will get this wrong - it only works right if the makefile you want to build the current project is on the default tree in the RCS file.

Check out all files from project X, version 2.0 (old version) Miss checking out the makefile run make make doesn't see Makefile, but does see RCS/Makefile,v checks out default version of Makefile, which currently is for v3.5 Build goes insane.

Its much easier to simply make sure, outside of the build program, that the whole project is ready to go, and just have the build program build.

I hope Christopher or other jammers will correct me if I'm wrong.