Boost logo

Boost-Build :

From: klapshin (klapshin_at_[hidden])
Date: 2003-06-17 23:04:15


--- In jamboost_at_[hidden], Vladimir Prus <ghost_at_c...> wrote:
> The first preview of the next milestone release is available at

Works fine. However there are some bogus boost-build.jam files lying
around, still pointing to 'new' (not 'kernel') dir. Namely one in the
root of boost-build and the other in 'new' subfolder, maybe there are
more.

Also examples still use old target ids.

I've got couple of questions, not really related to this milestone
though.

1. In hello example we've got an example of nifty symlink rule. It
works well, however if you do 'bjam release' both debug and relase
version would be compiled.
Attempt to do 'bjam hello_release' fails with

------
warning: target id 'hello_release' uses deprecated syntax,
warning: which may be removed in a future version.
warning: reference is made from .
/cygdrive/d/work/quanti/boost-build/build-system.jam:170: in load
rule object(file-target)@1.generate unknown in module build-system.
/cygdrive/d/work/quanti/boost-build/examples-v2/..
/kernel/modules.jam:296:
in im
port
/cygdrive/d/work/quanti/boost-build/examples-v2/..
/kernel/bootstrap.jam:122:
in
boost-build
/cygdrive/d/work/quanti/boost-build/examples-v2/boost-build.jam:2: in
module scope
-----

'bjam hello release' obviously will just build but not link.

Is there way to build and symlink particular variant?

2. site-config, user-config.
I need to specify certain external libraries in site-config. There is
no other way (the library in question is ATLAS and directory name with
binaries differ from system to system).
So I thought Ok, I will use site-config.jam for that. It's a pity that
I can't put it into my project root, I end up trying to modify one in
boost_build_path, but even there I had no luck.

I created following site-config.jam (the same code works fine in
Jamfile):

ATLAS_DIR ?= /cygdrive/d/work/quanti/libs/ATLAS_3_4_1/ ; #should have
trailing slash
ATLAS_ARCH ?= WinNT_ATHLONSSE1_1 ;

lib atlas_cblas
:
: <file>$(ATLAS_DIR)lib/$(ATLAS_ARCH)/libcblas.a
;

lib atlas
:
: <file>$(ATLAS_DIR)lib/$(ATLAS_ARCH)/libatlas.a
:
: <include>$(ATLAS_DIR)include <library>atlas_cblas
;

and here is what I've got:
-----
/cygdrive/d/work/quanti/boost-build/new/project.jam:519: in
project.attribute
warning: rulename $($(project).attributes).get expands to empty string
/cygdrive/d/work/quanti/boost-build/new/targets.jam:936: in
targets.main-target-
requirements
/cygdrive/d/work/quanti/boost-build/new/type.jam:238: in lib
/cygdrive/d/work/quanti/boost-build/new/site-config.jam:6: in
modules.load
/cygdrive/d/work/quanti/boost-build/build-system.jam:54: in load
/cygdrive/d/work/quanti/boost-build/kernel/modules.jam:296: in import
/cygdrive/d/work/quanti/boost-build/kernel/bootstrap.jam:122: in
boost-build
/cygdrive/d/work/quanti/boost-build.jam:9: in module scope
/cygdrive/d/work/quanti/boost-build/new/targets.jam:937: in
targets.main-target-
requirements
*** argument error
* rule property.translate-paths ( properties * : path )
* called with: (
<file>/cygdrive/d/work/quanti/libs/ATLAS_3_4_1/lib/WinNT_ATHLON
SSE1_1/libcblas.a : )
* missing argument path
/cygdrive/d/work/quanti/boost-build/new/property.jam:359:see
definition of rule
'property.translate-paths' being called
/cygdrive/d/work/quanti/boost-build/new/type.jam:238: in lib
/cygdrive/d/work/quanti/boost-build/new/site-config.jam:6: in
modules.load
/cygdrive/d/work/quanti/boost-build/build-system.jam:54: in load
/cygdrive/d/work/quanti/boost-build/kernel/modules.jam:296: in import
/cygdrive/d/work/quanti/boost-build/kernel/bootstrap.jam:122: in
boost-build
/cygdrive/d/work/quanti/boost-build.jam:9: in module scope
-----

What would be the right way to specify such site specific libraries?

TIA

--Kirill

 


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