Boost logo

Boost-Build :

Subject: [Boost-build] <implicit-dependency> not working on Windows
From: Ian Emmons (iemmons_at_[hidden])
Date: 2008-12-19 16:23:20


I have a jam file that works on Macintosh, and I'm now porting it to
Windows. This jam file generates some header files that are
subsequently used in the compilation of a lib target. The relevant
excerpt of my jam file is as follows:

==================

lib Parliament
    : [ glob *.cpp : Utf8StaticInitGen.cpp ]
       /site-config//BerkeleyDB
       /site-config//JavaJNI
    : <include>.
       <define>BUILDING_KBCORE
       <define>PARLIAMENT_RSRC_AS_UTF16
       <define>_REENTRANT
       <threading>multi
       <implicit-dependency>parliament/generated/
com_bbn_parliament_jni_Config.h
       <implicit-dependency>parliament/generated/
com_bbn_parliament_jni_HiResTimer.h
       <implicit-dependency>parliament/generated/
com_bbn_parliament_jni_KbInstance.h
       <implicit-dependency>parliament/generated/
com_bbn_parliament_jni_StmtIterator.h
    : # default build
    : <include>.
       <define>PARLIAMENT_RSRC_AS_UTF16
       <define>_REENTRANT
       <threading>multi
    ;

explicit parliament/generated/com_bbn_parliament_jni_Config.h ;
explicit parliament/generated/com_bbn_parliament_jni_HiResTimer.h ;
explicit parliament/generated/com_bbn_parliament_jni_KbInstance.h ;
explicit parliament/generated/com_bbn_parliament_jni_StmtIterator.h ;

h parliament/generated/com_bbn_parliament_jni_Config.h :
Parliament.jar ;
h parliament/generated/com_bbn_parliament_jni_HiResTimer.h :
Parliament.jar ;
h parliament/generated/com_bbn_parliament_jni_KbInstance.h :
Parliament.jar ;
h parliament/generated/com_bbn_parliament_jni_StmtIterator.h :
Parliament.jar ;

==================

The problem I'm running into is that when bjam builds the lib target,
it does not invoke the four targets that generate the header files
first, in spite of the <implicit-dependency> declarations. However,
if I explicitly invoke bjam on those targets first, bjam correctly
builds them and a subsequent invocation of bjam on the lib target will
succeed.

Any idea why the <implicit-dependency> declarations on the lib target
aren't working?

Thanks,

Ian


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk