Boost C++ Libraries: Ticket #10248: Understanding generated files / targets. https://svn.boost.org/trac10/ticket/10248 <p> Attached is a .zip file containing a detailed Jamroot attempting to understand how generated files and dependency analysis work. There are a few points that are not clear to me, so I hope someone can take a look and see of any of these behaviors are actually bugs. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10248 Trac 1.4.3 tabsoftwareconsulting@… Sun, 27 Jul 2014 18:42:34 GMT attachment set https://svn.boost.org/trac10/ticket/10248 https://svn.boost.org/trac10/ticket/10248 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost-build-generated-targets.zip</span> </li> </ul> <p> Boost.Build project showing usages and potential? issues. </p> Ticket Steven Watanabe Fri, 27 Feb 2015 01:38:18 GMT <link>https://svn.boost.org/trac10/ticket/10248#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10248#comment:1</guid> <description> <ul><li>t1: Boost.Build assumes that if a target is updated, all dependent targets must be updated. It does not recheck the timestamp after building a target to determine whether it really changed. Instead of always-generate-main, you can use the print module, which will only update the target when its contents change. </li></ul><ul><li>t2: Boost.Build ignores t2.hpp because there's no rule for building an exe from a header. You really do need &lt;implicit-dependency&gt; for this. &lt;implicit-dependency&gt; does two things for you. It forces the jam target for t2.hpp to be generated, so that t2.hpp can be found by the #include scanner, and it also adds an appropriate -I directive to the compile command line. Remember that Boost.Build will put t2.hpp in some directory under bin/ </li></ul><ul><li>t5: The reason that it doesn't relink is that there is no #include &lt;t5.hpp&gt;. &lt;implicit-dependency&gt; doesn't set up an actual dependency. It only says that there's a possible dependency which should be found by scanning the source. If you want an unconditional dependency, then use the &lt;dependency&gt; feature instead. </li></ul> </description> <category>Ticket</category> </item> </channel> </rss>