Boost logo

Boost-Build :

Subject: [Boost-build] Building projects that need generated header files from other projects ?
From: Meindert Oldenburger (meindert66_at_[hidden])
Date: 2011-06-01 11:03:53


First of all i try to replace the current makefile system with bjam
Jamfiles. The code base has around 330 makefiles and these makefiles are
configured for 3 platforms (windows, AIX and Linux). In several projects,
source code is generated, what is needed for other projects as well.

All seems to work, except if source and header files are generated by
flex/bison and are needed for other projects, then the compilation, and I,
are confused.

Example, there lot more of these dependencies.


Initially i'm building an executable "econf" that needs a library "cfm"
build-project appl ;

Jamfile econf:
exe econf
: ;

Jamfile cfm:
import lex ;
using bison ;
lib scanner_expr : scanner.l expr.y : <link>static <include>. ;
lib cfm
        [ glob *.c : chownnt.c ]

The following error appears after building from $(TOP):
...found 2218 targets...
...updating 16 targets...
gcc.compile.c build/cfm/gcc-4.5.3/debug/link-static/cfmparse.o
cfm/cfmparse.c:239:18: fatal error: expr.h: No such file or directory
compilation terminated.

    "g++" -x c -O0 -fno-inline -Wall -pedantic -g -DDLLEXP= -DDLLIMP=
-I"/usr/include/libxml2" -I"/usr/local/include/zlib" -I"build" -I"include"
-I"include/msg" -I"rtl/include" -c -o
"build/cfm/gcc-4.5.3/debug/link-static/cfmparse.o" "cfm/cfmparse.c"

It seems target scanner_expr is not build and there is no compile include:
-I"build/cfm/gcc-4.5.3/debug/link-static" for the expr.h .

I'm lost within the implicit-dependency configuration. How should i do this
My idea about bjam is that you could everywhere start your build process, is
this right ?


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at