Re: make & SCCS evilness

Brendan Heading <[email protected]>
Newsgroups gmane.comp.version-control.bitkeeper.user
Message-ID <[email protected]>
Bryan O'Sullivan wrote:

Hi Bryan, I'll piggy back on your response here. Thanks everyone for 
your replies.

> Not necessarily.  GNU make knows how to do a get of SCCS files, and this
> works quite well.  If you're using some other make variant, you might
> have to specify some extra pattern rules to get this to happen, and if
> the make variant doesn't support chains of implicit rules, you're
> probably going to have to find another solution.  Then again, nobody in
> their right mind would use a non-Linux platform's native make in
> preference to GNU make, anyway :-)

I am using GNU make 3.80 so there's no problem in that regard. Sun make 
is bloody awful and anyone who uses it should be subject to summary 
court-martial. :)

It looks like I could be misunderstanding something badly as three 
people have replied to say the same thing. But I don't get how this 
works. I'm clear about automatic dependency computation using GCC and 
make together. That part isn't the problem. My question is, how does it 
work when you've got nested dependencies that make can't see ? It works 
fine so long as your include files don't bring in other include files.

eg. if I have a rule covering three sources in a repo, checked in:

foo.o : foo.c foo.h bar.h
	<etc>

It's obvious how that works as make can clearly see the dependencies and 
it can go and check them out - which it does beautifully.

But say bar.h is included by foo.h, not directly by foo.c. Using 
dependency computation, the computation rule described in earlier mails 
goes to gcc -M to get it to work out the depends, and does not check out 
any include files at all. gcc -M comes along, reads foo.c and adds foo.h 
to the list. Then it tries to parse foo.h to see what other headers are 
required, and fails, because it can't see foo.h since it was never 
checked out by make. Nobody will ever know anything about any files 
included in turn by foo.h or bar.h since nobody has been able to parse it.

Hit me over the head with a 2x4 if I'm missing something obvious, but 
shirley for this to work gcc -M would have to have the smarts to be able 
to check out the SCCS files first. Either that, or it would have to 
communicate with make to tell it to do it, and I'm pretty sure that does 
not happen.

I'm working away with BK in bk "get" mode at the moment anyway, and it 
looks like it may suit fine, takes only 30 seconds to extract ~2500 
files (some of them binaries) from a repo I've tried on my XP box, a lot 
less time than I expected. This isn't hugely painful, but it would be 
nice to do it transparently with make.

-- 
Brendan Heading, Belfast, Northern Ireland
_______________________________________________
Bitkeeper-users mailing list
[email protected]
http://bitmover.com/mailman/listinfo/bitkeeper-users
To unsubscribe from this list, go to the above URL, follow instruction at the bottom of the web page.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.