Boost logo

Boost :

Subject: Re: [boost] preprocess operation problems
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-28 13:18:19


> This can be considered a bug in the part of Boost.Build that is
> responsible for the header links, but if it is, I don't know how or
> whether it should be fixed.

Looking at tools/build/src/tools/link.jam:228:

rule do-file-link
{
    local target = [ path.native [ path.relative-to [ path.pwd ] $(<) ] ] ;
    local source = [ path.native [ path.relative-to [ path.pwd ] $(>) ] ] ;
    LOCATE on $(target) = . ;
    DEPENDS $(.current-target) : $(target) ;
    if $(.can-symlink) = true
    {
        link.mklink $(target) : $(source) ;
    }
    else if $(.can-hardlink) = true
    {
        DEPENDS $(target) : $(source) ;
        link.hardlink $(target) : $(source) ;
    }
    else
    {
        DEPENDS $(target) : $(source) ;
        common.copy $(target) : $(source) ;
    }
}

the hardlink and the copy cases introduce a dependency with DEPENDS
$(target) : $(source), and the symbolic link case does not. Maybe it should
be changed to also introduce a dependency? Anyone familiar with Boost.Build
care to comment?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk