Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-10-05 08:13:55

krda79 wrote:

> > 2. Run "bjam --v2 -d+5". That will produce a long output. Find the last
> > invocation of the GLOB function, and tell me the parameters. The
> question is
> > whether V2 passes wrong argument to GLOB, or GLOB is broken on OS/2.
> The last invocation of GLOB has the parameter
> 'libs\filesystem\build\convenience.cpp'.
> Here I copied the part of exception.cpp which fails with the
> resolvation of the target-id.
> /CD/BackupCD/Programming/boost_cvs/boost/tools/build/v2/util\path.jam:198:>
> >>>|>>>>|>>>>|>>>>|>>>>|>> GLOB libs\filesystem\build\exception.cpp :
> [Jj]amfile
> .v2

This does not seem to be the right part of trace. Let me explain the logic
behind all this, so that you can debug the problem.

The 'find' rule in 'targets.jam' returns a target given it's id. It does
several checks an the last one is creation of 'file-reference' object and
asking it if the file really exists. This is what matters for real files, and
for some reason does not work.

You can add debug prints both in the place where 'file-reference' is created:

ECHO "Creating file-reference" [ path.make $(target-part) ] ;

and at the place where file-reference checks if the file exists

ECHO "Location" $(location) ;

and finally in path.exists and path.glob.

I think somewhere along the way, the path is getting corrupt, and if you add
the prints it will be obvious where.

> What does the GLOB function?

It seaches a directory using specified pattern. We use it to see if a file

> While compiling BJAM.EXE again I found a problem which maybe is the
> cause. JAM0.exe says: 'don't know how to make modules/set.c'. As a
> work-around I replaced the slashs in 'jam.source = [...] modules/set.c
> [...]' in build.jam with backslashs.

This means OS/2 does not understand forward slashes. In theory, by the time
path is passes to GLOB, it should use backslashes.

- Volodya


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