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.