15 messages in com.perforce.jamming[jamming] INCLUDES bug?| From | Sent On | Attachments |
|---|---|---|
| Steve Goodson | 22 Nov 2002 21:34 | |
| davi...@rcn.com | 23 Nov 2002 12:03 | |
| Matt Armstrong | 24 Nov 2002 15:35 | |
| davi...@rcn.com | 24 Nov 2002 15:41 | |
| Christopher Seiwald | 02 Dec 2002 09:11 | |
| Vladimir Prus | 03 Dec 2002 03:34 | |
| Arnt Gulbrandsen | 03 Dec 2002 04:06 | |
| Vladimir Prus | 03 Dec 2002 04:29 | |
| Vladimir Prus | 03 Dec 2002 04:49 | |
| Arnt Gulbrandsen | 03 Dec 2002 06:26 | |
| Vladimir Prus | 03 Dec 2002 09:56 | |
| Christopher Seiwald | 03 Dec 2002 10:46 | |
| Vladimir Prus | 03 Dec 2002 11:23 | |
| davi...@rcn.com | 03 Dec 2002 11:53 | |
| Christopher Seiwald | 10 Dec 2002 00:59 |
| Subject: | [jamming] INCLUDES bug?![]() |
|---|---|
| From: | Vladimir Prus (gho...@cs.msu.su) |
| Date: | 12/03/2002 03:34:53 AM |
| List: | com.perforce.jamming |
Christopher Seiwald wrote:
This INCLUDES problem is indeed a bug. It properly handles the relationship (as INCLUDES) during the dependency analysis, but treats the files as direct dependencies (like DEPENDS) during the actual build. So if an included file fails to build, it thinks it can't build the including file.
This is rarely a problem with normal source files including others, but still deserves to be fixed. I'm toying with two possible fixes, one that is a fairly light bandaide and another that is a deeper reworking of INCLUDES handling. If I'm happy with either of them, I'll put the attempt in my path in the public depot.
Christopher, I've a related issue.
Suppose that there are two generated files a.cpp and b.h, and a.cpp includes b.h. Naturally, I'd like b.h to be generated before a.cpp is compiled.
Jambase accomplised this using the "first" target:
DEPENDS all : first ... ; DEPENDS first : b.h ;
But this is not 100% satisfactory. If you add "-j" option to the command line, correct building order is not guaranteed, and this is indeed a problem for me.
An optimal solution would be to run 'headers' on generated targets *after* they are generated. This will not change fate of any target, only adjust build order. I even started to implementing this for Boost.Jam, but realized that separate handling of INCLUDES and DEPENDS is needed, as you say above.
Is there any appoximate date when you'll make the change?
- Volodya
P.S. In fact, while we can run 'headers' after file is generated, we can't easily avoid running 'headers' in make0 on files that would be generated. So, there will be two invocations. But since it's for generated cpp files only, it's not very important.




