Boost logo

Boost-Build :

From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2004-11-26 11:54:47


Vladimir,

I'm pretty sure you added the <parallelism> feature example after a
similar question from me;-) Only now I start to really understand the
power of this and how to do it. So I tried it but bjam tells me that I
have a recursivity problem and have no idea why.

I isolated the problem in a small test-case. Attached are the project
sources (3 files with each one function), my user-config.jam and the
error message.

Thanks for any help in advance.

toon
 --------------090800050503070203050009 Content-Type: application/octet-stream;
name="bjam_test.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="bjam_test.tgz"

[Attachment content not displayed.] --------------090800050503070203050009 Content-Type: text/plain;
name="bjam_error.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="bjam_error.txt"

poisson:/home/tk/tmp/bjam_test >bjam
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:321: in start-building from module targets
error: Recursion in main target references
error: the following target are being built currently:
error: ./libfoo /libmpi /mpiheaders /libmpi
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:508: in object(main-target)@3.generate from module object(main-target)@3
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:750: in targets.generate-from-reference from module targets
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:965: in generate-dependencies from module object(alias-target-class)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:997: in object(alias-target-class)@1.generate from module object(alias-target-class)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:546: in generate-really from module object(main-target)@2
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:519: in object(main-target)@2.generate from module object(main-target)@2
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:750: in targets.generate-from-reference from module targets
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:965: in generate-dependencies from module object(lib-target-class)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:1000: in object(lib-target-class)@1.generate from module object(lib-target-class)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:546: in generate-really from module object(main-target)@3
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:519: in object(main-target)@3.generate from module object(main-target)@3
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:750: in targets.generate-from-reference from module targets
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:965: in generate-dependencies from module object(lib-target-class)@21
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:997: in object(lib-target-class)@21.generate from module object(lib-target-class)@21
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:546: in generate-really from module object(main-target)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:519: in object(main-target)@1.generate from module object(main-target)@1
/home/tk/cvstop/boost/tools/build/v2/build/targets.jam:203: in object(project-target)@2.generate from module object(project-target)@2
/home/tk/cvstop/boost/tools/build/v2/build-system.jam:160: in load from module build-system
/home/tk/cvstop/boost/tools/build/v2/kernel/modules.jam:259: in import from module modules
/home/tk/cvstop/boost/tools/build/v2/kernel/bootstrap.jam:120: in boost-build from module
/home/tk/tmp/bjam_test/boost-build.jam:1: in module scope from module

 --------------090800050503070203050009 Content-Type: text/plain;
name="user-config.jam"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="user-config.jam"

# Use the gcc compiler by default.
# Multiple compilers can be used and thus several 'using' statements
# may be added to user-config.jam. In this case all 'used' compilers
# will be used to build the requested targets unless a specific compiler
# is specified on the command-line
using gcc ;
using gfortran ;

# Create a local variable that contains all the
# following macro-definition that will be passed to the compiler
MPI_DEFINES = USE_STDARG HAVE_STDLIB_H=1 HAVE_STRING_H=1 HAVE_UNISTD_H=1 HAVE_STDARG_H=1 USE_STDARG=1 MALLOC_RET_VOID=1 ;

# some boiler-plate so that all targets specified in this file
# can be reference from anywhere using the syntax /user-config//<some target>
import project ;
project.initialize $(__name__) ;
project user-config ;

# Define a target that specifies the header-only MPI project.
# This is a header-only project because the corresponding sources
# can be the real or the fake-mpi lib.
alias mpiheaders
: # sources
: # requirements
: # default-build
: <define>$(MPI_DEFINES)
<include>/usr/local/mpich-1.2.5.2/include
;

# Define the real-mpi library target
lib libmpi
: # sources
mpiheaders
: # requirements
<file>/usr/local/mpich-1.2.5.2/lib/libmpich.a
: # default-build
: # usage-requirements
<use>/user-config//mpiheaders/<parallelism>none
;

lib libf2c
: # sources
: # requirements
<name>g2c
: # default-build
: # usage-requirements
;

lib libatlas
: # sources
: # requirement
<file>/usr/local/lib/libatlas.a
: # default-build
: # usage-requirement
;

lib libf77atlas
: # sources
/user-config//libatlas # dependent on atlas kernel
: # requirement
<file>/usr/local/lib/libf77blas.a
: # default-build
: # usage-requirement
;

lib libcatlas
: # sources
/user-config//libatlas # dependent on atlas kernel
: # requirement
<file>/usr/local/lib/libcblas.a
: # default-build
: # usage-requirement
;

# Define the BLAS library target
alias libblas
: # sources
/user-config//libf77atlas
: # requirements
: # default-build
: # usage-requirements
;

# Define the netlib LAPACK library
lib liblapack_netlib
: # sources
/user-config//libf2c
: # requirements
<file>/usr/lib/liblapack.a
: # default-build
: # usage-requirements
;

# Define the LAPACK library target
lib liblapack_atlas
: # sources
/user-config//libcatlas
/user-config//liblapack_netlib # dep to make sure lapack-atlas before lapack-netlib on link-line
: # requirements
<file>/usr/local/lib/liblapack_atlas.a
: # default-build
: # usage-requirements
;

alias liblapack
: # sources
/user-config//liblapack_atlas
/user-config//liblapack_netlib
: # requirements
: # default-build
: # usage-requirements
;

lib libslatec : : <file>/usr/local/lib/libslatec.a ;

# Define the SuperLU library target
lib libsuperlu
: # sources
: # req
<file>/usr/local/SuperLU_3.0/libsuperlu_linux.a
: # default-build
: # usage-req
<include>/usr/local/SuperLU_3.0
;

# Define the METIS library target
lib libmetis
: # sources
: # req
<file>/usr/local/metis-4.0/libmetis.a
: # default-build
: # usage-req
<include>/usr/local/metis-4.0/Lib
;

lib libhmlib
:
: <file>/home/tk/cvstop/hypermesh/lib/linux/libhmlib.a
:
: <include>/home/tk/cvstop/hypermesh/include/linux
;

lib libhmreslib
: /user-config//libhmlib
: <file>/home/tk/cvstop/hypermesh/lib/linux/libhmreslib.a
:
: <include>/home/tk/cvstop/hypermesh/include/linux
;

lib libhmmodlib
: /user-config//libhmreslib
: <file>/home/tk/cvstop/hypermesh/lib/linux/libhmmodlib.a
:
: <include>/home/tk/cvstop/hypermesh/include/linux
;

lib libpython
:
: <file>/usr/local/python-2.3.4/lib/python2.3/config/libpython2.3.a
:
: <include>/usr/local/python-2.3.4/include/python2.3
;

lib libz : : <file>/usr/lib/libz.a ;
lib libjpeg : /user-config//libz : <file>/usr/lib/libjpeg.a ;
lib libdf : /user-config//libjpeg : <file>/usr/local/lib/libdf.a ;
lib libmfhdf : /user-config//libdf : <file>/usr/local/lib/libmfhdf.a ;

alias libhdf
: /user-config//libmfhdf
:
:
: <include>/usr/local/include
;

lib libflexlm_new
:
: <file>/usr/local/flexlm/v9.2/i86_r6-icc/liblm_new.a
;

lib libflexlmgr
: /user-config//libflexlm_new
: <file>/usr/local/flexlm/v9.2/i86_r6-icc/liblmgr.a
;

alias libflexlm
: /user-config//libflexlmgr
:
:
: <include>/usr/local/flexlm/v9.2/machind
;

 --------------090800050503070203050009--


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