Boost logo

Boost-Build :

Subject: Re: [Boost-build] Problem with Install Rule
From: William Marié (william.marie_at_[hidden])
Date: 2008-10-21 06:56:37


Hi Vladimir,

Thanks for your help because this problem is really annoying because
those causes our whole project to recompile entirely every time.

I'm using the 1.36 bjam version for the following tests.

At first i remove the boost/bin.v2 directory, i run bjam like i
explained earlier :
- the boost_system and boost_filesystem libraries are built
- the boost_system and boost_filesystem libraries are installed

If after that i run bjam again, the libraries are never recompiled ( the
date of the dll files doesn't change )
but bjam keeps installing the same dll file : boost_system ( either the
installed file is present or not )

So i tried several things :

*- removing only boost/system install fixes the problem*

use-project boost : ../source/trunk/libs/boost ;

# Project Configuration
project
    : build-dir build
    : requirements
        <include>.
        <dependency>/boost/system/<link>shared
        <dependency>/boost/filesystem/<link>shared
       
    : source-location
        .
    ;
   
install filesystem : /boost/filesystem :
                            <location>.
                            <install-type>SHARED_LIB
                            ;
lib test : main.cpp ;

*- removing only boost/filesystem install doesn't fix the problem*
use-project boost : ../source/trunk/libs/boost ;

# Project Configuration
project
    : build-dir build
    : requirements
        <include>.
        <dependency>/boost/system/<link>shared
        <dependency>/boost/filesystem/<link>shared
       
    : source-location
        .
    ;
   
install system : /boost/system :
                            <location>.
                            <install-type>SHARED_LIB
                            ;
                           

lib test : main.cpp ;

*- removing only boost/filesystem dependency fixes the problem*
use-project boost : ../source/trunk/libs/boost ;

# Project Configuration
project
    : build-dir build
    : requirements
        <include>.
        <dependency>/boost/system/<link>shared
       
    : source-location
        .
    ;
   
install system : /boost/system :
                            <location>.
                            <install-type>SHARED_LIB
                            ;
                           
install filesystem : /boost/filesystem :
                            <location>.
                            <install-type>SHARED_LIB
                            ;

lib test : main.cpp ;
*- removing only boost/system dependency doesn't fix the problem*
use-project boost : ../source/trunk/libs/boost ;

# Project Configuration
project
    : build-dir build
    : requirements
        <include>.
        <dependency>/boost/filesystem/<link>shared
       
    : source-location
        .
    ;
   
install system : /boost/system :
                            <location>.
                            <install-type>SHARED_LIB
                            ;
                           
install filesystem : /boost/filesystem :
                            <location>.
                            <install-type>SHARED_LIB
                            ;

lib test : main.cpp ;

What i found really weird is the fact that if i remove the
boost_filesystem dependency the problem disappear, is there a link
between both libraries somewhere ?

I joined my test directory and the output of a bjam -d+12 on my computer.

Thanks a lot
-----------------------------------------------------------------------------------------------------------------------

Vladimir Prus a écrit :
> On Tuesday 21 October 2008 13:22:05 William Marié wrote:
>
>> Hi,
>>
>> I have a problem with a really simple code, bjam keeps installing targets
>> even if they are up to date :
>>
>> Here are the files i'm using :
>>
>> boost-build.jam
>> boost-build ../source/trunk/libs/boost/tools/build/v2/kernel ;
>>
>>
>> Jamroot
>> use-project boost : ../source/trunk/libs/boost ;
>>
>> # Project Configuration
>> project
>> : build-dir build
>> : requirements
>> <include>.
>> <dependency>/boost/system/<link>shared
>> <dependency>/boost/filesystem/<link>shared
>>
>> : source-location
>> .
>> ;
>>
>> install system : /boost/system :
>> <location>.
>>
>> <install-type>SHARED_LIB
>> ;
>>
>> install filesystem : /boost/filesystem :
>> <location>.
>>
>> <install-type>SHARED_LIB
>> ;
>>
>> lib test : main.cpp ;
>>
>>
>> main.cpp
>> void main(int argc, char** argv )
>> {
>>
>> }
>>
>>
>> I'm using the actual boost trunk.
>>
>> if you try to run bjam with these files it will always re-install
>> boost-system, and then relink test.dll
>>
>> Can someone tell me if this behavior is normal and what do i have to do to
>> make it work properly ?
>>
>
> I don't get this behaviour, but I'm on linux. Does removing either filesystem,
> or system, from Jamfile still exposes the problem? I would like to find a
> minimal project. Can you add -d+12 option to bjam invocation that should do
> nothing, but installs those extra files and post it? What version of bjam
> are you using? What are the timestamps of the boost.system library that is
> installed, and the one that is built?
>
> - Volodya
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
>





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