Boost logo

Boost-Build :

From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2007-03-15 13:19:49


Hi Everyone,

We've noticed some behavior with bjam where it appears to want to
rebuild some files based on changes to Jamfiles or the directories
the Jamfiles are in. Let me preface this by saying this is unrelated
to the Boost libraries, we testing bjam as a build tool for our
internal code development. Here's a simplified example: we have a
Jamroot at the top level and a Jamfile located in scms/2.04. The
Jamfile is under CVS control so the directory structure looks like this.

Jamroot
scms/2.04/Jamfile
scms/2.04/CVS/*

The source code for building scms/2.04 lives on another file system
so we know the source is not in this directory structure.

We build scms and bjam brings it up to date. We rerun the same build
command and we get the expected behavior (that everything is up to
date). Then we make some innocuous change like removing the scms/
2.04/CVS directory and we rerun the same build command. This time
bjam thinks the scms product is out of date and tries to rebuild it.
Since we know the source hasn't changed, we are left assuming that a
change to the directory modification time has been detected by bjam
and it tries to rebuild the scms/2.04 project.

Does this make any sense or has anyone seen behavior like this? Is
there anyway to tell bjam to ignore the modification times on
Jamfiles (and directories containing Jamfiles) and only depend on the
source file modification times?

Thanks.

-- Noel Belcourt


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