[jamming] HDRGRIST

matthew conte matt at baisoku.org
Sun May 13 18:20:18 PDT 2007


I encountered a dependency issue in our build system recently. We have a 
system whereby Scheme-based object descriptions are used to generate C++ 
header files; these header files are then used to build several 
libraries and applications under a single source tree. Occasionally, 
code changes in the object descriptions would not retrigger source 
rebuilds in one particular application, leading to link errors.

Probing a littler further into this, it appears the issue was caused by 
multiple identically-named header files in different physical locations; 
in this case, the name of the file was "StdAfx.h". Different copies of 
this file in different locations had different #includes, causing only 
one of the files' dependency graphs to be bound internally in Jam for 
the name "StdAfx.h".

Briefly scanning Jambase, i found that HDRGRIST, when set, would seem to 
solve the issue. I ran some quick tests, adding a rule which set 
HDRGRIST = $(SOURCE_GRIST), piggy-backed this off of SUBDIRRULES, and it 
seemed to solve all of my problems.

So i guess my question is, why is HDRGRIST unset in Jambase? What 
horrible corner case am i creating by setting this? I can't seem to 
reason through any drawback to this addition.

Regards,
--Matt.


More information about the jamming mailing list