
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?