Boost logo

Boost-Build :

Subject: [Boost-build] Building library with flex/bison inputs with dependencies
From: Jim Hague (jim.hague_at_[hidden])
Date: 2015-12-01 11:16:13


Hi all,

I'm building a project with includes the following library rule:

lib e2kmapparse
    : e2kmapyacc.yy e2kmaplex.ll
      /liblogging//liblogging
    : <link>static
      <bison.prefix>map
      <flex.prefix>map
      <include>.
    ;

As it not usual, e2kmaplex.ll includes a header defining token values
generated by e2kmapyacc.yy. In other words, e2kmaplex.ll starts thus:

%{
#include <cstdlib>
#include <cstring>

#include "e2kmapyacc.hpp"
%}

But it looks like the CPP file output by flex is not scanned for include
dependencies before compiling; so on random -j builds, GCC will be launched
long before Bison is run on e2kmapyacc.yy, with unhappy results.

What's the best way I can ensure that the output from flex is scanned for
include dependencies?

I am using bjam version 2011.12.1.

Thanks.

(I've found pretty much this query in the list archives from 2010, but it
didn't seem to lead to a firm conclusion).

-- 
Jim Hague - jim.hague_at_[hidden]          Never trust a computer you can't lift.

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