Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r72443 - in branches/release: . tools/build/v2 tools/build/v2/build tools/build/v2/doc tools/build/v2/doc/src tools/build/v2/engine tools/build/v2/engine/boehm_gc tools/build/v2/engine/boehm_gc/Mac_files tools/build/v2/engine/boehm_gc/cord tools/build/v2/engine/boehm_gc/doc tools/build/v2/engine/boehm_gc/include tools/build/v2/engine/boehm_gc/include/private tools/build/v2/engine/boehm_gc/tests tools/build/v2/engine/debian tools/build/v2/engine/modules tools/build/v2/engine/src tools/build/v2/engine/test tools/build/v2/example/versioned tools/build/v2/test tools/build/v2/test/engine tools/build/v2/tools tools/build/v2/tools/types tools/build/v2/util
From: ghost_at_[hidden]
Date: 2011-06-06 16:36:27


Author: vladimir_prus
Date: 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
New Revision: 72443
URL: http://svn.boost.org/trac/boost/changeset/72443

Log:
Merge Boost.Build from trunk.

Added:
   branches/release/tools/build/v2/engine/Jambase
      - copied, changed from r68630, /trunk/tools/build/v2/engine/Jambase
   branches/release/tools/build/v2/engine/boehm_gc/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/
   branches/release/tools/build/v2/engine/boehm_gc/AmigaOS.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/AmigaOS.c
   branches/release/tools/build/v2/engine/boehm_gc/BCC_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/BCC_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/ChangeLog
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/ChangeLog
   branches/release/tools/build/v2/engine/boehm_gc/EMX_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/EMX_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/MacOS.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/MacOS.c
   branches/release/tools/build/v2/engine/boehm_gc/MacProjects.sit.hqx
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/MacProjects.sit.hqx
   branches/release/tools/build/v2/engine/boehm_gc/Mac_files/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/Mac_files/
   branches/release/tools/build/v2/engine/boehm_gc/Mac_files/MacOS_Test_config.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Mac_files/MacOS_Test_config.h
   branches/release/tools/build/v2/engine/boehm_gc/Mac_files/MacOS_config.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Mac_files/MacOS_config.h
   branches/release/tools/build/v2/engine/boehm_gc/Mac_files/dataend.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Mac_files/dataend.c
   branches/release/tools/build/v2/engine/boehm_gc/Mac_files/datastart.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Mac_files/datastart.c
   branches/release/tools/build/v2/engine/boehm_gc/Makefile.DLLs
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Makefile.DLLs
   branches/release/tools/build/v2/engine/boehm_gc/Makefile.am
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Makefile.am
   branches/release/tools/build/v2/engine/boehm_gc/Makefile.direct
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Makefile.direct
   branches/release/tools/build/v2/engine/boehm_gc/Makefile.dj
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Makefile.dj
   branches/release/tools/build/v2/engine/boehm_gc/Makefile.in
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/Makefile.in
   branches/release/tools/build/v2/engine/boehm_gc/NT_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/NT_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/NT_STATIC_THREADS_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/NT_STATIC_THREADS_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/NT_THREADS_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/NT_THREADS_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/NT_X64_STATIC_THREADS_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/NT_X64_STATIC_THREADS_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/OS2_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/OS2_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/PCR-Makefile
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/PCR-Makefile
   branches/release/tools/build/v2/engine/boehm_gc/README.QUICK
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/README.QUICK
   branches/release/tools/build/v2/engine/boehm_gc/SMakefile.amiga
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/SMakefile.amiga
   branches/release/tools/build/v2/engine/boehm_gc/WCC_MAKEFILE
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/WCC_MAKEFILE
   branches/release/tools/build/v2/engine/boehm_gc/acinclude.m4
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/acinclude.m4
   branches/release/tools/build/v2/engine/boehm_gc/aclocal.m4
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/aclocal.m4
   branches/release/tools/build/v2/engine/boehm_gc/add_gc_prefix.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/add_gc_prefix.c
   branches/release/tools/build/v2/engine/boehm_gc/allchblk.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/allchblk.c
   branches/release/tools/build/v2/engine/boehm_gc/alloc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/alloc.c
   branches/release/tools/build/v2/engine/boehm_gc/alpha_mach_dep.S
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/alpha_mach_dep.S
   branches/release/tools/build/v2/engine/boehm_gc/backgraph.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/backgraph.c
   branches/release/tools/build/v2/engine/boehm_gc/bdw-gc.pc
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/bdw-gc.pc
   branches/release/tools/build/v2/engine/boehm_gc/bdw-gc.pc.in
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/bdw-gc.pc.in
   branches/release/tools/build/v2/engine/boehm_gc/blacklst.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/blacklst.c
   branches/release/tools/build/v2/engine/boehm_gc/callprocs
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/callprocs
   branches/release/tools/build/v2/engine/boehm_gc/checksums.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/checksums.c
   branches/release/tools/build/v2/engine/boehm_gc/compile
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/compile
   branches/release/tools/build/v2/engine/boehm_gc/config.guess
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/config.guess
   branches/release/tools/build/v2/engine/boehm_gc/config.sub
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/config.sub
   branches/release/tools/build/v2/engine/boehm_gc/configure
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/configure
   branches/release/tools/build/v2/engine/boehm_gc/configure.ac
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/configure.ac
   branches/release/tools/build/v2/engine/boehm_gc/configure.host
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/configure.host
   branches/release/tools/build/v2/engine/boehm_gc/configure_atomic_ops.sh
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/configure_atomic_ops.sh
   branches/release/tools/build/v2/engine/boehm_gc/cord/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/
   branches/release/tools/build/v2/engine/boehm_gc/cord/cord.am
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/cord.am
   branches/release/tools/build/v2/engine/boehm_gc/cord/cordbscs.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/cordbscs.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/cordprnt.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/cordprnt.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/cordtest.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/cordtest.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/cordxtra.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/cordxtra.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/de.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/de_cmds.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de_cmds.h
   branches/release/tools/build/v2/engine/boehm_gc/cord/de_win.ICO
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de_win.ICO
   branches/release/tools/build/v2/engine/boehm_gc/cord/de_win.RC
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de_win.RC
   branches/release/tools/build/v2/engine/boehm_gc/cord/de_win.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de_win.c
   branches/release/tools/build/v2/engine/boehm_gc/cord/de_win.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/cord/de_win.h
   branches/release/tools/build/v2/engine/boehm_gc/darwin_stop_world.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/darwin_stop_world.c
   branches/release/tools/build/v2/engine/boehm_gc/dbg_mlc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/dbg_mlc.c
   branches/release/tools/build/v2/engine/boehm_gc/depcomp
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/depcomp
   branches/release/tools/build/v2/engine/boehm_gc/digimars.mak
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/digimars.mak
   branches/release/tools/build/v2/engine/boehm_gc/doc/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/
   branches/release/tools/build/v2/engine/boehm_gc/doc/README
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.DGUX386
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.DGUX386
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.Mac
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.Mac
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.MacOSX
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.MacOSX
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.OS2
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.OS2
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.amiga
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.amiga
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.arm.cross
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.arm.cross
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.autoconf
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.autoconf
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.changes
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.changes
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.contributors
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.contributors
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.cords
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.cords
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.darwin
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.darwin
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.dj
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.dj
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.environment
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.environment
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.ews4800
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.ews4800
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.hp
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.hp
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.linux
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.linux
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.macros
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.macros
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.rs6000
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.rs6000
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.sgi
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.sgi
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.solaris2
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.solaris2
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.uts
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.uts
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.win32
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.win32
   branches/release/tools/build/v2/engine/boehm_gc/doc/README.win64
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/README.win64
   branches/release/tools/build/v2/engine/boehm_gc/doc/barrett_diagram
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/barrett_diagram
   branches/release/tools/build/v2/engine/boehm_gc/doc/debugging.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/debugging.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/doc.am
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/doc.am
   branches/release/tools/build/v2/engine/boehm_gc/doc/gc.man
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/gc.man
   branches/release/tools/build/v2/engine/boehm_gc/doc/gcdescr.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/gcdescr.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/gcinterface.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/gcinterface.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/leak.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/leak.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/overview.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/overview.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/porting.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/porting.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/scale.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/scale.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/simple_example.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/simple_example.html
   branches/release/tools/build/v2/engine/boehm_gc/doc/tree.html
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/doc/tree.html
   branches/release/tools/build/v2/engine/boehm_gc/dyn_load.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/dyn_load.c
   branches/release/tools/build/v2/engine/boehm_gc/finalize.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/finalize.c
   branches/release/tools/build/v2/engine/boehm_gc/gc.mak
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gc.mak
   branches/release/tools/build/v2/engine/boehm_gc/gc_cpp.cc
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gc_cpp.cc
   branches/release/tools/build/v2/engine/boehm_gc/gc_cpp.cpp
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gc_cpp.cpp
   branches/release/tools/build/v2/engine/boehm_gc/gc_dlopen.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gc_dlopen.c
   branches/release/tools/build/v2/engine/boehm_gc/gcj_mlc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gcj_mlc.c
   branches/release/tools/build/v2/engine/boehm_gc/gcname.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/gcname.c
   branches/release/tools/build/v2/engine/boehm_gc/headers.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/headers.c
   branches/release/tools/build/v2/engine/boehm_gc/hpux_test_and_clear.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/hpux_test_and_clear.s
   branches/release/tools/build/v2/engine/boehm_gc/ia64_save_regs_in_stack.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/ia64_save_regs_in_stack.s
   branches/release/tools/build/v2/engine/boehm_gc/if_mach.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/if_mach.c
   branches/release/tools/build/v2/engine/boehm_gc/if_not_there.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/if_not_there.c
   branches/release/tools/build/v2/engine/boehm_gc/include/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/
   branches/release/tools/build/v2/engine/boehm_gc/include/cord.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/cord.h
   branches/release/tools/build/v2/engine/boehm_gc/include/ec.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/ec.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_allocator.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_allocator.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_amiga_redirects.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_amiga_redirects.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_backptr.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_backptr.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_cpp.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_cpp.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_gcj.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_gcj.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_inline.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_inline.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_mark.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_mark.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_pthread_redirects.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_pthread_redirects.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_tiny_fl.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_tiny_fl.h
   branches/release/tools/build/v2/engine/boehm_gc/include/gc_typed.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/gc_typed.h
   branches/release/tools/build/v2/engine/boehm_gc/include/include.am
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/include.am
   branches/release/tools/build/v2/engine/boehm_gc/include/javaxfc.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/javaxfc.h
   branches/release/tools/build/v2/engine/boehm_gc/include/leak_detector.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/leak_detector.h
   branches/release/tools/build/v2/engine/boehm_gc/include/new_gc_alloc.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/new_gc_alloc.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/
   branches/release/tools/build/v2/engine/boehm_gc/include/private/cord_pos.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/cord_pos.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/darwin_semaphore.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/darwin_semaphore.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/darwin_stop_world.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/darwin_stop_world.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/dbg_mlc.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/dbg_mlc.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/gc_hdrs.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/gc_hdrs.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/gc_locks.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/gc_locks.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/gc_pmark.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/gc_pmark.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/gc_priv.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/gc_priv.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/msvc_dbg.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/msvc_dbg.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/pthread_stop_world.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/pthread_stop_world.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/pthread_support.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/pthread_support.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/specific.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/specific.h
   branches/release/tools/build/v2/engine/boehm_gc/include/private/thread_local_alloc.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/private/thread_local_alloc.h
   branches/release/tools/build/v2/engine/boehm_gc/include/weakpointer.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/include/weakpointer.h
   branches/release/tools/build/v2/engine/boehm_gc/install-sh
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/install-sh
   branches/release/tools/build/v2/engine/boehm_gc/libtool.m4
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/libtool.m4
   branches/release/tools/build/v2/engine/boehm_gc/ltmain.sh
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/ltmain.sh
   branches/release/tools/build/v2/engine/boehm_gc/mach_dep.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mach_dep.c
   branches/release/tools/build/v2/engine/boehm_gc/malloc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/malloc.c
   branches/release/tools/build/v2/engine/boehm_gc/mallocx.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mallocx.c
   branches/release/tools/build/v2/engine/boehm_gc/mark.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mark.c
   branches/release/tools/build/v2/engine/boehm_gc/mark_rts.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mark_rts.c
   branches/release/tools/build/v2/engine/boehm_gc/mips_sgi_mach_dep.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mips_sgi_mach_dep.s
   branches/release/tools/build/v2/engine/boehm_gc/mips_ultrix_mach_dep.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mips_ultrix_mach_dep.s
   branches/release/tools/build/v2/engine/boehm_gc/misc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/misc.c
   branches/release/tools/build/v2/engine/boehm_gc/missing
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/missing
   branches/release/tools/build/v2/engine/boehm_gc/mkinstalldirs
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/mkinstalldirs
   branches/release/tools/build/v2/engine/boehm_gc/msvc_dbg.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/msvc_dbg.c
   branches/release/tools/build/v2/engine/boehm_gc/new_hblk.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/new_hblk.c
   branches/release/tools/build/v2/engine/boehm_gc/obj_map.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/obj_map.c
   branches/release/tools/build/v2/engine/boehm_gc/os_dep.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/os_dep.c
   branches/release/tools/build/v2/engine/boehm_gc/pcr_interface.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/pcr_interface.c
   branches/release/tools/build/v2/engine/boehm_gc/pthread_stop_world.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/pthread_stop_world.c
   branches/release/tools/build/v2/engine/boehm_gc/pthread_support.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/pthread_support.c
   branches/release/tools/build/v2/engine/boehm_gc/ptr_chck.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/ptr_chck.c
   branches/release/tools/build/v2/engine/boehm_gc/real_malloc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/real_malloc.c
   branches/release/tools/build/v2/engine/boehm_gc/reclaim.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/reclaim.c
   branches/release/tools/build/v2/engine/boehm_gc/rs6000_mach_dep.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/rs6000_mach_dep.s
   branches/release/tools/build/v2/engine/boehm_gc/setjmp_t.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/setjmp_t.c
   branches/release/tools/build/v2/engine/boehm_gc/sparc_mach_dep.S
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/sparc_mach_dep.S
   branches/release/tools/build/v2/engine/boehm_gc/sparc_netbsd_mach_dep.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/sparc_netbsd_mach_dep.s
   branches/release/tools/build/v2/engine/boehm_gc/sparc_sunos4_mach_dep.s
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/sparc_sunos4_mach_dep.s
   branches/release/tools/build/v2/engine/boehm_gc/specific.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/specific.c
   branches/release/tools/build/v2/engine/boehm_gc/stubborn.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/stubborn.c
   branches/release/tools/build/v2/engine/boehm_gc/tests/
      - copied from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/
   branches/release/tools/build/v2/engine/boehm_gc/tests/leak_test.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/leak_test.c
   branches/release/tools/build/v2/engine/boehm_gc/tests/middle.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/middle.c
   branches/release/tools/build/v2/engine/boehm_gc/tests/test.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/test.c
   branches/release/tools/build/v2/engine/boehm_gc/tests/test_cpp.cc
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/test_cpp.cc
   branches/release/tools/build/v2/engine/boehm_gc/tests/tests.am
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/tests.am
   branches/release/tools/build/v2/engine/boehm_gc/tests/thread_leak_test.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/tests/thread_leak_test.c
   branches/release/tools/build/v2/engine/boehm_gc/thread_local_alloc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/thread_local_alloc.c
   branches/release/tools/build/v2/engine/boehm_gc/threadlibs.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/threadlibs.c
   branches/release/tools/build/v2/engine/boehm_gc/typd_mlc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/typd_mlc.c
   branches/release/tools/build/v2/engine/boehm_gc/version.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/version.h
   branches/release/tools/build/v2/engine/boehm_gc/win32_threads.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boehm_gc/win32_threads.c
   branches/release/tools/build/v2/engine/boost-jam.spec
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/boost-jam.spec
   branches/release/tools/build/v2/engine/build.bat
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/build.bat
   branches/release/tools/build/v2/engine/build.jam
      - copied, changed from r68630, /trunk/tools/build/v2/engine/build.jam
   branches/release/tools/build/v2/engine/build.sh
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/build.sh
   branches/release/tools/build/v2/engine/build_vms.com
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/build_vms.com
   branches/release/tools/build/v2/engine/builtins.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/builtins.c
   branches/release/tools/build/v2/engine/builtins.h
      - copied, changed from r68630, /trunk/tools/build/v2/engine/builtins.h
   branches/release/tools/build/v2/engine/bump_version.py
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/bump_version.py
   branches/release/tools/build/v2/engine/class.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/class.c
   branches/release/tools/build/v2/engine/class.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/class.h
   branches/release/tools/build/v2/engine/command.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/command.c
   branches/release/tools/build/v2/engine/command.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/command.h
   branches/release/tools/build/v2/engine/compile.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/compile.c
   branches/release/tools/build/v2/engine/compile.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/compile.h
   branches/release/tools/build/v2/engine/debian/
      - copied from r68630, /trunk/tools/build/v2/engine/debian/
   branches/release/tools/build/v2/engine/debian/changelog
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debian/changelog
   branches/release/tools/build/v2/engine/debian/control
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debian/control
   branches/release/tools/build/v2/engine/debian/copyright
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debian/copyright
   branches/release/tools/build/v2/engine/debian/jam.man.sgml
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debian/jam.man.sgml
   branches/release/tools/build/v2/engine/debian/rules
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debian/rules
   branches/release/tools/build/v2/engine/debug.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debug.c
   branches/release/tools/build/v2/engine/debug.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/debug.h
   branches/release/tools/build/v2/engine/execcmd.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/execcmd.h
   branches/release/tools/build/v2/engine/execmac.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/execmac.c
   branches/release/tools/build/v2/engine/execnt.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/execnt.c
   branches/release/tools/build/v2/engine/execunix.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/execunix.c
   branches/release/tools/build/v2/engine/execvms.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/execvms.c
   branches/release/tools/build/v2/engine/expand.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/expand.c
   branches/release/tools/build/v2/engine/expand.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/expand.h
   branches/release/tools/build/v2/engine/filemac.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/filemac.c
   branches/release/tools/build/v2/engine/filent.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/filent.c
   branches/release/tools/build/v2/engine/fileos2.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/fileos2.c
   branches/release/tools/build/v2/engine/filesys.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/filesys.c
   branches/release/tools/build/v2/engine/filesys.h
      - copied, changed from r68630, /trunk/tools/build/v2/engine/filesys.h
   branches/release/tools/build/v2/engine/fileunix.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/fileunix.c
   branches/release/tools/build/v2/engine/filevms.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/filevms.c
   branches/release/tools/build/v2/engine/frames.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/frames.c
   branches/release/tools/build/v2/engine/frames.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/frames.h
   branches/release/tools/build/v2/engine/glob.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/glob.c
   branches/release/tools/build/v2/engine/hash.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hash.c
   branches/release/tools/build/v2/engine/hash.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hash.h
   branches/release/tools/build/v2/engine/hcache.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hcache.c
   branches/release/tools/build/v2/engine/hcache.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hcache.h
   branches/release/tools/build/v2/engine/hdrmacro.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hdrmacro.c
   branches/release/tools/build/v2/engine/hdrmacro.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/hdrmacro.h
   branches/release/tools/build/v2/engine/headers.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/headers.c
   branches/release/tools/build/v2/engine/headers.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/headers.h
   branches/release/tools/build/v2/engine/jam.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/jam.c
   branches/release/tools/build/v2/engine/jam.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jam.h
   branches/release/tools/build/v2/engine/jambase.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/jambase.c
   branches/release/tools/build/v2/engine/jambase.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jambase.h
   branches/release/tools/build/v2/engine/jamgram.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jamgram.c
   branches/release/tools/build/v2/engine/jamgram.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jamgram.h
   branches/release/tools/build/v2/engine/jamgram.y
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jamgram.y
   branches/release/tools/build/v2/engine/jamgram.yy
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jamgram.yy
   branches/release/tools/build/v2/engine/jamgramtab.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/jamgramtab.h
   branches/release/tools/build/v2/engine/lists.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/lists.c
   branches/release/tools/build/v2/engine/lists.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/lists.h
   branches/release/tools/build/v2/engine/make.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/make.c
   branches/release/tools/build/v2/engine/make.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/make.h
   branches/release/tools/build/v2/engine/make1.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/make1.c
   branches/release/tools/build/v2/engine/md5.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/md5.c
   branches/release/tools/build/v2/engine/md5.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/md5.h
   branches/release/tools/build/v2/engine/mem.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/mem.c
   branches/release/tools/build/v2/engine/mem.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/mem.h
   branches/release/tools/build/v2/engine/mkjambase.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/mkjambase.c
   branches/release/tools/build/v2/engine/modules/
      - copied from r68630, /trunk/tools/build/v2/engine/modules/
   branches/release/tools/build/v2/engine/modules.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules.c
   branches/release/tools/build/v2/engine/modules.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules.h
   branches/release/tools/build/v2/engine/modules/order.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/order.c
   branches/release/tools/build/v2/engine/modules/path.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/path.c
   branches/release/tools/build/v2/engine/modules/property-set.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/property-set.c
   branches/release/tools/build/v2/engine/modules/readme.txt
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/readme.txt
   branches/release/tools/build/v2/engine/modules/regex.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/regex.c
   branches/release/tools/build/v2/engine/modules/sequence.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/sequence.c
   branches/release/tools/build/v2/engine/modules/set.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/modules/set.c
   branches/release/tools/build/v2/engine/native.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/native.c
   branches/release/tools/build/v2/engine/native.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/native.h
   branches/release/tools/build/v2/engine/newstr.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/newstr.c
   branches/release/tools/build/v2/engine/newstr.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/newstr.h
   branches/release/tools/build/v2/engine/option.c
      - copied, changed from r68630, /trunk/tools/build/v2/engine/option.c
   branches/release/tools/build/v2/engine/option.h
      - copied, changed from r68630, /trunk/tools/build/v2/engine/option.h
   branches/release/tools/build/v2/engine/output.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/output.c
   branches/release/tools/build/v2/engine/output.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/output.h
   branches/release/tools/build/v2/engine/parse.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/parse.c
   branches/release/tools/build/v2/engine/parse.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/parse.h
   branches/release/tools/build/v2/engine/patchlevel.h
      - copied, changed from r68630, /trunk/tools/build/v2/engine/patchlevel.h
   branches/release/tools/build/v2/engine/pathmac.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pathmac.c
   branches/release/tools/build/v2/engine/pathsys.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pathsys.h
   branches/release/tools/build/v2/engine/pathunix.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pathunix.c
   branches/release/tools/build/v2/engine/pathvms.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pathvms.c
   branches/release/tools/build/v2/engine/pwd.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pwd.c
   branches/release/tools/build/v2/engine/pwd.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/pwd.h
   branches/release/tools/build/v2/engine/regexp.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/regexp.c
   branches/release/tools/build/v2/engine/regexp.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/regexp.h
   branches/release/tools/build/v2/engine/rules.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/rules.c
   branches/release/tools/build/v2/engine/rules.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/rules.h
   branches/release/tools/build/v2/engine/scan.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/scan.c
   branches/release/tools/build/v2/engine/scan.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/scan.h
   branches/release/tools/build/v2/engine/search.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/search.c
   branches/release/tools/build/v2/engine/search.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/search.h
   branches/release/tools/build/v2/engine/strings.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/strings.c
   branches/release/tools/build/v2/engine/strings.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/strings.h
   branches/release/tools/build/v2/engine/subst.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/subst.c
   branches/release/tools/build/v2/engine/timestamp.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/timestamp.c
   branches/release/tools/build/v2/engine/timestamp.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/timestamp.h
   branches/release/tools/build/v2/engine/variable.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/variable.c
   branches/release/tools/build/v2/engine/variable.h
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/variable.h
   branches/release/tools/build/v2/engine/w32_getreg.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/w32_getreg.c
   branches/release/tools/build/v2/engine/yyacc.c
      - copied unchanged from r68630, /trunk/tools/build/v2/engine/yyacc.c
   branches/release/tools/build/v2/test/engine/
      - copied from r68630, /trunk/tools/build/v2/test/engine/
   branches/release/tools/build/v2/test/engine/README.txt
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/README.txt
   branches/release/tools/build/v2/test/engine/action_status.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/action_status.jam
   branches/release/tools/build/v2/test/engine/actions_quietly.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/actions_quietly.jam
   branches/release/tools/build/v2/test/engine/builtin_normalize_path.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/builtin_normalize_path.jam
   branches/release/tools/build/v2/test/engine/builtin_shell.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/builtin_shell.jam
   branches/release/tools/build/v2/test/engine/builtin_w32_getregnames.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/builtin_w32_getregnames.jam
   branches/release/tools/build/v2/test/engine/option_d2.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/option_d2.jam
   branches/release/tools/build/v2/test/engine/option_l.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/option_l.jam
   branches/release/tools/build/v2/test/engine/option_n.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/option_n.jam
   branches/release/tools/build/v2/test/engine/parallel_actions.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/parallel_actions.jam
   branches/release/tools/build/v2/test/engine/parallel_multifile_actions_1.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/parallel_multifile_actions_1.jam
   branches/release/tools/build/v2/test/engine/parallel_multifile_actions_2.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/parallel_multifile_actions_2.jam
   branches/release/tools/build/v2/test/engine/rule_param.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/rule_param.jam
   branches/release/tools/build/v2/test/engine/stress_var_expand.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/stress_var_expand.jam
   branches/release/tools/build/v2/test/engine/target_var.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/target_var.jam
   branches/release/tools/build/v2/test/engine/test.bat
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/test.bat
   branches/release/tools/build/v2/test/engine/test.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/test.jam
   branches/release/tools/build/v2/test/engine/test.sh
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/test.sh
   branches/release/tools/build/v2/test/engine/var_expand.jam
      - copied unchanged from r68630, /trunk/tools/build/v2/test/engine/var_expand.jam
   branches/release/tools/build/v2/test/preprocessor.py
      - copied unchanged from r71094, /trunk/tools/build/v2/test/preprocessor.py
   branches/release/tools/build/v2/tools/types/preprocessed.jam
      - copied unchanged from r71094, /trunk/tools/build/v2/tools/types/preprocessed.jam
Removed:
   branches/release/tools/build/v2/engine/build_dist.bat
   branches/release/tools/build/v2/engine/build_dist.sh
   branches/release/tools/build/v2/engine/index.html
   branches/release/tools/build/v2/engine/src/
   branches/release/tools/build/v2/engine/test/
Properties modified:
   branches/release/tools/build/v2/ (props changed)
Text files modified:
   branches/release/Jamroot | 586 +++------------------------------------
   branches/release/bootstrap.bat | 30 +
   branches/release/bootstrap.sh | 25
   branches/release/tools/build/v2/Jamroot.jam | 3
   branches/release/tools/build/v2/bootstrap.bat | 20
   branches/release/tools/build/v2/bootstrap.sh | 13
   branches/release/tools/build/v2/build-system.jam | 9
   branches/release/tools/build/v2/build/configure.jam | 11
   branches/release/tools/build/v2/build/project.jam | 28 +
   branches/release/tools/build/v2/build/version.jam | 36 +
   branches/release/tools/build/v2/doc/jamfile.jam | 1
   branches/release/tools/build/v2/doc/src/install.xml | 4
   branches/release/tools/build/v2/doc/src/reference.xml | 356 +++++++++++++++++++++++
   branches/release/tools/build/v2/engine/Jambase | 3
   branches/release/tools/build/v2/engine/build.jam | 119 ++++---
   branches/release/tools/build/v2/engine/builtins.c | 19 +
   branches/release/tools/build/v2/engine/builtins.h | 1
   branches/release/tools/build/v2/engine/filemac.c | 5
   branches/release/tools/build/v2/engine/filent.c | 22 +
   branches/release/tools/build/v2/engine/filesys.h | 1
   branches/release/tools/build/v2/engine/fileunix.c | 5
   branches/release/tools/build/v2/engine/jam.c | 2
   branches/release/tools/build/v2/engine/jambase.c | 3
   branches/release/tools/build/v2/engine/option.c | 4
   branches/release/tools/build/v2/engine/option.h | 8
   branches/release/tools/build/v2/engine/patchlevel.h | 16
   branches/release/tools/build/v2/example/versioned/hello.cpp | 2
   branches/release/tools/build/v2/roll.sh | 8
   branches/release/tools/build/v2/tools/boostbook.jam | 227 ++++++++++++---
   branches/release/tools/build/v2/tools/builtin.jam | 43 ++
   branches/release/tools/build/v2/tools/clang-linux.jam | 197 +++++++-----
   branches/release/tools/build/v2/tools/darwin.jam | 19 +
   branches/release/tools/build/v2/tools/doxygen.jam | 118 ++++---
   branches/release/tools/build/v2/tools/fop.jam | 94 +----
   branches/release/tools/build/v2/tools/gcc.jam | 47 +++
   branches/release/tools/build/v2/tools/intel-linux.jam | 66 +++
   branches/release/tools/build/v2/tools/msvc.jam | 28 +
   branches/release/tools/build/v2/tools/pathscale.jam | 3
   branches/release/tools/build/v2/tools/quickbook.jam | 143 +++++---
   branches/release/tools/build/v2/tools/xsltproc.jam | 46 ++
   branches/release/tools/build/v2/util/path.jam | 17 +
   41 files changed, 1365 insertions(+), 1023 deletions(-)

Modified: branches/release/Jamroot
==============================================================================
--- branches/release/Jamroot (original)
+++ branches/release/Jamroot 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -93,7 +93,7 @@
 # --python-buildid=ID Adds the specified ID to the name of built
 # libraries that depend on Python. The default
 # is to not add anything. This ID is added in
-# addition t --buildid.
+# addition to --buildid.
 #
 #
 # --help This message.
@@ -123,66 +123,19 @@
 # - handle boost version
 # - handle python options such as pydebug
 
-import generate ;
-import modules ;
-import set ;
-import stage ;
+import boostcpp ;
 import package ;
-import path ;
-import common ;
-import os ;
-import regex ;
-import errors ;
-import "class" : new ;
-import common ;
+
 import sequence ;
-import symlink ;
-import targets ;
-import project ;
-import option ;
 import xsltproc ;
-import build-system ;
-import configure ;
+import set ;
+import path ;
 
 path-constant BOOST_ROOT : . ;
 constant BOOST_VERSION : 1.47.0 ;
 constant BOOST_JAMROOT_MODULE : $(__name__) ;
 
-local version-tag = [ MATCH "^([^.]+)[.]([^.]+)[.]([^.]+)" : $(BOOST_VERSION) ]
- ;
-if $(version-tag[3]) = 0
-{
- version-tag = $(version-tag[1-2]) ;
-}
-
-constant BOOST_VERSION_TAG : $(version-tag:J="_") ;
-
-# Option to choose how many variants to build. The default is "minimal".
-local build-type = [ MATCH "^--build-type=(.*)" : [ modules.peek : ARGV ] ] ;
-build-type ?= minimal ;
-if ! ( $(build-type) in minimal complete )
-{
- ECHO "The value of the --build-type option should be either 'complete' or 'minimal'" ;
- EXIT ;
-}
-
-rule handle-static-runtime ( properties * )
-{
- # Using static runtime with shared libraries is impossible on Linux,
- # and dangerous on Windows. Therefore, we disallow it. This might
- # be drastic, but it was disabled for a while with nobody complaining.
-
- # For CW, static runtime is needed so that std::locale works.
- if <link>shared in $(properties) && <runtime-link>static in $(properties) &&
- ! ( <toolset>cw in $(properties) )
- {
- ECHO "error: link=shared together with runtime-link=static is not allowed" ;
- ECHO "error: such property combination is either impossible " ;
- ECHO "error: or too dangerious to be of any use" ;
- EXIT ;
- }
-}
-
+boostcpp.set-version $(BOOST_VERSION) ;
 
 project boost
     : requirements <include>.
@@ -204,8 +157,31 @@
     : build-dir bin.v2
     ;
 
+# This rule is called by Boost.Build to determine the name of target. We use it
+# to encode the build variant, compiler name and boost version in the target
+# name.
+#
+rule tag ( name : type ? : property-set )
+{
+ return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ;
+}
+
+rule handle-static-runtime ( properties * )
+{
+ # Using static runtime with shared libraries is impossible on Linux,
+ # and dangerous on Windows. Therefore, we disallow it. This might
+ # be drastic, but it was disabled for a while with nobody complaining.
 
-# Setup convenient aliases for all libraries.
+ # For CW, static runtime is needed so that std::locale works.
+ if <link>shared in $(properties) && <runtime-link>static in $(properties) &&
+ ! ( <toolset>cw in $(properties) )
+ {
+ ECHO "error: link=shared together with runtime-link=static is not allowed" ;
+ ECHO "error: such property combination is either impossible " ;
+ ECHO "error: or too dangerious to be of any use" ;
+ EXIT ;
+ }
+}
 
 all-libraries = [ MATCH .*libs/(.*)/build/.* : [ glob libs/*/build/Jamfile.v2 ]
     [ glob libs/*/build/Jamfile ] ]
@@ -216,7 +192,7 @@
 # purposes, there's no library to build and install.
 all-libraries = [ set.difference $(all-libraries) : function_types ] ;
 
-configure.register-components $(all-libraries) ;
+# Setup convenient aliases for all libraries.
 
 local rule explicit-alias ( id : targets + )
 {
@@ -224,7 +200,6 @@
     explicit $(id) ;
 }
 
-
 # First, the complicated libraries: where the target name in Jamfile is
 # different from its directory name.
 explicit-alias prg_exec_monitor : libs/test/build//boost_prg_exec_monitor ;
@@ -242,485 +217,13 @@
 }
 
 alias headers : : : : <include>. ;
+explicit headers ;
 
-
-# Decides which libraries are to be installed by looking at --with-<library>
-# --without-<library> arguments. Returns the list of directories under "libs"
-# which must be built and installed.
-#
-rule libraries-to-install ( existing-libraries * )
-{
- local argv = [ modules.peek : ARGV ] ;
- local with-parameter = [ MATCH --with-(.*) : $(argv) ] ;
- local without-parameter = [ MATCH --without-(.*) : $(argv) ] ;
-
- if ! $(with-parameter) && ! $(without-parameter)
- {
- # Nothing is specified on command line. See if maybe
- # project-config.jam has some choices.
- local project-config-libs = [ modules.peek project-config : libraries ] ;
- with-parameter = [ MATCH --with-(.*) : $(project-config-libs) ] ;
- without-parameter = [ MATCH --without-(.*) : $(project-config-libs) ] ;
- }
-
- # Do some checks.
- if $(with-parameter) && $(without-parameter)
- {
- ECHO "error: both --with-<library> and --without-<library> specified" ;
- EXIT ;
- }
-
- local wrong = [ set.difference $(with-parameter) : $(existing-libraries) ] ;
- if $(wrong)
- {
- ECHO "error: wrong library name '$(wrong[1])' in the --with-<library> option." ;
- EXIT ;
- }
- local wrong = [ set.difference $(without-parameter) : $(existing-libraries) ] ;
- if $(wrong)
- {
- ECHO "error: wrong library name '$(wrong[1])' in the --without-<library> option." ;
- EXIT ;
- }
-
- if $(with-parameter)
- {
- return [ set.intersection $(existing-libraries) : $(with-parameter) ] ;
- }
- else
- {
- return [ set.difference $(existing-libraries) : $(without-parameter) ] ;
- }
-}
-
-
-# What kind of layout are we doing?
-layout = [ option.get layout : "" ] ;
-# On Windows, we used versioned layout by default in order to
-# be compatible with autolink. On other systems, we use system
-# layout which is what every other program uses. Note that windows
-# check is static, and won't
-if ! $(layout)
-{
- if [ modules.peek : NT ]
- {
- layout = versioned ;
- }
- else
- {
- layout = system ;
- }
-}
-layout-$(layout) = true ;
-
-if $(layout) = system && $(build-type) = complete
-{
- ECHO "error: Cannot use --layout=system with --build-type complete." ;
- ECHO "error: Please used either --layout=versioned or --layout=tagged " ;
- ECHO "error: if you wish to build multiple variants." ;
- if ! [ modules.peek : NT ]
- {
- ECHO "error: Note that --layout=system is default on Unix starting with Boost 1.40." ;
- }
- EXIT ;
-}
-
-# Possible stage only location.
-local stage-locate = [ MATCH "^--stagedir=(.*)" : [ modules.peek : ARGV ] ] ;
-stage-locate ?= stage ;
-path-constant BOOST_STAGE_LOCATE : $(stage-locate) ;
-
-
-# Python location.
-local python-root = [ MATCH "^--with-python-root=(.*)" : [ modules.peek : ARGV ]
- ] ;
-PYTHON_ROOT ?= $(python-root) ;
-
-
-# Select the libraries to install.
-libraries = [ libraries-to-install $(all-libraries) ] ;
-configure.components-building $(libraries) ;
-
-if --show-libraries in [ modules.peek : ARGV ]
-{
- ECHO "The following libraries require building:" ;
- for local l in $(libraries)
- {
- ECHO " - $(l)" ;
- }
- EXIT ;
-}
-
-# Custom build ID.
-local build-id = [ MATCH "^--buildid=(.*)" : [ modules.peek : ARGV ] ] ;
-if $(build-id)
-{
- constant BUILD_ID : [ regex.replace $(build-id) "[*\\/:.\"\' ]" "_" ] ;
-}
-
-# Python build id (only for Python libraries)
-local python-id = [ MATCH "^--python-buildid=(.*)" : [ modules.peek : ARGV ] ] ;
-if $(python-id)
-{
- constant PYTHON_ID : [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
-}
-
-# This rule is called by Boost.Build to determine the name of target. We use it
-# to encode the build variant, compiler name and boost version in the target
-# name.
-#
-rule tag ( name : type ? : property-set )
-{
- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
- {
- local result ;
- if $(layout) = versioned
- {
- result = [ common.format-name
- <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
- -$(BUILD_ID)
- : $(name) : $(type) : $(property-set) ] ;
- }
- else if $(layout) = tagged
- {
- result = [ common.format-name
- <base> <threading> <runtime>
- -$(BUILD_ID)
- : $(name) : $(type) : $(property-set) ] ;
- }
- else if $(layout) = system
- {
- result = [ common.format-name
- <base>
- -$(BUILD_ID)
- : $(name) : $(type) : $(property-set) ] ;
- }
- else
- {
- ECHO "error: invalid layout '$(layout)'" ;
- EXIT ;
- }
-
- # Optionally add version suffix. On NT, library with version suffix
- # will not be recognized by linkers. On CYGWIN, we get strage
- # duplicate symbol errors when library is generated with version
- # suffix. On OSX, version suffix is not needed -- the linker expects
- # the libFoo.1.2.3.dylib format. AIX linkers do not accept version
- # suffixes either. Pgi compilers can not accept library with version
- # suffix.
- if $(type) = SHARED_LIB &&
- ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin aix ) &&
- ! ( [ $(property-set).get <toolset> ] in pgi ) )
- {
- result = $(result).$(BOOST_VERSION) ;
- }
-
- return $(result) ;
- }
-}
-
-
-# Install to system location.
-
-install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
-
-if $(layout-versioned)
-{
- install-requirements += <install-header-subdir>boost-$(BOOST_VERSION_TAG)/boost ;
-}
-else
-{
- install-requirements += <install-header-subdir>boost ;
-}
-if [ modules.peek : NT ]
-{
- install-requirements += <install-default-prefix>C:/Boost ;
-}
-else if [ modules.peek : UNIX ]
-{
- install-requirements += <install-default-prefix>/usr/local ;
-}
-
-local headers =
- # The .SUNWCCh files are present in tr1 include directory and have to be installed,
- # see http://lists.boost.org/Archives/boost/2007/05/121430.php
- [ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
- [ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* : CVS .svn ]
- [ path.glob boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
- ;
-
-# Complete install.
-package.install install-proper
- : $(install-requirements) <install-no-version-symlinks>on
- :
- : libs/$(libraries)/build
- : $(headers)
- ;
-explicit install-proper ;
-
-# Install just library.
-install stage-proper
- : libs/$(libraries)/build
- : <location>$(stage-locate)/lib
- <install-dependencies>on <install-type>LIB
- <install-no-version-symlinks>on
- ;
-explicit stage-proper ;
-
-
-if $(layout-versioned) && ( [ modules.peek : NT ] || [ modules.peek : UNIX ] )
-{
- rule make-unversioned-links ( project name ? : property-set : sources * )
- {
- local result ;
- local filtered ;
- local pattern ;
- local nt = [ modules.peek : NT ] ;
-
- # Collect the libraries that have the version number in 'filtered'.
- for local s in $(sources)
- {
- local m ;
- if $(nt)
- {
- m = [ MATCH "(.*[.]lib)" : [ $(s).name ] ] ;
- }
- else
- {
- m = [ MATCH "(.*[.]so[.0-9]+)" "(.*[.]dylib)" "(.*[.]a)" :
- [ $(s).name ] ] ;
- }
- if $(m)
- {
- filtered += $(s) ;
- }
- }
-
- # Create links without version.
- for local s in $(filtered)
- {
- local name = [ $(s).name ] ;
- local ea = [ $(s).action ] ;
- local ep = [ $(ea).properties ] ;
- local a = [ new non-scanning-action $(s) : symlink.ln : $(ep) ] ;
-
- local noversion-file ;
- if $(nt)
- {
- noversion-file = [ MATCH "(.*)-[0-9_]+(.*[.]lib)" : $(name) ] ;
- }
- else
- {
- noversion-file =
- [ MATCH "(.*)-[0-9_]+(.*[.]so)[.0-9]*" : $(name) ]
- [ MATCH "(.*)-[0-9_]+(.*[.]dylib)" : $(name) ]
- [ MATCH "(.*)-[0-9_]+(.*[.]a)" : $(name) ]
- [ MATCH "(.*)-[0-9_]+(.*[.]dll[.]a)" : $(name) ] ;
- }
-
- local new-name =
- $(noversion-file[1])$(noversion-file[2]) ;
- result += [ new file-target $(new-name) exact : [ $(s).type ] : $(project)
- : $(a) ] ;
-
- }
- return $(result) ;
- }
-
- generate stage-unversioned : stage-proper :
- <generating-rule>@make-unversioned-links ;
- explicit stage-unversioned ;
-
- generate install-unversioned : install-proper :
- <generating-rule>@make-unversioned-links ;
- explicit install-unversioned ;
-}
-else
-{
- # Create do-nothing aliases.
- alias stage-unversioned ;
- explicit stage-unversioned ;
- alias install-unversioned ;
- explicit install-unversioned ;
-}
-
-# This is a special metatarget class that handles the --build-type=complete
-# option.
-class top-level-target : alias-target-class
-{
- import modules ;
- import errors ;
-
- rule __init__ ( name : project : sources * : requirements *
- : default-build * : usage-requirements * )
- {
- alias-target-class.__init__ $(name) : $(project) : $(sources) :
- $(requirements) : $(default-build) : $(usage-requirements) ;
-
- local m = [ $(project).project-module ] ;
- self.build-type = [ modules.peek $(m) : build-type ] ;
- # On Linux, we build release variant by default, since few users will
- # ever want to debug C++ Boost libraries, and there's no ABI
- # incompatibility between debug and release variants. We build
- # shared and static libraries since that's what most packages
- # seem to provide (.so in libfoo and .a in libfoo-dev).
- self.minimal-properties = [ property-set.create
- <variant>release <threading>multi <link>shared <link>static <runtime-link>shared ] ;
- # On Windows, new IDE projects use:
- #
- # runtime-link=dynamic, threading=multi, variant=(debug|release)
- #
- # and in addition, C++ Boost's autolink defaults to static linking.
- self.minimal-properties-win = [ property-set.create
- <variant>debug <variant>release <threading>multi <link>static <runtime-link>shared ] ;
-
- self.complete-properties = [ property-set.create
- <variant>debug <variant>release
- <threading>single <threading>multi
- <link>shared <link>static
- <runtime-link>shared <runtime-link>static ] ;
- }
-
- rule generate ( property-set )
- {
- local x = [ modules.peek : top-level-targets ] ;
- x += $(self.name) ;
- modules.poke : top-level-targets : $(x) ;
- if $(self.build-type) = minimal
- {
- local expanded ;
-
- local os = [ $(property-set).get <target-os> ] ;
- # Because we completely override parent's 'generate'
- # we need to check for default value of feature ourself.
- if ! $(os)
- {
- os = [ feature.defaults <target-os> ] ;
- os = $(os:G=) ;
- }
-
- if $(os) = windows
- {
- expanded = [ targets.apply-default-build $(property-set)
- : $(self.minimal-properties-win) ] ;
- }
- else
- {
- expanded = [ targets.apply-default-build $(property-set)
- : $(self.minimal-properties) ] ;
- }
- return [ build-multiple $(expanded) ] ;
- }
- else if $(self.build-type) = complete
- {
- local expanded = [ targets.apply-default-build $(property-set)
- : $(self.complete-properties) ] ;
-
- # Filter inappopriate combinations
- local filtered ;
- for local p in $(expanded)
- {
- # See comment in handle-static-runtime regarding this logic.
- if [ $(p).get <link> ] = shared && [ $(p).get <runtime-link> ] = static
- && [ $(p).get <toolset> ] != cw
- {
- # Skip this
- }
- else
- {
- filtered += $(p) ;
- }
- }
- return [ build-multiple $(filtered) ] ;
- }
- else
- {
- errors.error "Unknown build type" ;
- }
- }
-
- rule build-multiple ( property-sets * )
- {
- local usage-requirements = [ property-set.empty ] ;
- local result ;
- for local p in $(property-sets)
- {
- local r = [ alias-target-class.generate $(p) ] ;
- if $(r)
- {
- usage-requirements = [ $(usage-requirements).add $(r[1]) ] ;
- result += $(r[2-]) ;
- }
- }
- return $(usage-requirements) [ sequence.unique $(result) ] ;
- }
-
-}
-
-targets.create-metatarget top-level-target : [ project.current ]
- : install
- : install-proper install-unversioned
- ;
-targets.create-metatarget top-level-target : [ project.current ]
- : stage
- : stage-proper stage-unversioned
- ;
-
-explicit install ;
-explicit stage ;
-
-stage-abs = [ path.native [ path.root $(stage-locate)/lib [ path.pwd ] ] ] ;
-
-# This target is built by default, and will forward to 'stage'
-# after producing some explanations.
-targets.create-metatarget top-level-target : [ project.current ]
- : forward
- : explain stage
- ;
-
-
-message explain :
-"\nBuilding the Boost C++ Libraries.\n\n" ;
-explicit explain ;
-
-rule pre-build ( )
-{
- local tl = [ modules.peek : top-level-targets ] ;
- if stage in $(tl) || install in $(tl)
- {
- # FIXME: remove if when Boost regression tests use trunk
- # bjam.
- if PAD in [ RULENAMES ]
- {
- configure.print-component-configuration ;
- }
- }
-}
-IMPORT $(__name__) : pre-build : : $(__name__).pre-build ;
-build-system.set-pre-build-hook $(__name__).pre-build ;
-
-rule post-build ( ok ? )
+# Make project ids of all libraries known.
+for local l in $(all-libraries)
 {
- if forward in [ modules.peek : top-level-targets ]
- {
- if $(ok)
- {
- ECHO
-"\n\nThe Boost C++ Libraries were successfully built!
-
-The following directory should be added to compiler include paths:
-
- $(BOOST_ROOT)
-
-The following directory should be added to linker library paths:
-
- $(stage-abs)
-" ;
- }
- }
+ use-project /boost/$(l) : libs/$(l)/build ;
 }
-IMPORT $(__name__) : post-build : : $(__name__).post-build ;
-build-system.set-post-build-hook $(__name__).post-build ;
 
 # This rule should be called from libraries' Jamfiles and will create two
 # targets, "install" and "stage", that will install or stage that library. The
@@ -740,18 +243,21 @@
 
     install stage : $(libraries) : <location>$(BOOST_STAGE_LOCATE) ;
 
- local c = [ project.current ] ;
- local project-module = [ $(c).project-module ] ;
- module $(project-module)
+ module [ CALLER_MODULE ]
     {
         explicit stage ;
         explicit install ;
     }
 }
 
+headers =
+ # The .SUNWCCh files are present in tr1 include directory and have to be installed,
+ # see http://lists.boost.org/Archives/boost/2007/05/121430.php
+ [ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
+ [ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* : CVS .svn ]
+ [ path.glob boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
+ ;
 
-# Make project ids of all libraries known.
-for local l in $(all-libraries)
-{
- use-project /boost/$(l) : libs/$(l)/build ;
-}
+# Declare special top-level targets that build and install the desired variants
+# of the libraries.
+boostcpp.declare-targets $(all-libraries) : $(headers) ;

Modified: branches/release/bootstrap.bat
==============================================================================
--- branches/release/bootstrap.bat (original)
+++ branches/release/bootstrap.bat 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -6,20 +6,21 @@
 REM (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 ECHO Building Boost.Jam build engine
-if exist ".\tools\build\v2\engine\src\bin.ntx86\bjam.exe" del tools\build\v2\engine\src\bin.ntx86\bjam.exe
-if exist ".\tools\build\v2\engine\src\bin.ntx86_64\bjam.exe" del tools\build\v2\engine\src\bin.ntx86_64\bjam.exe
-cd tools\build\v2\engine\src
+if exist ".\tools\build\v2\engine\bin.ntx86\bjam.exe" del tools\build\v2\engine\bin.ntx86\bjam.exe
+if exist ".\tools\build\v2\engine\bin.ntx86_64\bjam.exe" del tools\build\v2\engine\bin.ntx86_64\bjam.exe
+pushd tools\build\v2\engine
 
-call .\build.bat > ..\..\..\bjam.log
+call .\build.bat %* > ..\..\..\..\bootstrap.log
 @ECHO OFF
-cd ..\..\..\..\..
 
-if exist ".\tools\build\v2\engine\src\bin.ntx86\bjam.exe" (
- copy .\tools\build\v2\engine\src\bin.ntx86\bjam.exe . > nul
+popd
+
+if exist ".\tools\build\v2\engine\bin.ntx86\bjam.exe" (
+ copy .\tools\build\v2\engine\bin.ntx86\bjam.exe . > nul
    goto :bjam_built)
 
-if exist ".\tools\build\v2\engine\src\bin.ntx86_64\bjam.exe" (
- copy .\tools\build\v2\engine\src\bin.ntx86_64\bjam.exe . > nul
+if exist ".\tools\build\v2\engine\bin.ntx86_64\bjam.exe" (
+ copy .\tools\build\v2\engine\bin.ntx86_64\bjam.exe . > nul
    goto :bjam_built)
 
 goto :bjam_failure
@@ -32,7 +33,12 @@
 REM properly. Default to msvc for now.
 set toolset=msvc
 
-ECHO using %toolset% ; > project-config.jam
+ECHO import option ; > project-config.jam
+ECHO. >> project-config.jam
+ECHO using %toolset% ; >> project-config.jam
+ECHO. >> project-config.jam
+ECHO option.set keep-going : false ; >> project-config.jam
+ECHO. >> project-config.jam
 
 ECHO.
 ECHO Bootstrapping is done. To build, run:
@@ -57,14 +63,14 @@
 
 ECHO.
 ECHO Failed to build Boost.Jam build engine.
-ECHO Please consult bjam.log for furter diagnostics.
+ECHO Please consult bootstrap.log for furter diagnostics.
 ECHO.
 ECHO You can try to obtain a prebuilt binary from
 ECHO.
 ECHO http://sf.net/project/showfiles.php?group_id=7586^&package_id=72941
 ECHO.
 ECHO Also, you can file an issue at http://svn.boost.org
-ECHO Please attach bjam.log in that case.
+ECHO Please attach bootstrap.log in that case.
 
 goto :end
 

Modified: branches/release/bootstrap.sh
==============================================================================
--- branches/release/bootstrap.sh (original)
+++ branches/release/bootstrap.sh 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -185,7 +185,7 @@
 
 # Determine the toolset, if not already decided
 if test "x$TOOLSET" = x; then
- guessed_toolset=`$my_dir/tools/build/v2/engine/src/build.sh --guess-toolset`
+ guessed_toolset=`$my_dir/tools/build/v2/engine/build.sh --guess-toolset`
   case $guessed_toolset in
     acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
     TOOLSET=$guessed_toolset
@@ -215,7 +215,7 @@
 if test "x$BJAM" = x; then
   echo -n "Building Boost.Jam with toolset $TOOLSET... "
   pwd=`pwd`
- (cd "$my_dir/tools/build/v2/engine/src" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
+ (cd "$my_dir/tools/build/v2/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
   if [ $? -ne 0 ]; then
       echo
       echo "Failed to build Boost.Jam"
@@ -223,17 +223,18 @@
       exit 1
   fi
   cd "$pwd"
- arch=`cd $my_dir/tools/build/v2/engine/src && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
- BJAM="$my_dir/tools/build/v2/engine/src/$arch/bjam"
- echo "tools/build/v2/engine/src/$arch/bjam"
+ arch=`cd $my_dir/tools/build/v2/engine && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
+ BJAM="$my_dir/tools/build/v2/engine/$arch/b2"
+ echo "tools/build/v2/engine/$arch/b2"
   cp "$BJAM" .
+ cp "$my_dir/tools/build/v2/engine/$arch/bjam" .
+
 fi
 
 # TBD: Turn BJAM into an absolute path
 
 # If there is a list of libraries
 if test "x$flag_show_libraries" = xyes; then
- libraries=`$BJAM -d0 --show-libraries`
   cat <<EOF
 
 The following Boost libraries have portions that require a separate build
@@ -242,10 +243,7 @@
 
 The Boost libraries requiring separate building and installation are:
 EOF
- for lib in $libraries
- do
- echo " $lib"
- done
+ $BJAM -d0 --show-libraries | grep '^[[:space:]]*-'
   exit 0
 fi
 
@@ -373,19 +371,22 @@
 option.set exec-prefix : $EPREFIX ;
 option.set libdir : $LIBDIR ;
 option.set includedir : $INCLUDEDIR ;
+
+# Stop on first error
+option.set keep-going : false ;
 EOF
 
 cat << EOF
 
 Bootstrapping is done. To build, run:
 
- ./bjam
+ ./b2
     
 To adjust configuration, edit 'project-config.jam'.
 Further information:
 
    - Command line help:
- ./bjam --help
+ ./b2 --help
      
    - Getting started guide:
      http://www.boost.org/more/getting_started/unix-variants.html

Modified: branches/release/tools/build/v2/Jamroot.jam
==============================================================================
--- branches/release/tools/build/v2/Jamroot.jam (original)
+++ branches/release/tools/build/v2/Jamroot.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -15,13 +15,14 @@
 package.install boost-build-engine boost-build
   : # properties
   : # binaries
- bjam$(ext)
+ b2$(ext) bjam$(ext)
   ;
 
 local e1 = [ path.glob-tree $(SELF)/example : * : . .svn ] ;
 local e2 ;
 for e in $(e1)
 {
+ e = [ path.native $(e) ] ;
     if [ CHECK_IF_FILE $(e) ]
     {
         e2 += $(e) ;

Modified: branches/release/tools/build/v2/bootstrap.bat
==============================================================================
--- branches/release/tools/build/v2/bootstrap.bat (original)
+++ branches/release/tools/build/v2/bootstrap.bat 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -6,20 +6,22 @@
 REM (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 ECHO Bootstrapping the build engine
-if exist ".\engine\src\bin.ntx86\bjam.exe" del engine\src\bin.ntx86\bjam.exe
-if exist ".\engine\src\bin.ntx86_64\bjam.exe" del engine\src\bin.ntx86_64\bjam.exe
-cd engine\src
+if exist ".\engine\bin.ntx86\bjam.exe" del engine\bin.ntx86\bjam.exe
+if exist ".\engine\bin.ntx86_64\bjam.exe" del engine\bin.ntx86_64\bjam.exe
+cd engine
 
 call .\build.bat %* > ..\..\bootstrap.log
 @ECHO OFF
-cd ..\..
+cd ..
 
-if exist ".\engine\src\bin.ntx86\bjam.exe" (
- copy .\engine\src\bin.ntx86\bjam.exe . > nul
+if exist ".\engine\bin.ntx86\b2.exe" (
+ copy .\engine\bin.ntx86\b2.exe . > nul
+ copy .\engine\bin.ntx86\bjam.exe . > nul
    goto :bjam_built)
 
-if exist ".\engine\src\bin.ntx86_64\bjam.exe" (
- copy .\engine\src\bin.ntx86_64\bjam.exe . > nul
+if exist ".\engine\bin.ntx86_64\b2.exe" (
+ copy .\engine\bin.ntx86_64\b2.exe . > nul
+ copy .\engine\bin.ntx86_64\bjam.exe . > nul
    goto :bjam_built)
 
 goto :bjam_failure
@@ -29,7 +31,7 @@
 ECHO.
 ECHO Bootstrapping is done. To build, run:
 ECHO.
-ECHO .\bjam --prefix=DIR install
+ECHO .\b2 --prefix=DIR install
 ECHO.
 
 goto :end

Modified: branches/release/tools/build/v2/bootstrap.sh
==============================================================================
--- branches/release/tools/build/v2/bootstrap.sh (original)
+++ branches/release/tools/build/v2/bootstrap.sh 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -55,7 +55,7 @@
 
 # Determine the toolset, if not already decided
 if test "x$TOOLSET" = x; then
- guessed_toolset=`$my_dir/engine/src/build.sh --guess-toolset`
+ guessed_toolset=`$my_dir/engine/build.sh --guess-toolset`
   case $guessed_toolset in
     acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
     TOOLSET=$guessed_toolset
@@ -96,7 +96,7 @@
 if test "x$BJAM" = x; then
   echo -n "Bootstrapping the build engine with toolset $TOOLSET... "
   pwd=`pwd`
- (cd "$my_dir/engine/src" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
+ (cd "$my_dir/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
   if [ $? -ne 0 ]; then
       echo
       echo "Failed to bootstrap the build engine"
@@ -104,16 +104,17 @@
       exit 1
   fi
   cd "$pwd"
- arch=`cd $my_dir/engine/src && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
- BJAM="$my_dir/engine/src/$arch/bjam"
- echo "engine/src/$arch/bjam"
+ arch=`cd $my_dir/engine && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
+ BJAM="$my_dir/engine/$arch/b2"
+ echo "engine/$arch/bjam"
   cp "$BJAM" .
+ cp "$my_dir/engine/$arch/bjam" .
 fi
 
 cat << EOF
 
 Bootstrapping is done. To build and install, run:
 
- ./bjam install --prefix=<DIR>
+ ./b2 install --prefix=<DIR>
 
 EOF

Modified: branches/release/tools/build/v2/build-system.jam
==============================================================================
--- branches/release/tools/build/v2/build-system.jam (original)
+++ branches/release/tools/build/v2/build-system.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -543,14 +543,15 @@
 #
 ################################################################################
 
-{
+{
     if --version in $(.argv)
     {
         version.print ;
         EXIT ;
     }
-
-
+
+ version.verify-engine-version ;
+
     load-configuration-files ;
 
     local extra-properties ;
@@ -771,7 +772,6 @@
             # Prepare valid XML header and footer with some basic info.
             local nl = "
 " ;
- local jam = [ version.jam ] ;
             local os = [ modules.peek : OS OSPLAT JAMUNAME ] "" ;
             local timestamp = [ modules.peek : JAMDATE ] ;
             local cwd = [ PWD ] ;
@@ -780,7 +780,6 @@
             .header on $(xml-file) =
                 "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                 "$(nl)<build format=\"1.0\" version=\"$(bb-version)\">"
- "$(nl) <jam version=\"$(jam:J=.)\" />"
                 "$(nl) <os name=\"$(os[1])\" platform=\"$(os[2])\"><![CDATA[$(os[3-]:J= )]]></os>"
                 "$(nl) <timestamp><![CDATA[$(timestamp)]]></timestamp>"
                 "$(nl) <directory><![CDATA[$(cwd)]]></directory>"

Modified: branches/release/tools/build/v2/build/configure.jam
==============================================================================
--- branches/release/tools/build/v2/build/configure.jam (original)
+++ branches/release/tools/build/v2/build/configure.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -17,6 +17,8 @@
 import property ;
 import property-set ;
 import "class" : new ;
+import common ;
+import path ;
 
 rule log-summary ( )
 {
@@ -185,12 +187,9 @@
 # should never be called by users.
 rule set-log-file ( log-file )
 {
- # FIXME: remove this check as soon as Boost regression tests
- # start using trunk bjam
- if FILE_OPEN in [ RULENAMES ]
- {
- .log-fd = [ FILE_OPEN $(log-file) : "w" ] ;
- }
+ path.makedirs [ path.parent $(log-file) ] ;
+
+ .log-fd = [ FILE_OPEN $(log-file) : "w" ] ;
 }
 
 # Frontend rules

Modified: branches/release/tools/build/v2/build/project.jam
==============================================================================
--- branches/release/tools/build/v2/build/project.jam (original)
+++ branches/release/tools/build/v2/build/project.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -433,7 +433,8 @@
 
     # Import rules common to all project modules from project-rules module,
     # defined at the end of this file.
- modules.clone-rules project-rules $(module-name) ;
+ local rules = [ RULENAMES project-rules ] ;
+ IMPORT project-rules : $(rules) : $(module-name) : $(rules) ;
 
     local jamroot ;
 
@@ -881,15 +882,16 @@
         # expect the module to be found even though the directory is not in
         # BOOST_BUILD_PATH.
         local x = [ modules.peek : BOOST_BUILD_PATH ] ;
- local caller = [ modules.binding $(__name__) ] ;
- modules.poke : BOOST_BUILD_PATH : $(caller:D) $(x) ;
+ local caller = [ CALLER_MODULE ] ;
+ local caller-location = [ modules.binding $(caller) ] ;
+ modules.poke : BOOST_BUILD_PATH : $(caller-location:D) $(x) ;
         toolset.using $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
         modules.poke : BOOST_BUILD_PATH : $(x) ;
 
         # The above might have clobbered .current-project. Restore the correct
         # value.
         modules.poke project : .current-project
- : [ project.target $(__name__) ] ;
+ : [ project.target $(caller) ] ;
     }
 
     import modules ;
@@ -913,7 +915,8 @@
         import path ;
         import project ;
 
- local attributes = [ project.attributes $(__name__) ] ;
+ local caller = [ CALLER_MODULE ] ;
+ local attributes = [ project.attributes $(caller) ] ;
         if $(id)
         {
            $(attributes).set id : $(id) ;
@@ -991,7 +994,8 @@
     )
     {
         import project ;
- local p = [ project.target $(__name__) ] ;
+ local caller = [ CALLER_MODULE ] ;
+ local p = [ project.target $(caller) ] ;
         $(p).add-constant $(name) : $(value) ;
     }
 
@@ -1005,20 +1009,26 @@
         )
     {
         import project ;
- local p = [ project.target $(__name__) ] ;
+ local caller = [ CALLER_MODULE ] ;
+ local p = [ project.target $(caller) ] ;
         $(p).add-constant $(name) : $(value) : path ;
     }
 
     rule use-project ( id : where )
     {
+ import modules ;
         # See comment in 'load' for explanation.
- .used-projects += $(id) $(where) ;
+ local caller = [ CALLER_MODULE ] ;
+ modules.poke $(caller) : .used-projects :
+ [ modules.peek $(caller) : .used-projects ]
+ $(id) $(where) ;
     }
 
     rule build-project ( dir )
     {
         import project ;
- local attributes = [ project.attributes $(__name__) ] ;
+ local caller = [ CALLER_MODULE ] ;
+ local attributes = [ project.attributes $(caller) ] ;
 
         local now = [ $(attributes).get projects-to-build ] ;
         $(attributes).set projects-to-build : $(now) $(dir) ;

Modified: branches/release/tools/build/v2/build/version.jam
==============================================================================
--- branches/release/tools/build/v2/build/version.jam (original)
+++ branches/release/tools/build/v2/build/version.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -6,27 +6,45 @@
 import errors ;
 import numbers ;
 
+major = "2011" ;
+minor = "04" ;
 
 rule boost-build ( )
 {
- return "V2 (Milestone 12)" ;
+ return "$(major).$(minor)-svn" ;
 }
 
-
-rule jam ( )
+rule print ( )
 {
- local v = [ modules.peek : JAM_VERSION ] ;
- return $(v:J=.) ;
+ if [ verify-engine-version ]
+ {
+ ECHO "Boost.Build" [ boost-build ] ;
+ }
 }
 
-
-rule print ( )
+rule verify-engine-version ( )
 {
- ECHO "Boost.Build" [ boost-build ] ;
- ECHO "Boost.Jam" [ jam ] ;
+ local v = [ modules.peek : JAM_VERSION ] ;
+
+ if $(v[1]) != $(major) || $(v[2]) != $(minor)
+ {
+ local argv = [ modules.peek : ARGV ] ;
+ local e = $(argv[1]) ;
+ local l = [ modules.binding version ] ;
+ l = $(l:D) ;
+ l = $(l:D) ;
+ ECHO "warning: mismatched versions of Boost.Build engine and core" ;
+ ECHO "warning: Boost.Build engine ($(e)) is $(v:J=.)" ;
+ ECHO "warning: Boost.Build core (at $(l)) is" [ boost-build ] ;
+ }
+ else
+ {
+ return true ;
+ }
 }
 
 
+
 # Utility rule for testing whether all elements in a sequence are equal to 0.
 #
 local rule is-all-zeroes ( sequence * )

Modified: branches/release/tools/build/v2/doc/jamfile.jam
==============================================================================
--- branches/release/tools/build/v2/doc/jamfile.jam (original)
+++ branches/release/tools/build/v2/doc/jamfile.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -15,6 +15,7 @@
      <implicit-dependency>jam_docs
      <dependency>jam_docs
      <xsl:param>boost.root=../../../../..
+ <xsl:param>boost.defaults=Boost
    ;
    
 xml jam_docs : bjam.qbk ;

Modified: branches/release/tools/build/v2/doc/src/install.xml
==============================================================================
--- branches/release/tools/build/v2/doc/src/install.xml (original)
+++ branches/release/tools/build/v2/doc/src/install.xml 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -22,7 +22,7 @@
       <listitem>
         <simpara>
           Run either <command>.\bootstrap.bat</command> (on Windows), or
- <command>./bootstrap.sh</command> (on other operating systmes).
+ <command>./bootstrap.sh</command> (on other operating systems).
         </simpara>
       </listitem>
 
@@ -52,7 +52,7 @@
       <filename><replaceable>PREFIX</replaceable>/share/boost-build/examples/hello</filename>
       to a different directory, then change to that directory and run:
 <screen><filename><replaceable>PREFIX</replaceable>/bin/bjam</filename></screen>
- A simple executable should be build.
+ A simple executable should be built.
     </para>
 
       <!--

Modified: branches/release/tools/build/v2/doc/src/reference.xml
==============================================================================
--- branches/release/tools/build/v2/doc/src/reference.xml (original)
+++ branches/release/tools/build/v2/doc/src/reference.xml 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -119,6 +119,14 @@
       </varlistentry>
 
       <varlistentry>
+ <term><literal>preprocessed</literal></term>
+ <indexterm><primary>preprocessed</primary></indexterm>
+
+ <listitem><para>Creates an preprocessed source file. The arguments follow the
+ <link linkend="bbv2.main-target-rule-syntax">common syntax</link>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
         <term><literal>glob</literal></term>
 
         <listitem><para>The <code>glob</code> rule takes a list shell pattern
@@ -266,6 +274,7 @@
 
     <variablelist>
       <varlistentry><term><literal>variant</literal></term>
+ <indexterm><primary>variant</primary></indexterm>
 
         <listitem>
           <para>
@@ -321,6 +330,7 @@
 
       <varlistentry id="bbv2.overview.builtins.features.link">
         <term><literal>link</literal></term>
+ <indexterm><primary>link</primary></indexterm>
 
         <listitem>
 
@@ -356,6 +366,7 @@
 
       <varlistentry>
         <term><literal>threading</literal></term>
+ <indexterm><primary>threading</primary></indexterm>
 
         <listitem>
 
@@ -373,7 +384,9 @@
         </listitem>
       </varlistentry>
 
- <varlistentry><term><literal>source</literal></term>
+ <varlistentry>
+ <term><literal>source</literal></term>
+ <indexterm><primary>source</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -388,7 +401,9 @@
         </listitem>
       </varlistentry>
 
- <varlistentry><term><literal>library</literal></term>
+ <varlistentry>
+ <term><literal>library</literal></term>
+ <indexterm><primary>library</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -404,6 +419,7 @@
 
       <varlistentry><term><anchor id="bbv2.builtin.features.dependency"/>
           <literal>dependency</literal></term>
+ <indexterm><primary>dependency</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -442,6 +458,7 @@
 
       <varlistentry><term><anchor id="bbv2.builtin.features.use"/>
           <literal>use</literal></term>
+ <indexterm><primary>use</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -460,8 +477,10 @@
         </listitem>
       </varlistentry>
 
- <varlistentry><term><anchor id="bbv2.reference.features.dll-path"/>
- <literal>dll-path</literal></term>
+ <varlistentry>
+ <term><anchor id="bbv2.reference.features.dll-path"/>
+ <literal>dll-path</literal></term>
+ <indexterm><primary>dll-path</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -473,7 +492,9 @@
           </simpara>
         </listitem></varlistentry>
 
- <varlistentry><term><literal>hardcode-dll-paths</literal></term>
+ <varlistentry>
+ <term><literal>hardcode-dll-paths</literal></term>
+ <indexterm><primary>hardcode-dll-paths</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -514,6 +535,7 @@
 
       <varlistentry>
         <term><literal>include</literal></term>
+ <indexterm><primary>include</primary></indexterm>
 
         <listitem>
           <simpara>
@@ -523,6 +545,21 @@
         </listitem>
       </varlistentry>
 
+ <varlistentry>
+ <term><literal>define</literal></term>
+ <indexterm><primary>define</primary></indexterm>
+
+ <listitem>
+ <simpara>
+ Specifies an preprocessor symbol that should be defined on the command
+ line. You may either specify just the symbol, which will be defined
+ without any value, or both the symbol and the value, separated by
+ equal sign.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+
       <varlistentry><term><literal>warnings</literal></term>
         <listitem>
           <simpara>
@@ -864,6 +901,7 @@
           C++</ulink> command-line tools on Microsoft Windows. The supported
           products and versions of command line tools are listed below:</para>
           <itemizedlist>
+ <listitem><para>Visual Studio 2010&#x2014;10.0</para></listitem>
             <listitem><para>Visual Studio 2008&#x2014;9.0</para></listitem>
             <listitem><para>Visual Studio 2005&#x2014;8.0</para></listitem>
             <listitem><para>Visual Studio .NET 2003&#x2014;7.1</para></listitem>
@@ -1413,6 +1451,314 @@
 
       </section>
 
+ <section>
+ <title>Documentation tools</title>
+
+ <para>Boost.Build support for the Boost documentation tools is
+ documented below.
+ </para>
+
+ <section id="bbv2.reference.tools.doc.xsltproc">
+ <title>xsltproc</title>
+ <indexterm><primary>xsltproc</primary></indexterm>
+
+ <para>To use xsltproc, you first need to configure it using the following syntax:</para>
+ <programlisting>
+using xsltproc : <optional><replaceable>xsltproc</replaceable></optional> ;
+</programlisting>
+ <para>
+ Where <replaceable>xsltproc</replaceable> is the xsltproc executable.
+ If <replaceable>xsltproc</replaceable> is not specified, and the
+ variable XSLTPROC is set, the value of XSLTPROC will be used.
+ Otherwise, xsltproc will be searched for in PATH.
+ </para>
+
+
+ &option_list_intro;
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>xsl:param</primary></indexterm>
+ <term><literal>xsl:param</literal></term>
+ <listitem>
+ <para>Values should have the form
+ <replaceable>name</replaceable>=<replaceable>value</replaceable></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>xsl:path</primary></indexterm>
+ <term><literal>xsl:path</literal></term>
+ <listitem>
+ <para>Sets an additional search path for xi:include elements.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>catalog</primary></indexterm>
+ <term><literal>catalog</literal></term>
+ <listitem>
+ <para>A catalog file used to rewrite remote URL's to a local copy.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>The xsltproc module provides the following rules. Note that
+ these operate on jam targets and are intended to be used by another
+ toolset, such as boostbook, rather than directly by users.
+ </para>
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>xslt</primary></indexterm>
+ <term><literal>xslt</literal></term>
+ <listitem>
+ <programlisting>
+rule xslt ( target : source stylesheet : properties * )
+</programlisting>
+ <para>Runs xsltproc to create a single output file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>xslt-dir</primary></indexterm>
+ <term><literal>xslt-dir</literal></term>
+ <listitem>
+ <programlisting>
+rule xslt-dir ( target : source stylesheet : properties * : dirname )
+</programlisting>
+ <para>Runs xsltproc to create multiple outputs in a directory.
+ <literal>dirname</literal> is unused, but exists for
+ historical reasons. The output directory is determined from the
+ target.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+ <section id="bbv2.reference.tools.doc.boostbook">
+ <title>boostbook</title>
+ <indexterm><primary>boostbook</primary><secondary>module</secondary></indexterm>
+
+ <para>To use boostbook, you first need to configure it using the following syntax:</para>
+ <programlisting>
+using boostbook : <optional><replaceable>docbook-xsl-dir</replaceable></optional> : <optional><replaceable>docbook-dtd-dir</replaceable></optional> : <optional><replaceable>boostbook-dir</replaceable></optional> ;
+</programlisting>
+ <para>
+ <replaceable>docbook-xsl-dir</replaceable> is the DocBook XSL stylesheet
+ directory. If not provided, we use DOCBOOK_XSL_DIR from the environment
+ (if available) or look in standard locations. Otherwise, we let the
+ XML processor load the stylesheets remotely.
+ </para>
+
+ <para>
+ <replaceable>docbook-dtd-dir</replaceable> is the DocBook DTD directory.
+ If not provided, we use DOCBOOK_DTD_DIR From the environment (if
+ available) or look in standard locations. Otherwise, we let the XML
+ processor load the DTD remotely.
+ </para>
+
+ <para>
+ <replaceable>boostbook-dir</replaceable> is the BoostBook directory
+ with the DTD and XSL subdirs.
+ </para>
+
+ <para>The boostbook module depends on xsltproc. For pdf or ps output,
+ it also depends on fop.
+ </para>
+
+ &option_list_intro;
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>format</primary></indexterm>
+ <indexterm><primary>html</primary></indexterm>
+ <indexterm><primary>xhtml</primary></indexterm>
+ <indexterm><primary>htmlhelp</primary></indexterm>
+ <indexterm><primary>onehtml</primary></indexterm>
+ <indexterm><primary>man</primary></indexterm>
+ <indexterm><primary>pdf</primary></indexterm>
+ <indexterm><primary>ps</primary></indexterm>
+ <indexterm><primary>docbook</primary></indexterm>
+ <indexterm><primary>fo</primary></indexterm>
+ <indexterm><primary>tests</primary></indexterm>
+ <term><literal>format</literal></term>
+ <listitem>
+ <para>
+ <emphasis role="bold">Allowed values:</emphasis>
+ <literal>html</literal>, <literal>xhtml</literal>,
+ <literal>htmlhelp</literal>, <literal>onehtml</literal>,
+ <literal>man</literal>, <literal>pdf</literal>,
+ <literal>ps</literal>, <literal>docbook</literal>,
+ <literal>fo</literal>, <literal>tests</literal>.
+ </para>
+
+
+ <para>The <literal>format</literal> feature determines the type
+ of output produced by the boostbook rule.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>The boostbook module defines a rule for creating a target
+ following the common syntax.</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>boostbook</primary><secondary>rule</secondary></indexterm>
+ <term><literal>boostbook</literal></term>
+ <listitem>
+ <programlisting>
+rule boostbook ( target-name : sources * : requirements * : default-build * )
+</programlisting>
+ <para>Creates a boostbook target.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+ <section id="bbv2.reference.tools.doc.doxygen">
+ <title>doxygen</title>
+ <indexterm><primary>doxygen</primary></indexterm>
+
+ <para>To use doxygen, you first need to configure it using the following syntax:</para>
+ <programlisting>
+using doxygen : <optional><replaceable>name</replaceable></optional> ;
+</programlisting>
+ <para>
+ <replaceable>name</replaceable> is the doxygen command.
+ If it is not specified, it will be found in the PATH.
+ </para>
+
+ <para>The doxygen module depends on the boostbook module when
+ generating BoostBook XML.
+ </para>
+
+ &option_list_intro;
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>doxygen:param</primary></indexterm>
+ <term><literal>doxygen:param</literal></term>
+ <listitem>
+ <para>All the values of <literal>doxygen:param</literal>
+ are added to the doxyfile.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>prefix</primary></indexterm>
+ <term><literal>prefix</literal></term>
+ <listitem>
+ <para>Specifies the common prefix of all headers
+ when generating BoostBook XML. Everything before
+ this will be stripped off.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>reftitle</primary></indexterm>
+ <term><literal>reftitle</literal></term>
+ <listitem>
+ <para>Specifies the title of the library-reference section,
+ when generating BoostBook XML.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <indexterm><primary>doxygen:xml-imagedir</primary></indexterm>
+ <term><literal>doxygen:xml-imagedir</literal></term>
+ <listitem>
+ <para>When generating BoostBook XML, specifies the
+ directory in which to place the images generated
+ from LaTex formulae.</para>
+ <warning><para>The path is interpreted relative to the
+ current working directory, not relative to the Jamfile.
+ This is necessary to match the behavior of BoostBook.
+ </para></warning>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>The doxygen module defines a rule for creating a target
+ following the common syntax.</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <indexterm><primary>doxygen</primary><secondary>rule</secondary></indexterm>
+ <term><literal>doxygen</literal></term>
+ <listitem>
+ <programlisting>
+rule doxygen ( target : sources * : requirements * : default-build * : usage-requirements * )
+</programlisting>
+ <para>Creates a doxygen target. If the target name
+ ends with .html, then this will generate an html
+ directory. Otherwise it will generate BoostBook XML.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+ <section id="bbv2.reference.tools.doc.quickbook">
+ <title>quickbook</title>
+ <indexterm><primary>quickbook</primary></indexterm>
+
+ <para>The quickbook module provides a generator to convert from
+ Quickbook to BoostBook XML.</para>
+
+ <para>To use quickbook, you first need to configure it using the following syntax:</para>
+ <programlisting>
+using quickbook : <optional><replaceable>command</replaceable></optional> ;
+</programlisting>
+ <para>
+ <replaceable>command</replaceable> is the quickbook executable.
+ If it is not specified, Boost.Build will compile it from source.
+ If it is unable to find the source it will search for a quickbook
+ executable in PATH.
+ </para>
+
+ </section>
+
+ <section id="bbv2.reference.tools.doc.fop">
+ <title>fop</title>
+ <indexterm><primary>fop</primary></indexterm>
+
+ <para>The fop module provides generators to convert from
+ XSL formatting objects to Postscript and PDF.</para>
+
+ <para>To use fop, you first need to configure it using the following syntax:</para>
+ <programlisting>
+using fop : <optional><replaceable>fop-command</replaceable></optional> : <optional><replaceable>java-home</replaceable></optional> : <optional><replaceable>java</replaceable></optional> ;
+</programlisting>
+ <para>
+ <replaceable>fop-command</replaceable> is the command to run fop.
+ If it is not specified, Boost.Build will search for it in PATH and
+ FOP_HOME.
+ </para>
+ <para>
+ Either <replaceable>java-home</replaceable> or
+ <replaceable>java</replaceable>
+ can be used to specify where to find java.
+ </para>
+
+ </section>
+
+ </section>
+
     </section>
 
   <section id="bbv2.reference.buildprocess">

Copied: branches/release/tools/build/v2/engine/Jambase (from r68630, /trunk/tools/build/v2/engine/Jambase)
==============================================================================
--- /trunk/tools/build/v2/engine/Jambase (original)
+++ branches/release/tools/build/v2/engine/Jambase 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -118,7 +118,8 @@
 }
 
 
-if [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]
+if [ MATCH .*(b2).* : $(ARGV[1]:BL) ]
+ || [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]
   || $(BOOST_ROOT) # A temporary measure so Jam works with Boost.Build v1.
 {
     # We attempt to load "boost-build.jam" by searching from the current

Copied: branches/release/tools/build/v2/engine/build.jam (from r68630, /trunk/tools/build/v2/engine/build.jam)
==============================================================================
--- /trunk/tools/build/v2/engine/build.jam (original)
+++ branches/release/tools/build/v2/engine/build.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -17,12 +17,12 @@
 }
 
 # Platform related specifics.
-if $(NT) { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }
-else if $(OS2) { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }
-else if $(VMS) { rule .path { return "[.$(<:J=/)]" ; } }
-else if $(MAC) { rule .path { return ":$(<:J=\:)" ; } }
+if $(OS) = NT { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }
+else if $(OS) = OS2 { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }
+else if $(OS) = VMS { rule .path { return "[.$(<:J=/)]" ; } }
+else if $(OS) = MAC { rule .path { return ":$(<:J=\:)" ; } }
 else { rule .path { return "$(<:J=/)" ; } }
-if $(VMS) { . = "_" ; }
+if $(OS) = VMS { . = "_" ; }
 else { . = "." ; }
 ./ ?= "" ;
 
@@ -67,7 +67,7 @@
 }
 if $(with-python)
 {
- if $(NT)
+ if $(OS) = NT
     {
         --python-include = [ .path $(python-location) include ] ;
         --python-lib = ;
@@ -261,7 +261,7 @@
 ## Metrowerks CodeWarrior 8.x
 {
     # Even though CW can compile all files at once, it crashes if it tries in the bjam case.
- local mwcc = ; if $(NT) { mwcc = mwcc ; } else { mwcc = mwc$(OSPLAT:L) ; }
+ local mwcc = ; if $(OS) = NT { mwcc = mwcc ; } else { mwcc = mwc$(OSPLAT:L) ; }
     mwcc ?= mwcc ;
     toolset metrowerks $(mwcc) : "-o " : -D
         : -c -lang c -subsystem console -cwd include
@@ -454,12 +454,12 @@
 
 # Put executables in platform-specific subdirectory.
 locate-target = $(LOCATE_TARGET) ;
-if $(VMS)
+if $(OS) = VMS
 {
     locate-target ?= bin$(.)vms ;
     platform = vms ;
 }
-else if $(MAC)
+else if $(OS) = MAC
 {
     locate-target ?= bin$(.)$(OS:L)$(OSPLAT:L) ;
     platform = $(OS:L)$(OSPLAT:L) ;
@@ -505,19 +505,19 @@
     modules/path.c modules/regex.c modules/property-set.c
     modules/sequence.c modules/order.c
     ;
-if $(NT)
+if $(OS) = NT
 {
     jam.source += execnt.c filent.c pathunix.c ;
 }
-else if $(OS2)
+else if $(OS) = OS2
 {
     jam.source += execunix.c fileos2.c pathunix.c ;
 }
-else if $(VMS)
+else if $(OS) = VMS
 {
     jam.source += execvms.c filevms.c pathvms.c ;
 }
-else if $(MAC)
+else if $(OS) = MAC
 {
     jam.source += execmac.c filemac.c pathmac.c ;
 }
@@ -561,11 +561,11 @@
     --defs += OPT_DUMA ;
 }
 
-if ( $(OS) = NT || $(NT) ) && ! NT in $(--defs)
+if ( $(OS) = NT ) && ! NT in $(--defs)
 {
     --defs += NT ;
 }
-if $(VMS)
+if $(OS) = VMS
 {
     --defs += VMS ;
 }
@@ -591,22 +591,22 @@
 {
     [DELETE] clean : $(<) ;
 }
-if $(NT) { actions piecemeal together existing [DELETE] {
+if $(OS) = NT { actions piecemeal together existing [DELETE] {
     del /F /Q "$(>)"
 } }
-if $(UNIX) { actions piecemeal together existing [DELETE] {
+if $(UNIX) = true { actions piecemeal together existing [DELETE] {
     rm -f "$(>)"
 } }
-if $(VMS) { actions piecemeal together existing [DELETE] {
+if $(OS) = VMS { actions piecemeal together existing [DELETE] {
     DELETE $(>[--2]:J=";*, ") $(>[-1]);*
 } }
-if $(NT) {
+if $(OS) = NT {
     --chmod+w = "attrib -r " ;
 }
-if $(UNIX) {
+if $(UNIX) = true {
     --chmod+w = "chmod +w " ;
 }
-if $(VMS) {
+if $(OS) = VMS {
     --chmod+w = "SET FILE/PROT=(S:RWED) " ;
 }
 
@@ -616,20 +616,20 @@
     if $(<:P) { DEPENDS $(<) : $(<:P) ; .mkdir $(<:P) ; }
     if ! $(md<$(<)>) { [MKDIR] $(<) ; md<$(<)> = - ; }
 }
-if $(NT) { actions [MKDIR] {
+if $(OS) = NT { actions [MKDIR] {
     md "$(<)"
 } }
-if $(UNIX) { actions [MKDIR] {
+if $(UNIX) = true { actions [MKDIR] {
     mkdir "$(<)"
 } }
-if $(VMS) { actions [MKDIR] {
+if $(OS) = VMS { actions [MKDIR] {
     CREATE/DIR $(<J=", ")
 } }
 
 rule .exe
 {
     local exe = $(<) ;
- if $(NT) || ( $(UNIX) && $(OS) = CYGWIN ) || $(VMS) { exe = $(exe:S=.exe) ; }
+ if $(OS) = NT || ( $(UNIX) = true && $(OS) = CYGWIN ) || $(OS) = VMS { exe = $(exe:S=.exe) ; }
     LOCATE on $(exe) = $(locate-target) ;
     DEPENDS all : $(exe) ;
     .mkdir $(locate-target) ;
@@ -670,7 +670,7 @@
 else { actions [COMPILE] {
     "$(--cc)" "$(--bin)$(<:D=)" "$(--dir)$(<:D)$(./)" $(--out)$(<) "$(--def[1])$(--defs:J=$(--def[2]))$(--def[3])" "$(--flags)" "$(--libs)" "$(>)"
 } }
-if $(VMS) { actions [COMPILE.LINK] {
+if $(OS) = VMS { actions [COMPILE.LINK] {
     "$(--link)" $(--link-bin)$(<:D=) $(--link-dir)$(<:D)$(./) $(--link-out)$(<) $(--link-def)$(--link-defs) $(--link-flags) "$(--link-libs)" $(>J=", ")
 } }
 else { actions [COMPILE.LINK] {
@@ -684,29 +684,43 @@
     [LINK] $(<) : $(>) ;
     .clean $(<) ;
 }
-if $(NT) { actions [LINK] {
+if $(OS) = NT { actions [LINK] {
     copy "$(>)" "$(<)"
 } }
-if $(UNIX) { actions [LINK] {
+if $(UNIX) = true { actions [LINK] {
     ln -fs "$(>)" "$(<)"
 } }
-if $(VMS) { actions [LINK] {
+if $(OS) = VMS { actions [LINK] {
     COPY/REPLACE $(>) $(<)
 } }
 
+rule .copy
+{
+ DEPENDS all : $(<) ;
+ DEPENDS $(<) : $(>) ;
+ [COPY] $(<) : $(>) ;
+ .clean $(<) ;
+}
+
+# Will be redefined later.
+actions [COPY]
+{
+}
+
+
 rule .move
 {
     DEPENDS $(<) : $(>) ;
     [MOVE] $(<) : $(>) ;
 }
-if $(NT) { actions [MOVE] {
+if $(OS) = NT { actions [MOVE] {
     del /f "$(<)"
     rename "$(>)" "$(<)"
 } }
-if $(UNIX) { actions [MOVE] {
+if $(UNIX) = true { actions [MOVE] {
     mv -f "$(>)" "$(<)"
 } }
-if $(VMS) { actions [MOVE] {
+if $(OS) = VMS { actions [MOVE] {
     RENAME "$(>)" "$(<)"
 } }
 
@@ -735,7 +749,7 @@
 }
 
 # How to build the grammar.
-if $(NT)
+if $(OS) = NT
 {
     SUFEXE = .exe ;
     # try some other likely spellings...
@@ -765,7 +779,7 @@
     LEAVES $(<) ;
     [YACC] $(<) : $(>) ;
 }
-if $(NT) { actions [YACC] {
+if $(OS) = NT { actions [YACC] {
     "$(yacc)" "$(>)"
     if not errorlevel 1 (
         del /f "$(<[1])"
@@ -774,7 +788,7 @@
         rename y.tab$(<[2]:S) "$(<[2])"
     ) else set _error_ =
 } }
-if $(UNIX) { actions [YACC] {
+if $(UNIX) = true { actions [YACC] {
     if ` "$(yacc)" "$(>)" ` ; then
         mv -f y.tab$(<[1]:S) "$(<[1])"
         mv -f y.tab$(<[2]:S) "$(<[2])"
@@ -782,7 +796,7 @@
         exit 1
     fi
 } }
-if $(VMS) { actions [YACC] {
+if $(OS) = VMS { actions [YACC] {
     IF "$(yacc)" $(>)
     THEN
         RENAME y_tab$(<[1]:S) $(<[1])
@@ -821,16 +835,15 @@
 {
     $(>).exe = [ .exe $(>) : $(jam.source) ] ;
     DEPENDS all : $($(>).exe) ;
-
- if $(debug)
- {
- $(<).exe = $(<:S=$($(>).exe:S)) ;
- LOCATE on $($(<).exe) = $(locate-target) ;
- .link $($(<).exe) : $($(>).exe) ;
- DEPENDS all : $($(<).exe) ;
- }
+
+ # Make a copy under the old name.
+ $(<).exe = $(<:S=$($(>).exe:S)) ;
+ LOCATE on $($(<).exe) = $(locate-target) ;
+ .copy $($(<).exe) : $($(>).exe) ;
+ DEPENDS all : $($(<).exe) ;
 }
-.jam jam : bjam ;
+.jam bjam : b2 ;
+
 
 # Scan sources for header dependencies.
 # WARNING: Yes those are *REAL TABS* below. DO NOT CHANGE,
@@ -900,7 +913,7 @@
     $(dist.bin:S=$(bjam.exe:S))
     ;
 
-if $(NT)
+if $(OS) = NT
 {
     zip ?= [ GLOB "$(ProgramFiles:J= )\\7-ZIP" "C:\\Program Files\\7-ZIP" : "7z.exe" ] ;
     zip ?= [ GLOB "$(ProgramFiles:J= )\\7-ZIP" "C:\\Program Files\\7-ZIP" : "7zn.exe" ] ;
@@ -922,7 +935,7 @@
     copy /Y "$(>)" "$(<)" >NUL:
     }
 }
-if $(UNIX)
+if $(UNIX) = true
 {
     tar ?= [ GLOB $(PATH) : star bsdtar tar ] ;
     tar = $(tar[1]) ;
@@ -949,14 +962,14 @@
 rule .binary
 {
     local zip = ;
- if $(NT) { zip = $($(<).exe:S=.zip) ; }
- if $(UNIX) { zip = $($(<).exe:S=.tgz) ; }
+ if $(OS) = NT { zip = $($(<).exe:S=.zip) ; }
+ if $(UNIX) = true { zip = $($(<).exe:S=.tgz) ; }
     zip = $(zip:S=)-$(VERSION)-$(RELEASE)-$(platform)$(zip:S) ;
     DEPENDS $(zip) : $($(<).exe) ;
     DEPENDS dist : $(zip) ;
     #~ LOCATE on $(zip) = $(locate-target) ;
- if $(NT) { [ZIP] $(zip) : $($(<).exe) ; }
- if $(UNIX) { [PACK] $(zip) : $($(<).exe) ; }
+ if $(OS) = NT { [ZIP] $(zip) : $($(<).exe) ; }
+ if $(UNIX) = true { [PACK] $(zip) : $($(<).exe) ; }
     .clean $(zip) ;
 }
 
@@ -982,8 +995,8 @@
     }
 
     local pack = ;
- if $(NT) { pack = $(dst-dir).zip ; }
- if $(UNIX) { pack = $(dst-dir).tgz ; }
+ if $(OS) = NT { pack = $(dst-dir).zip ; }
+ if $(UNIX) = true { pack = $(dst-dir).tgz ; }
 
     DEPENDS dist : $(pack) ;
     DEPENDS $(pack) : $(dst-files) ;

Deleted: branches/release/tools/build/v2/engine/build_dist.bat
==============================================================================
--- branches/release/tools/build/v2/engine/build_dist.bat 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
+++ (empty file)
@@ -1,36 +0,0 @@
-_at_ECHO OFF
-
-REM ~ Copyright 2006-2007 Rene Rivera.
-REM ~ Distributed under the Boost Software License, Version 1.0.
-REM ~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-REM ~ Make stage for building.
-rd /S /Q stage
-md stage
-cd stage
-
-REM ~ Copy sources to stage.
-cd ..\src
-xcopy *.bat ..\stage\
-xcopy *.jam ..\stage\
-xcopy *.sh ..\stage\
-xcopy *.com ..\stage\
-xcopy *.c ..\stage\
-xcopy *.h ..\stage\
-xcopy *.y ..\stage\
-xcopy *.yy ..\stage\
-xcopy Jambase ..\stage\
-xcopy /S /I /Y modules ..\stage\modules
-xcopy /S /I /Y boehm_gc ..\stage\boehm_gc
-cd ..\stage
-call .\build.bat
-
-REM ~ Build docs, and copy result to stage.
-cd ..\doc
-rd /S /Q html
-..\stage\bin.ntx86\bjam --v2
-xcopy /S /I /Y html ..\stage
-cd ..\stage
-
-REM ~ Build distribution archives.
-call .\build.bat --- dist

Deleted: branches/release/tools/build/v2/engine/build_dist.sh
==============================================================================
--- branches/release/tools/build/v2/engine/build_dist.sh 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-#~ Copyright 2006-2007 Rene Rivera.
-#~ Distributed under the Boost Software License, Version 1.0.
-#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-#~ Make stage for building.
-rm -rf stage
-mkdir stage
-cd stage
-
-#~ Copy sources to stage.
-cd ../src
-cp -R *.bat *.jam *.sh *.com *.c *.h *.y *.yy Jambase modules boehm_gc ../stage
-find ../stage -name '.svn' -type d -exec rm -rf '{}' ';'
-cd ../stage
-./build.sh
-
-#~ Build docs, and copy result to stage.
-cd ../doc
-rm -Rf html
-../stage/bin.*/bjam --v2
-cp -R html/* ../stage
-cd ../stage
-
-#~ Build distribution archives.
-sh ./build.sh --- dist

Copied: branches/release/tools/build/v2/engine/builtins.c (from r68630, /trunk/tools/build/v2/engine/builtins.c)
==============================================================================
--- /trunk/tools/build/v2/engine/builtins.c (original)
+++ branches/release/tools/build/v2/engine/builtins.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -399,6 +399,11 @@
           bind_builtin( "SELF_PATH", builtin_self_path, 0, args );
       }
 
+ {
+ char * args [] = { "path", 0 };
+ bind_builtin( "MAKEDIR", builtin_makedir, 0, args );
+ }
+
       /* Initialize builtin modules. */
       init_set();
       init_path();
@@ -1757,6 +1762,20 @@
     }
 }
 
+LIST *builtin_makedir( PARSE *parse, FRAME *frame )
+{
+ LIST *path = lol_get(frame->args, 0);
+
+ if (file_mkdir(path->string) == 0)
+ {
+ LIST *result = list_new (0, newstr(path->string));
+ return result;
+ }
+ else
+ {
+ return L0;
+ }
+}
 
 #ifdef HAVE_PYTHON
 

Copied: branches/release/tools/build/v2/engine/builtins.h (from r68630, /trunk/tools/build/v2/engine/builtins.h)
==============================================================================
--- /trunk/tools/build/v2/engine/builtins.h (original)
+++ branches/release/tools/build/v2/engine/builtins.h 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -61,6 +61,7 @@
 LIST *builtin_pad( PARSE *parse, FRAME *frame );
 LIST *builtin_precious( PARSE *parse, FRAME *frame );
 LIST *builtin_self_path( PARSE *parse, FRAME *frame );
+LIST *builtin_makedir( PARSE *parse, FRAME *frame );
 
 void backtrace( FRAME *frame );
 extern int last_update_now_status;

Copied: branches/release/tools/build/v2/engine/filemac.c (from r68630, /trunk/tools/build/v2/engine/filemac.c)
==============================================================================
--- /trunk/tools/build/v2/engine/filemac.c (original)
+++ branches/release/tools/build/v2/engine/filemac.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -157,6 +157,11 @@
     return S_ISREG( statbuf.st_mode ) ? 1 : 0;
 }
 
+int file_mkdir(char *pathname)
+{
+ return mkdir(pathname, 0766);
+}
+
 
 /*
  * file_archscan() - scan an archive for files.

Copied: branches/release/tools/build/v2/engine/filent.c (from r68630, /trunk/tools/build/v2/engine/filent.c)
==============================================================================
--- /trunk/tools/build/v2/engine/filent.c (original)
+++ branches/release/tools/build/v2/engine/filent.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -32,6 +32,7 @@
 # include <io.h>
 # include <sys/stat.h>
 # include <ctype.h>
+# include <direct.h>
 
 /*
  * filent.c - scan directories and archives on NT
@@ -184,8 +185,23 @@
         unsigned long len = strlen(d->name);
         if ( len == 1 && d->name[0] == '\\' )
             (*func)( closure, d->name, 1 /* stat()'ed */, d->time );
- else if ( len == 3 && d->name[1] == ':' )
+ else if ( len == 3 && d->name[1] == ':' ) {
             (*func)( closure, d->name, 1 /* stat()'ed */, d->time );
+ /* We've just entered 3-letter drive name spelling (with trailing
+ slash), into the hash table. Now enter two-letter variant,
+ without trailing slash, so that if we try to check whether
+ "c:" exists, we hit it.
+
+ Jam core has workarounds for that. Given:
+ x = c:\whatever\foo ;
+ p = $(x:D) ;
+ p2 = $(p:D) ;
+ There will be no trailing slash in $(p), but there will be one
+ in $(p2). But, that seems rather fragile.
+ */
+ d->name[2] = 0;
+ (*func)( closure, d->name, 1 /* stat()'ed */, d->time );
+ }
     }
 
     /* Now enter contents of directory */
@@ -243,6 +259,10 @@
     return ff->is_file;
 }
 
+int file_mkdir(char *pathname)
+{
+ return _mkdir(pathname);
+}
 
 /*
  * file_archscan() - scan an archive for files

Copied: branches/release/tools/build/v2/engine/filesys.h (from r68630, /trunk/tools/build/v2/engine/filesys.h)
==============================================================================
--- /trunk/tools/build/v2/engine/filesys.h (original)
+++ branches/release/tools/build/v2/engine/filesys.h 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -30,6 +30,7 @@
 
 void file_build1(PATHNAME *f, string* file) ;
 int file_is_file(char* filename);
+int file_mkdir(char *pathname);
 
 typedef struct file_info_t file_info_t ;
 struct file_info_t

Copied: branches/release/tools/build/v2/engine/fileunix.c (from r68630, /trunk/tools/build/v2/engine/fileunix.c)
==============================================================================
--- /trunk/tools/build/v2/engine/fileunix.c (original)
+++ branches/release/tools/build/v2/engine/fileunix.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -17,6 +17,7 @@
 # include "pathsys.h"
 # include "newstr.h"
 # include <stdio.h>
+# include <sys/stat.h>
 
 #if defined(sun) || defined(__sun) || defined(linux)
 # include <unistd.h> /* needed for read and close prototype */
@@ -253,6 +254,10 @@
     return ff->is_file;
 }
 
+int file_mkdir(char* pathname)
+{
+ return mkdir(pathname, 0766);
+}
 
 /*
  * file_archscan() - scan an archive for files

Deleted: branches/release/tools/build/v2/engine/index.html
==============================================================================
--- branches/release/tools/build/v2/engine/index.html 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
+++ (empty file)
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="refresh" content="0; URL=../../../../doc/html/jam.html" />
- <!-- boostinspect:nolink -->
- <!--
- Copyright 2006 Rene Rivera.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
- -->
-
- <title></title>
-</head>
-
-<body>
- Automatic redirection failed, please go to <a href=
- "../../../../doc/html/jam.html">../../../../doc/html/jam.html</a>
-</body>
-</html>

Copied: branches/release/tools/build/v2/engine/jam.c (from r68630, /trunk/tools/build/v2/engine/jam.c)
==============================================================================
--- /trunk/tools/build/v2/engine/jam.c (original)
+++ branches/release/tools/build/v2/engine/jam.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -217,7 +217,7 @@
 {
     int n;
     char * s;
- struct option optv[N_OPTS];
+ struct bjam_option optv[N_OPTS];
     char const * all = "all";
     int status;
     int arg_c = argc;

Copied: branches/release/tools/build/v2/engine/jambase.c (from r68630, /trunk/tools/build/v2/engine/jambase.c)
==============================================================================
--- /trunk/tools/build/v2/engine/jambase.c (original)
+++ branches/release/tools/build/v2/engine/jambase.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -64,7 +64,8 @@
 "}\n",
 "include $(.bootstrap-file) ;\n",
 "}\n",
-"if [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]\n",
+"if [ MATCH .*(b2).* : $(ARGV[1]:BL) ] \n",
+"|| [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]\n",
 "|| $(BOOST_ROOT) # A temporary measure so Jam works with Boost.Build v1.\n",
 "{\n",
 "local search-path = $(BOOST_BUILD_PATH) $(BOOST_ROOT) ;\n",

Copied: branches/release/tools/build/v2/engine/option.c (from r68630, /trunk/tools/build/v2/engine/option.c)
==============================================================================
--- /trunk/tools/build/v2/engine/option.c (original)
+++ branches/release/tools/build/v2/engine/option.c 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -17,7 +17,7 @@
  * was supplied for an option that does not require one."
  */
 
-int getoptions( int argc, char * * argv, char * opts, option * optv )
+int getoptions( int argc, char * * argv, char * opts, bjam_option * optv )
 {
     int i;
     int optc = N_OPTS;
@@ -84,7 +84,7 @@
  * Name: getoptval() - find an option given its character.
  */
 
-char * getoptval( option * optv, char opt, int subopt )
+char * getoptval( bjam_option * optv, char opt, int subopt )
 {
     int i;
     for ( i = 0; i < N_OPTS; ++i, ++optv )

Copied: branches/release/tools/build/v2/engine/option.h (from r68630, /trunk/tools/build/v2/engine/option.h)
==============================================================================
--- /trunk/tools/build/v2/engine/option.h (original)
+++ branches/release/tools/build/v2/engine/option.h 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -11,13 +11,13 @@
  * \ -) "Command line option."
  */
 
-typedef struct option
+typedef struct bjam_option
 {
     char flag; /* filled in by getoption() */
     char *val; /* set to random address if true */
-} option;
+} bjam_option;
 
 # define N_OPTS 256
 
-int getoptions( int argc, char **argv, char *opts, option *optv );
-char * getoptval( option *optv, char opt, int subopt );
+int getoptions( int argc, char **argv, char *opts, bjam_option *optv );
+char * getoptval( bjam_option *optv, char opt, int subopt );

Copied: branches/release/tools/build/v2/engine/patchlevel.h (from r68630, /trunk/tools/build/v2/engine/patchlevel.h)
==============================================================================
--- /trunk/tools/build/v2/engine/patchlevel.h (original)
+++ branches/release/tools/build/v2/engine/patchlevel.h 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -7,11 +7,11 @@
 /* Keep JAMVERSYM in sync with VERSION. */
 /* It can be accessed as $(JAMVERSION) in the Jamfile. */
 
-#define VERSION_MAJOR 3
-#define VERSION_MINOR 1
-#define VERSION_PATCH 19
-#define VERSION_MAJOR_SYM "03"
-#define VERSION_MINOR_SYM "1"
-#define VERSION_PATCH_SYM "19"
-#define VERSION "3.1.19"
-#define JAMVERSYM "JAMVERSION=3.1"
+#define VERSION_MAJOR 2011
+#define VERSION_MINOR 04
+#define VERSION_PATCH 0
+#define VERSION_MAJOR_SYM "2011"
+#define VERSION_MINOR_SYM "04"
+#define VERSION_PATCH_SYM "00"
+#define VERSION "2011.4"
+#define JAMVERSYM "JAMVERSION=2011.4"

Modified: branches/release/tools/build/v2/example/versioned/hello.cpp
==============================================================================
--- branches/release/tools/build/v2/example/versioned/hello.cpp (original)
+++ branches/release/tools/build/v2/example/versioned/hello.cpp 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -7,6 +7,6 @@
 
 int main()
 {
- std::cout << "Hello!\n";
+ std::cout << "Hello there!\n";
     return 1;
 }

Modified: branches/release/tools/build/v2/roll.sh
==============================================================================
--- branches/release/tools/build/v2/roll.sh (original)
+++ branches/release/tools/build/v2/roll.sh 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -22,14 +22,16 @@
 # Build the documentation
 touch doc/jamroot.jam
 export BOOST_BUILD_PATH=`pwd`
+./bootstrap.sh
 cd doc
-/home/ghost/Work/Boost/boost-svn/tools/jam/src/bin.linuxx86/bjam --v2
-/home/ghost/Work/Boost/boost-svn/tools/jam/src/bin.linuxx86/bjam --v2 pdf
+../bjam --v2
+../bjam --v2 pdf
 cp `find bin -name "*.pdf"` ../..
 mv ../../standalone.pdf ../../userman.pdf
 cp ../../userman.pdf .
 rm -rf bin
 cd ..
+rm bjam
 
 # Get the boost logo.
 wget http://boost.sf.net/boost-build2/boost.png
@@ -42,7 +44,7 @@
 # Make packages
 find . -name ".svn" | xargs rm -rf
 rm roll.sh
-chmod a+x engine/src/build.bat
+chmod a+x engine/build.bat
 cd .. && zip -r boost-build.zip boost-build && tar --bzip2 -cf boost-build.tar.bz2 boost-build
 # Copy packages to a location where they are grabbed for beta.boost.org
 cp userman.pdf boost-build.zip boost-build.tar.bz2 ~/public_html/boost_build_nightly

Modified: branches/release/tools/build/v2/tools/boostbook.jam
==============================================================================
--- branches/release/tools/build/v2/tools/boostbook.jam (original)
+++ branches/release/tools/build/v2/tools/boostbook.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -7,6 +7,23 @@
 
 # This module defines rules to handle generation of documentation
 # from BoostBook sources.
+#
+# The type of output is controlled by the <format> feature which can
+# have the following values::
+#
+# * html: Generates html documention. This is the default.
+# * xhtml: Generates xhtml documentation
+# * htmlhelp: Generates html help output.
+# * onehtml: Generates a single html page.
+# * man: Generates man pages.
+# * pdf: Generates pdf documentation.
+# * ps: Generates postscript output.
+# * docbook: Generates docbook XML.
+# * fo: Generates XSL formating objects.
+# * tests: Extracts test cases from the boostbook XML.
+#
+# format is an implicit feature, so typing pdf on the command
+# line (for example) is a short-cut for format=pdf.
 
 import "class" : new ;
 import common ;
@@ -55,26 +72,28 @@
 type.register BOOSTBOOK_MAIN ;
 
 
-# Initialize BoostBook support. The parameters are:
-# docbook-xsl-dir: The DocBook XSL stylesheet directory. If not provided,
-# we use DOCBOOK_XSL_DIR from the environment (if available) or look in
-# standard locations. Otherwise, we let the XML processor load the
-# stylesheets remotely.
-#
-# docbook-dtd-dir: The DocBook DTD directory. If not provided, we use
-# DOCBOOK_DTD_DIR From the environment (if available) or look in
-# standard locations. Otherwise, we let the XML processor load the
-# DTD remotely.
-#
-# boost-book-dir: The BoostBook directory with the DTD and XSL subdirs.
-#
-rule init ( docbook-xsl-dir ? : docbook-dtd-dir ? : boostbook-dir ? )
+# Initialize BoostBook support.
+rule init (
+ docbook-xsl-dir ? # The DocBook XSL stylesheet directory. If not
+ # provided, we use DOCBOOK_XSL_DIR from the environment
+ # (if available) or look in standard locations.
+ # Otherwise, we let the XML processor load the
+ # stylesheets remotely.
+
+ : docbook-dtd-dir ? # The DocBook DTD directory. If not provided, we use
+ # DOCBOOK_DTD_DIR From the environment (if available) or
+ # look in standard locations. Otherwise, we let the XML
+ # processor load the DTD remotely.
+
+ : boostbook-dir ? # The BoostBook directory with the DTD and XSL subdirs.
+)
 {
 
   if ! $(.initialized)
   {
     .initialized = true ;
     
+ check-boostbook-dir $(boostbook-dir) ;
     find-tools $(docbook-xsl-dir) : $(docbook-dtd-dir) : $(boostbook-dir) ;
 
     # Register generators only if we've were called via "using boostbook ; "
@@ -90,7 +109,53 @@
     
     # The same about Jamfile main target rules.
     IMPORT $(__name__) : boostbook : : boostbook ;
- }
+ }
+ else
+ {
+ if $(docbook-xsl-dir)
+ {
+ modify-config ;
+ .docbook-xsl-dir = [ path.make $(docbook-xsl-dir) ] ;
+ check-docbook-xsl-dir ;
+ }
+ if $(docbook-dtd-dir)
+ {
+ modify-config ;
+ .docbook-dtd-dir = [ path.make $(docbook-dtd-dir) ] ;
+ check-docbook-dtd-dir ;
+ }
+ if $(boostbook-dir)
+ {
+ modify-config ;
+ check-boostbook-dir $(boostbook-dir) ;
+ local boostbook-xsl-dir = [ path.glob $(boostbook-dir) : xsl ] ;
+ local boostbook-dtd-dir = [ path.glob $(boostbook-dir) : dtd ] ;
+ .boostbook-xsl-dir = $(boostbook-xsl-dir[1]) ;
+ .boostbook-dtd-dir = $(boostbook-dtd-dir[1]) ;
+ check-boostbook-xsl-dir ;
+ check-boostbook-dtd-dir ;
+ }
+ }
+}
+
+rule lock-config ( )
+{
+ if ! $(.initialized)
+ {
+ errors.user-error "BoostBook has not been configured." ;
+ }
+ if ! $(.config-locked)
+ {
+ .config-locked = true ;
+ }
+}
+
+rule modify-config ( )
+{
+ if $(.config-locked)
+ {
+ errors.user-error "BoostBook configuration cannot be changed after it has been used." ;
+ }
 }
 
 rule find-boost-in-registry ( keys * )
@@ -109,6 +174,88 @@
   return $(boost-root) ;
 }
 
+rule check-docbook-xsl-dir ( )
+{
+ if $(.docbook-xsl-dir)
+ {
+ if ! [ path.glob $(.docbook-xsl-dir) : common/common.xsl ]
+ {
+ errors.user-error "BoostBook: could not find docbook XSL stylesheets in:" [ path.native $(.docbook-xsl-dir) ] ;
+ }
+ else
+ {
+ if --debug-configuration in [ modules.peek : ARGV ]
+ {
+ ECHO "notice: BoostBook: found docbook XSL stylesheets in:" [ path.native $(.docbook-xsl-dir) ] ;
+ }
+ }
+ }
+}
+
+rule check-docbook-dtd-dir ( )
+{
+ if $(.docbook-dtd-dir)
+ {
+ if ! [ path.glob $(.docbook-dtd-dir) : docbookx.dtd ]
+ {
+ errors.user-error "error: BoostBook: could not find docbook DTD in:" [ path.native $(.docbook-dtd-dir) ] ;
+ }
+ else
+ {
+ if --debug-configuration in [ modules.peek : ARGV ]
+ {
+ ECHO "notice: BoostBook: found docbook DTD in:" [ path.native $(.docbook-dtd-dir) ] ;
+ }
+ }
+ }
+}
+
+rule check-boostbook-xsl-dir ( )
+{
+ if ! $(.boostbook-xsl-dir)
+ {
+ errors.user-error "error: BoostBook: could not find boostbook XSL stylesheets." ;
+ }
+ else if ! [ path.glob $(.boostbook-xsl-dir) : docbook.xsl ]
+ {
+ errors.user-error "error: BoostBook: could not find docbook XSL stylesheets in:" [ path.native $(.boostbook-xsl-dir) ] ;
+ }
+ else
+ {
+ if --debug-configuration in [ modules.peek : ARGV ]
+ {
+ ECHO "notice: BoostBook: found boostbook XSL stylesheets in:" [ path.native $(.boostbook-xsl-dir) ] ;
+ }
+ }
+}
+
+rule check-boostbook-dtd-dir ( )
+{
+ if ! $(.boostbook-dtd-dir)
+ {
+ errors.user-error "error: BoostBook: could not find boostbook DTD." ;
+ }
+ else if ! [ path.glob $(.boostbook-dtd-dir) : boostbook.dtd ]
+ {
+ errors.user-error "error: BoostBook: could not find boostbook DTD in:" [ path.native $(.boostbook-dtd-dir) ] ;
+ }
+ else
+ {
+ if --debug-configuration in [ modules.peek : ARGV ]
+ {
+ ECHO "notice: BoostBook: found boostbook DTD in:" [ path.native $(.boostbook-dtd-dir) ] ;
+ }
+ }
+}
+
+rule check-boostbook-dir ( boostbook-dir ? )
+{
+ if $(boostbook-dir) && ! [ path.glob $(boostbook-dir) : xsl ]
+ {
+ errors.user-error "error: BoostBook: could not find boostbook in:" [ path.native $(boostbook-dir) ] ;
+ }
+}
+
 rule find-tools ( docbook-xsl-dir ? : docbook-dtd-dir ? : boostbook-dir ? )
 {
   docbook-xsl-dir ?= [ modules.peek : DOCBOOK_XSL_DIR ] ;
@@ -216,101 +363,88 @@
   .boostbook-xsl-dir = $(boostbook-xsl-dir[1]) ;
   .boostbook-dtd-dir = $(boostbook-dtd-dir[1]) ;
 
- if --debug-configuration in [ modules.peek : ARGV ]
- {
- if $(.docbook-xsl-dir)
- {
- ECHO "notice: Boost.Book: found docbook XSL stylesheets in:" [ path.native $(.docbook-xsl-dir) ] ;
- }
- if $(.docbook-dtd-dir)
- {
- ECHO "notice: Boost.Book: found docbook DTD in:" [ path.native $(.docbook-dtd-dir) ] ;
- }
- if $(.boostbook-xsl-dir)
- {
- ECHO "notice: Boost.Book: found boostbook XSL stylesheets in:" [ path.native $(.boostbook-xsl-dir) ] ;
- }
- if $(.boostbook-dtd-dir)
- {
- ECHO "notice: Boost.Book: found boostbook DTD in:" [ path.native $(.boostbook-dtd-dir) ] ;
- }
- }
-
- if ! $(.boostbook-xsl-dir) || ! $(.boostbook-dtd-dir)
- {
- errors.warning
- "couldn't find BoostBook xsl or dtd directories;"
- : please set \"BOOST_ROOT\" variable to the root directory of
- your boost installation. Searched in:
- : $(boostbook-dir:J="
-") ;
- }
+ check-docbook-xsl-dir ;
+ check-docbook-dtd-dir ;
+ check-boostbook-xsl-dir ;
+ check-boostbook-dtd-dir ;
 }
 
 rule xsl-dir
 {
+ lock-config ;
   return $(.boostbook-xsl-dir) ;
 }
 
 rule dtd-dir
 {
+ lock-config ;
   return $(.boostbook-dtd-dir) ;
 }
 
 rule docbook-xsl-dir
 {
+ lock-config ;
   return $(.docbook-xsl-dir) ;
 }
 
 rule docbook-dtd-dir
 {
+ lock-config ;
   return $(.docbook-dtd-dir) ;
 }
 
 rule dtdxml-to-boostbook ( target : source : properties * )
 {
+ lock-config ;
   xslt $(target) : $(source) "$(.boostbook-xsl-dir)/dtd/dtd2boostbook.xsl"
                  : $(properties) ;
 }
 
 rule boostbook-to-docbook ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/docbook.xsl ] ;
   xslt $(target) : $(source) $(stylesheet) : $(properties) ;
 }
 
 rule docbook-to-onehtml ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/html-single.xsl ] ;
   xslt $(target) : $(source) $(stylesheet) : $(properties) ;
 }
 
 rule docbook-to-htmldir ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/html.xsl ] ;
   xslt-dir $(target) : $(source) $(stylesheet) : $(properties) : html ;
 }
 
 rule docbook-to-xhtmldir ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/xhtml.xsl ] ;
   xslt-dir $(target) : $(source) $(stylesheet) : $(properties) : xhtml ;
 }
 
 rule docbook-to-htmlhelp ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/html-help.xsl ] ;
   xslt-dir $(target) : $(source) $(stylesheet) : $(properties) : htmlhelp ;
 }
 
 rule docbook-to-manpages ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/manpages.xsl ] ;
   xslt-dir $(target) : $(source) $(stylesheet) : $(properties) : man ;
 }
 
 rule docbook-to-fo ( target : source : properties * )
 {
+ lock-config ;
   local stylesheet = [ path.native $(.boostbook-xsl-dir)/fo.xsl ] ;
   xslt $(target) : $(source) $(stylesheet) : $(properties) ;
 }
@@ -527,6 +661,7 @@
 
 generators.register [ new boostbook-generator boostbook.main : : BOOSTBOOK_MAIN ] ;
 
+# Creates a boostbook target.
 rule boostbook ( target-name : sources * : requirements * : default-build * )
 {
   local project = [ project.current ] ;
@@ -577,11 +712,9 @@
 scanner.register xinclude-scanner : xsl:path ;
 type.set-scanner XML : xinclude-scanner ;
 
-#############################################################################
-# Testsuite handling
-#############################################################################
 rule boostbook-to-tests ( target : source : properties * )
 {
+ lock-config ;
   local boost_root = [ modules.peek : BOOST_ROOT ] ;
   local native-path =
     [ path.native [ path.join $(.boostbook-xsl-dir) testing Jamfile ] ] ;

Modified: branches/release/tools/build/v2/tools/builtin.jam
==============================================================================
--- branches/release/tools/build/v2/tools/builtin.jam (original)
+++ branches/release/tools/build/v2/tools/builtin.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -26,6 +26,7 @@
 import symlink ;
 import toolset ;
 import type ;
+import targets ;
 import types/register ;
 import utility ;
 import virtual-target ;
@@ -603,6 +604,48 @@
 
 generators.override builtin.prebuilt : builtin.lib-generator ;
 
+class preprocessed-target-class : basic-target
+{
+ import generators ;
+ rule construct ( name : sources * : property-set )
+ {
+ local result = [ generators.construct [ project ]
+ $(name) : PREPROCESSED_CPP : $(property-set) : $(sources) ] ;
+ if ! $(result)
+ {
+ result = [ generators.construct [ project ]
+ $(name) : PREPROCESSED_C : $(property-set) : $(sources) ] ;
+ }
+ if ! $(result)
+ {
+ local s ;
+ for x in $(sources)
+ {
+ s += [ $(x).name ] ;
+ }
+ local p = [ project ] ;
+ errors.user-error
+ "In project" [ $(p).name ] :
+ "Could not construct preprocessed file \"$(name)\" from $(s:J=, )." ;
+ }
+ return $(result) ;
+ }
+}
+
+rule preprocessed ( name : sources * : requirements * : default-build * :
+ usage-requirements * )
+{
+ local project = [ project.current ] ;
+ return [ targets.main-target-alternative
+ [ new preprocessed-target-class $(name) : $(project)
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(r) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ] ;
+}
+
+IMPORT $(__name__) : preprocessed : : preprocessed ;
 
 class compile-action : action
 {

Modified: branches/release/tools/build/v2/tools/clang-linux.jam
==============================================================================
--- branches/release/tools/build/v2/tools/clang-linux.jam (original)
+++ branches/release/tools/build/v2/tools/clang-linux.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -1,4 +1,5 @@
-# Copyright (c) 2003 Michael Stevens
+# Copyright (c) 2003 Michael Stevens
+# Copyright (c) 2010-2011 Bryce Lelbach (blelbach_at_[hidden], maintainer)
 #
 # Use, modification and distribution is subject to the Boost Software
 # License Version 1.0. (See accompanying file LICENSE_1_0.txt or
@@ -19,7 +20,8 @@
 feature.extend-subfeature toolset clang : platform : linux ;
 
 toolset.inherit-generators clang-linux
- <toolset>clang <toolset-clang:platform>linux : gcc : gcc.mingw.link gcc.mingw.link.dll gcc.cygwin.link gcc.cygwin.link.dll ;
+ <toolset>clang <toolset-clang:platform>linux : gcc
+ : gcc.mingw.link gcc.mingw.link.dll gcc.cygwin.link gcc.cygwin.link.dll ;
 generators.override clang-linux.prebuilt : builtin.lib-generator ;
 generators.override clang-linux.prebuilt : builtin.prebuilt ;
 generators.override clang-linux.searched-lib-generator : searched-lib-generator ;
@@ -28,53 +30,50 @@
 generators.override clang-linux.compile.c.pch : pch.default-c-pch-generator ;
 generators.override clang-linux.compile.c++.pch : pch.default-cpp-pch-generator ;
  
-type.set-generated-target-suffix PCH : <toolset>clang <toolset-clang:platform>linux : pchi ;
+type.set-generated-target-suffix PCH
+ : <toolset>clang <toolset-clang:platform>linux : pth ;
 
 toolset.inherit-rules clang-linux : gcc ;
 toolset.inherit-flags clang-linux : gcc
- : <inlining>off <inlining>on <inlining>full
- <optimization>space <optimization>speed
- <warnings>off <warnings>all <warnings>on
- ;
+ : <inlining>off <inlining>on <inlining>full
+ <optimization>space <optimization>speed
+ <warnings>off <warnings>all <warnings>on ;
         
-if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
-{
- .debug-configuration = true ;
+if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ] {
+ .debug-configuration = true ;
 }
                        
-# Initializes the clang-linux toolset
-# version in optional
-# name (default clang++) is used to invoke the specified clanglinux complier
-# compile and link options allow you to specify addition command line options for each version
-rule init ( version ? : command * : options * )
-{
- command = [ common.get-invocation-command clang-linux : clang++
- : $(command) ] ;
+rule init ( version ? : command * : options * ) {
+ command = [ common.get-invocation-command clang-linux : clang++
+ : $(command) ] ;
                 
- # Determine the version
- local command-string = $(command:J=" ") ;
- if $(command)
- {
- version ?= [ MATCH "^([0-9.]+)"
- : [ SHELL "$(command-string) -dumpversion" ] ] ;
- }
+ # Determine the version
+ local command-string = $(command:J=" ") ;
 
- local condition = [ common.check-init-parameters clang-linux
- : version $(version) ] ;
-
- common.handle-options clang-linux : $(condition) : $(command) : $(options) ;
+ if $(command) {
+ version ?= [ MATCH "version ([0-9.]+)"
+ : [ SHELL "$(command-string) --version" ] ] ;
+ }
 
- gcc.init-link-flags clang-linux gnu $(condition) ;
+ local condition = [ common.check-init-parameters clang-linux
+ : version $(version) ] ;
     
+ common.handle-options clang-linux : $(condition) : $(command) : $(options) ;
+
+ gcc.init-link-flags clang-linux gnu $(condition) ;
 }
 
-SPACE = " " ;
+###############################################################################
+# Flags
+
+toolset.flags clang-linux.compile OPTIONS <cflags> ;
+toolset.flags clang-linux.compile OPTIONS <cxxflags> ;
 
-# Declare flags and action for compilation.
 toolset.flags clang-linux.compile OPTIONS <optimization>off : ;
 toolset.flags clang-linux.compile OPTIONS <optimization>speed : -O3 ;
 toolset.flags clang-linux.compile OPTIONS <optimization>space : -Os ;
 
+# note: clang silently ignores some of these inlining options
 toolset.flags clang-linux.compile OPTIONS <inlining>off : -fno-inline ;
 toolset.flags clang-linux.compile OPTIONS <inlining>on : -Wno-inline ;
 toolset.flags clang-linux.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
@@ -85,89 +84,113 @@
 toolset.flags clang-linux.compile OPTIONS <warnings-as-errors>on : -Werror ;
 
 toolset.flags clang-linux.compile OPTIONS <debug-symbols>on : -g ;
-toolset.flags clang-linux.compile OPTIONS <profiling>on : ;
+toolset.flags clang-linux.compile OPTIONS <profiling>on : -pg ;
 toolset.flags clang-linux.compile OPTIONS <rtti>off : -fno-rtti ;
 
-rule compile.c++ ( targets * : sources * : properties * )
-{
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
- DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
+###############################################################################
+# C and C++ compilation
+
+rule compile.c++ ( targets * : sources * : properties * ) {
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+
+ local pth-file = [ on $(<) return $(PCH_FILE) ] ;
+
+ if $(pth-file) {
+ DEPENDS $(<) : $(pth-file) ;
+ compile.c++.with-pch $(targets) : $(sources) ;
+ }
+ else {
+ compile.c++.without-pth $(targets) : $(sources) ;
+ }
 }
 
-actions compile.c++ bind PCH_FILE
-{
- "$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -use-pch"$(PCH_FILE)" -c -o "$(<)" "$(>)"
+actions compile.c++.without-pth {
+ "$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)"
 }
 
-rule compile.c ( targets * : sources * : properties * )
+actions compile.c++.with-pch bind PCH_FILE
 {
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
- DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
+ "$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pth -Xclang "$(PCH_FILE)" -o "$(<)" "$(>)"
 }
 
-actions compile.c bind PCH_FILE
+rule compile.c ( targets * : sources * : properties * )
 {
- "$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -use-pch"$(PCH_FILE)" -c -o "$(<)" "$(>)"
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+
+ local pth-file = [ on $(<) return $(PCH_FILE) ] ;
+
+ if $(pth-file) {
+ DEPENDS $(<) : $(pth-file) ;
+ compile.c.with-pch $(targets) : $(sources) ;
+ }
+ else {
+ compile.c.without-pth $(targets) : $(sources) ;
+ }
 }
 
-rule compile.c++.pch ( targets * : sources * : properties * )
+actions compile.c.without-pth
 {
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+ "$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
-#
-# Compiling a pch first deletes any existing *.pchi file, as Clang's compiler
-# won't over-write an existing pch: instead it creates filename$1.pchi, filename$2.pchi
-# etc - which appear not to do anything except take up disk space :-(
-#
-actions compile.c++.pch
+
+actions compile.c.with-pch bind PCH_FILE
 {
- rm -f "$(<)" && "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -pch-create "$(<)" "$(>)"
+ "$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pth -Xclang "$(PCH_FILE)" -c -o "$(<)" "$(>)"
 }
 
-rule compile.c.pch ( targets * : sources * : properties * )
-{
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+###############################################################################
+# PCH emission
+
+rule compile.c++.pch ( targets * : sources * : properties * ) {
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
 }
 
-actions compile.c.pch
-{
- rm -f "$(<)" && "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -pch-create "$(<)" "$(>)"
+actions compile.c++.pch {
+ rm -f "$(<)" && "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pth -o "$(<)" "$(>)"
 }
 
-rule link ( targets * : sources * : properties * )
-{
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
- SPACE on $(targets) = " " ;
- JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
+rule compile.c.pch ( targets * : sources * : properties * ) {
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-fpic $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
 }
 
-actions link bind LIBRARIES
+actions compile.c.pch
 {
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,-R$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS) $(USER_OPTIONS)
+ rm -f "$(<)" && "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pth -o "$(<)" "$(>)"
 }
 
-rule link.dll ( targets * : sources * : properties * )
-{
- gcc.setup-threading $(targets) : $(sources) : $(properties) ;
- gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
- SPACE on $(targets) = " " ;
- JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
+###############################################################################
+# Linking
+
+SPACE = " " ;
+
+rule link ( targets * : sources * : properties * ) {
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+ SPACE on $(targets) = " " ;
+ JAM_SEMAPHORE on $(targets) = <s>clang-linux-link-semaphore ;
+}
+
+actions link bind LIBRARIES {
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,-R$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS) $(USER_OPTIONS)
+}
+
+rule link.dll ( targets * : sources * : properties * ) {
+ gcc.setup-threading $(targets) : $(sources) : $(properties) ;
+ gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
+ SPACE on $(targets) = " " ;
+ JAM_SEMAPHORE on $(targets) = <s>clang-linux-link-semaphore ;
 }
 
 # Differ from 'link' above only by -shared.
-actions link.dll bind LIBRARIES
-{
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,-R$(SPACE)-Wl,"$(RPATH)" -o "$(<)" -Wl,-soname$(SPACE)-Wl,$(<[1]:D=) -shared "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS) $(USER_OPTIONS)
+actions link.dll bind LIBRARIES {
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,-R$(SPACE)-Wl,"$(RPATH)" -o "$(<)" -Wl,-soname$(SPACE)-Wl,$(<[1]:D=) -shared "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS) $(USER_OPTIONS)
 }
 
-
-

Modified: branches/release/tools/build/v2/tools/darwin.jam
==============================================================================
--- branches/release/tools/build/v2/tools/darwin.jam (original)
+++ branches/release/tools/build/v2/tools/darwin.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -254,6 +254,22 @@
         # Then device variation options.
         switch $(version[1])
         {
+ case iphonesim* :
+ {
+ local N = $(version[2]) ;
+ if ! $(version[3]) { N += 00 ; }
+ else if [ regex.match (..) : $(version[3]) ] { N += $(version[3]) ; }
+ else { N += 0$(version[3]) ; }
+ if ! $(version[4]) { N += 00 ; }
+ else if [ regex.match (..) : $(version[4]) ] { N += $(version[4]) ; }
+ else { N += 0$(version[4]) ; }
+ N = $(N:J=) ;
+ flags darwin.compile OPTIONS <macosx-version-min>$(version-feature)
+ : -D__IPHONE_OS_VERSION_MIN_REQUIRED=$(N) ;
+ flags darwin.link OPTIONS <macosx-version-min>$(version-feature)
+ : -D__IPHONE_OS_VERSION_MIN_REQUIRED=$(N) ;
+ }
+
             case iphone* :
             {
                 flags darwin.compile OPTIONS <macosx-version-min>$(version-feature)
@@ -482,7 +498,8 @@
 flags darwin.compile OPTIONS <link>shared : -dynamic ;
 
 # Misc options.
-flags darwin.compile OPTIONS : -no-cpp-precomp -gdwarf-2 ;
+flags darwin.compile OPTIONS : -no-cpp-precomp -gdwarf-2 -fexceptions ;
+#~ flags darwin.link OPTIONS : -fexceptions ;
 
 # Add the framework names to use.
 flags darwin.link FRAMEWORK <framework> ;

Modified: branches/release/tools/build/v2/tools/doxygen.jam
==============================================================================
--- branches/release/tools/build/v2/tools/doxygen.jam (original)
+++ branches/release/tools/build/v2/tools/doxygen.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -38,6 +38,7 @@
 import modules ;
 import project ;
 import utility ;
+import errors ;
 
 
 # Use to specify extra configuration paramters. These get translated
@@ -95,60 +96,6 @@
     {
         .initialized = true ;
 
- if ! $(name)
- {
- local doxygen-path ;
-
- if [ os.name ] = NT
- {
- local ProgramFiles = [ modules.peek : ProgramFiles ] ;
- if $(ProgramFiles)
- {
- ProgramFiles = "$(ProgramFiles:J= )" ;
- }
- else
- {
- ProgramFiles = "C:\\Program Files" ;
- }
-
- doxygen-path =
- [ GLOB
- [ modules.peek : PATH ]
- "$(ProgramFiles)\\doxygen\\bin"
- : doxygen\.exe ] ;
- }
- else
- {
- doxygen-path =
- [ GLOB
- [ modules.peek : PATH ]
- : doxygen ] ;
- }
-
- doxygen-path = $(doxygen-path[1]) ;
-
- if $(doxygen-path)
- {
- .doxygen = $(doxygen-path) ;
- }
-
- .doxygen ?= doxygen ;
- }
- else
- {
- .doxygen = $(name) ;
- }
-
- if --debug-configuration in [ modules.peek : ARGV ]
- {
- ECHO "notice:" using doxygen ":" $(.doxygen) ;
- }
-
- if [ .is-cygwin ]
- {
- .is-cygwin = true ;
- }
-
         .doxproc = [ modules.binding $(__name__) ] ;
         .doxproc = $(.doxproc:D)/doxproc.py ;
 
@@ -171,11 +118,71 @@
 
         IMPORT $(__name__) : doxygen : : doxygen ;
     }
+
+ if $(name)
+ {
+ modify-config ;
+ .doxygen = $(name) ;
+ check-doxygen ;
+ }
+
+ if ! $(.doxygen)
+ {
+ check-doxygen ;
+ }
 }
 
+rule freeze-config ( )
+{
+ if ! $(.initialized)
+ {
+ errors.user-error "doxygen must be initialized before it can be used." ;
+ }
+ if ! $(.config-frozen)
+ {
+ .config-frozen = true ;
+
+ if [ .is-cygwin ]
+ {
+ .is-cygwin = true ;
+ }
+ }
+}
+
+rule modify-config ( )
+{
+ if $(.config-frozen)
+ {
+ errors.user-error "Cannot change doxygen after it has been used." ;
+ }
+}
+
+rule check-doxygen ( )
+{
+ if --debug-configuration in [ modules.peek : ARGV ]
+ {
+ ECHO "notice:" using doxygen ":" $(.doxygen) ;
+ }
+ local extra-paths ;
+ if [ os.name ] = NT
+ {
+ local ProgramFiles = [ modules.peek : ProgramFiles ] ;
+ if $(ProgramFiles)
+ {
+ extra-paths = "$(ProgramFiles:J= )" ;
+ }
+ else
+ {
+ extra-paths = "C:\\Program Files" ;
+ }
+ }
+ .doxygen = [ common.get-invocation-command doxygen :
+ doxygen : $(.doxygen) : $(extra-paths) ] ;
+}
 
 rule name ( )
 {
+ freeze-config ;
     return $(.doxygen) ;
 }
 
@@ -219,6 +226,7 @@
 
 rule translate-path ( path )
 {
+ freeze-config ;
     if [ os.on-windows ]
     {
         if [ os.name ] = CYGWIN
@@ -311,6 +319,7 @@
 #
 rule run ( target : source : properties * )
 {
+ freeze-config ;
     if <doxygen.rmdir>on in $(properties)
     {
         local output-dir =
@@ -602,6 +611,7 @@
 #
 rule doxygen ( target : sources * : requirements * : default-build * : usage-requirements * )
 {
+ freeze-config ;
     local project = [ project.current ] ;
 
     if $(target:S) = .html

Modified: branches/release/tools/build/v2/tools/fop.jam
==============================================================================
--- branches/release/tools/build/v2/tools/fop.jam (original)
+++ branches/release/tools/build/v2/tools/fop.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -6,100 +6,64 @@
 # This module defines rules to handle generation of PDF and
 # PostScript files from XSL Formatting Objects via Apache FOP
 
-import os ;
 import generators ;
 import common ;
-import errors ;
 import boostbook ;
 
 generators.register-standard fop.render.pdf : FO : PDF ;
 generators.register-standard fop.render.ps : FO : PS ;
 
+# Initializes the fop toolset.
+#
 rule init ( fop-command ? : java-home ? : java ? )
 {
- fop-command = [ common.get-invocation-command fop : fop : $(fop-command)
- : [ modules.peek : FOP_DIR ] ] ;
-
- .FOP_COMMAND = $(fop-command) ;
- .FOP_SETUP = ;
-
- # JAVA_HOME is the location that java was installed to.
-
- if $(java-home)
+ local has-command = $(.has-command) ;
+
+ if $(fop-command)
     {
- .FOP_SETUP += [ common.variable-setting-command JAVA_HOME : $(java-home) ] ;
+ .has-command = true ;
     }
 
- # JAVACMD is the location that of the java executable, useful for a
- # non-standard java installation, where the executable isn't at
- # $JAVA_HOME/bin/java.
-
- if $(java)
+ if $(fop-command) || ! $(has-command)
     {
- .FOP_SETUP += [ common.variable-setting-command JAVACMD : $(java) ] ;
+ fop-command = [ common.get-invocation-command fop : fop : $(fop-command)
+ : [ modules.peek : FOP_DIR ] ] ;
     }
     
- # Make sure the fop command is executed from within the directory where it's located.
-
- # DPG: I can't see how this could ever be correct, because it
- # messes up path names that are used in the command.
+ if $(fop-command)
+ {
+ .FOP_COMMAND = $(fop-command) ;
+ }
 
- # if $(.FOP_COMMAND:D)
- # {
- # .FOP_SETUP = $(.FOP_SETUP)"
-# cd "$(.FOP_COMMAND:D) ;
- # }
-
-}
+ if $(java-home) || $(java)
+ {
+ .FOP_SETUP = ;
 
-local rule find-by-absolute-path ( target )
-{
- # Mask off any vars by these names that may be hanging around in
- # outer dynamic scopes.
- local LOCATE SEARCH ;
     
- # simulate the target binding process to find the target
+ # JAVA_HOME is the location that java was installed to.
     
- local found = [ on $(target) GLOB $(LOCATE) (SEARCH) : $(target:G=) ] ;
+ if $(java-home)
+ {
+ .FOP_SETUP += [ common.variable-setting-command JAVA_HOME : $(java-home) ] ;
+ }
+
+ # JAVACMD is the location that of the java executable, useful for a
+ # non-standard java installation, where the executable isn't at
+ # $JAVA_HOME/bin/java.
     
- if $(found)
- {
- # Re-LOCATE the target with an absolute path if it isn't
- # already absolute.
- local found-dir = $(found[1]:D) ;
- local cwd = [ PWD ] ;
- local absolute-dir = $(found-dir:R=$(cwd)) ;
-
- # Translate cygwin paths to Windows iff the user is running on
- # cygwin but using a Windows FOP. We detect a Windows FOP by
- # looking to see if FOP_COMMAND ends with ".bat"
- if [ os.name ] = CYGWIN && [ MATCH .*\\.([Bb][Aa][Tt])$ : $(.FOP_COMMAND) ]
+ if $(java)
         {
- absolute-dir = "`cygpath --windows '$(absolute-dir)'`" ;
+ .FOP_SETUP += [ common.variable-setting-command JAVACMD : $(java) ] ;
         }
- LOCATE on $(target) = $(absolute-dir) ;
     }
 }
 
-rule render.pdf ( source : target : properties * )
-{
- find-by-absolute-path $(source) ;
- find-by-absolute-path $(target) ;
-}
-
-rule render.ps ( source : target : properties * )
-{
- find-by-absolute-path $(source) ;
- find-by-absolute-path $(target) ;
-}
-
-
 actions render.pdf
 {
- $(.FOP_SETUP) $(.FOP_COMMAND) $(>) $(<)
+ $(.FOP_SETUP) $(.FOP_COMMAND:E=fop) $(>) $(<)
 }
 
 actions render.ps
 {
- $(.FOP_SETUP) $(.FOP_COMMAND) $(>) -ps $(<)
+ $(.FOP_SETUP) $(.FOP_COMMAND:E=fop) $(>) -ps $(<)
 }

Modified: branches/release/tools/build/v2/tools/gcc.jam
==============================================================================
--- branches/release/tools/build/v2/tools/gcc.jam (original)
+++ branches/release/tools/build/v2/tools/gcc.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -284,6 +284,8 @@
     JAMSHELL = % ;
 }
 
+generators.register-c-compiler gcc.compile.c++.preprocess : CPP : PREPROCESSED_CPP : <toolset>gcc ;
+generators.register-c-compiler gcc.compile.c.preprocess : C : PREPROCESSED_C : <toolset>gcc ;
 generators.register-c-compiler gcc.compile.c++ : CPP : OBJ : <toolset>gcc ;
 generators.register-c-compiler gcc.compile.c : C : OBJ : <toolset>gcc ;
 generators.register-c-compiler gcc.compile.asm : ASM : OBJ : <toolset>gcc ;
@@ -507,6 +509,37 @@
     "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
+rule compile.c++.preprocess ( targets * : sources * : properties * )
+{
+ setup-threading $(targets) : $(sources) : $(properties) ;
+ setup-fpic $(targets) : $(sources) : $(properties) ;
+ setup-address-model $(targets) : $(sources) : $(properties) ;
+
+ # Some extensions are compiled as C++ by default. For others, we need to
+ # pass -x c++. We could always pass -x c++ but distcc does not work with it.
+ if ! $(>:S) in .cc .cp .cxx .cpp .c++ .C
+ {
+ LANG on $(<) = "-x c++" ;
+ }
+ DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
+}
+
+rule compile.c.preprocess ( targets * : sources * : properties * )
+{
+ setup-threading $(targets) : $(sources) : $(properties) ;
+ setup-fpic $(targets) : $(sources) : $(properties) ;
+ setup-address-model $(targets) : $(sources) : $(properties) ;
+
+ # If we use the name g++ then default file suffix -> language mapping does
+ # not work. So have to pass -x option. Maybe, we can work around this by
+ # allowing the user to specify both C and C++ compiler names.
+ #if $(>:S) != .c
+ #{
+ LANG on $(<) = "-x c" ;
+ #}
+ DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
+}
+
 rule compile.c++ ( targets * : sources * : properties * )
 {
     setup-threading $(targets) : $(sources) : $(properties) ;
@@ -570,13 +603,25 @@
     "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
+actions compile.c++.preprocess bind PCH_FILE
+{
+ "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)"
+}
+
+actions compile.c.preprocess bind PCH_FILE
+{
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>)" -E >$(<)
+}
+
 actions compile.fortran
 {
   "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
-rule compile.asm
+rule compile.asm ( targets * : sources * : properties * )
 {
+ setup-fpic $(targets) : $(sources) : $(properties) ;
+ setup-address-model $(targets) : $(sources) : $(properties) ;
     LANG on $(<) = "-x assembler-with-cpp" ;
 }
 

Modified: branches/release/tools/build/v2/tools/intel-linux.jam
==============================================================================
--- branches/release/tools/build/v2/tools/intel-linux.jam (original)
+++ branches/release/tools/build/v2/tools/intel-linux.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -1,4 +1,5 @@
 # Copyright (c) 2003 Michael Stevens
+# Copyright (c) 2011 Bryce Lelbach
 #
 # Use, modification and distribution is subject to the Boost Software
 # License Version 1.0. (See accompanying file LICENSE_1_0.txt or
@@ -44,15 +45,55 @@
                        
 # Initializes the intel-linux toolset
 # version in mandatory
-# name (default icc) is used to invoke the specified intellinux complier
+# name (default icpc) is used to invoke the specified intel-linux complier
 # compile and link options allow you to specify addition command line options for each version
 rule init ( version ? : command * : options * )
 {
     local condition = [ common.check-init-parameters intel-linux
         : version $(version) ] ;
     
+ if $(.debug-configuration)
+ {
+ ECHO "notice: intel-linux version is" $(version) ;
+ }
+
+ local default_path ;
+
+ # Intel C++ Composer XE 2011 for Linux, aka Intel C++ Compiler XE 12.0,
+ # aka intel-linux-12.0. In this version, Intel thankfully decides to install
+ # to a sane 'intel' folder in /opt.
+ if [ MATCH "(12[.]0|12)" : $(version) ]
+ { default_path = /opt/intel/bin ; }
+ # Intel C++ Compiler 11.1.
+ else if [ MATCH "(11[.]1)" : $(version) ]
+ { default_path = /opt/intel_cce_11.1.064.x86_64/bin ; }
+ # Intel C++ Compiler 11.0.
+ else if [ MATCH "(11[.]0|11)" : $(version) ]
+ { default_path = /opt/intel_cce_11.0.074.x86_64/bin ; }
+ # Intel C++ Compiler 10.1.
+ else if [ MATCH "(10[.]1)" : $(version) ]
+ { default_path = /opt/intel_cce_10.1.013_x64/bin ; }
+ # Intel C++ Compiler 9.1.
+ else if [ MATCH "(9[.]1)" : $(version) ]
+ { default_path = /opt/intel_cc_91/bin ; }
+ # Intel C++ Compiler 9.0.
+ else if [ MATCH "(9[.]0|9)" : $(version) ]
+ { default_path = /opt/intel_cc_90/bin ; }
+ # Intel C++ Compiler 8.1.
+ else if [ MATCH "(8[.]1)" : $(version) ]
+ { default_path = /opt/intel_cc_81/bin ; }
+ # Intel C++ Compiler 8.0 - this used to be the default, so now it's the
+ # fallback.
+ else
+ { default_path = /opt/intel_cc_80/bin ; }
+
+ if $(.debug-configuration)
+ {
+ ECHO "notice: default search path for intel-linux is" $(default_path) ;
+ }
+
     command = [ common.get-invocation-command intel-linux : icpc
- : $(command) : /opt/intel_cc_80/bin ] ;
+ : $(command) : $(default_path) ] ;
                 
     common.handle-options intel-linux : $(condition) : $(command) : $(options) ;
 
@@ -77,12 +118,24 @@
             flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-Ob0" ;
             flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-Ob1" ;
             flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-Ob2" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-O1" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
         }
- else
+ else if $(major) && [ numbers.less $(major) 11 ]
+ {
+ flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ;
+ flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ;
+ flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-O1" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
+ }
+ else # newer version of intel do have -Os (at least 11+, don't know about 10)
         {
             flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ;
             flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ;
             flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-Os" ;
+ flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
         }
            
         if $(root)
@@ -103,9 +156,6 @@
 
 SPACE = " " ;
 
-flags intel-linux.compile OPTIONS <optimization>space : "-O1" ; # no specific space optimization flag in icc
-flags intel-linux.compile OPTIONS <optimization>speed : "-O3 -ip" ; # no specific space optimization flag in icc
-
 flags intel-linux.compile OPTIONS <warnings>off : -w0 ;
 flags intel-linux.compile OPTIONS <warnings>on : -w1 ;
 flags intel-linux.compile OPTIONS <warnings>all : -w2 ;
@@ -174,7 +224,7 @@
     gcc.setup-threading $(targets) : $(sources) : $(properties) ;
     gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
     SPACE on $(targets) = " " ;
- JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
+ JAM_SEMAPHORE on $(targets) = <s>intel-linux-link-semaphore ;
 }
 
 actions link bind LIBRARIES
@@ -187,7 +237,7 @@
     gcc.setup-threading $(targets) : $(sources) : $(properties) ;
     gcc.setup-address-model $(targets) : $(sources) : $(properties) ;
     SPACE on $(targets) = " " ;
- JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
+ JAM_SEMAPHORE on $(targets) = <s>intel-linux-link-semaphore ;
 }
 
 # Differ from 'link' above only by -shared.

Modified: branches/release/tools/build/v2/tools/msvc.jam
==============================================================================
--- branches/release/tools/build/v2/tools/msvc.jam (original)
+++ branches/release/tools/build/v2/tools/msvc.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -325,6 +325,14 @@
 }
 
 
+rule compile.c.preprocess ( targets + : sources * : properties * )
+{
+ C++FLAGS on $(targets[1]) = ;
+ get-rspline $(targets) : -TC ;
+ preprocess-c-c++ $(<) : $(>) [ on $(<) return $(PCH_FILE) ] [ on $(<) return $(PCH_HEADER) ] ;
+}
+
+
 rule compile.c.pch ( targets + : sources * : properties * )
 {
     C++FLAGS on $(targets[1]) = ;
@@ -363,6 +371,11 @@
     $(.CC) @"@($(<[1]:W).rsp:E="$(>[1]:W)" -Fo"$(<[1]:W)" $(PDB_CFLAG)"$(PDB_NAME)" -Yu"$(>[3]:D=)" -Fp"$(>[2]:W)" $(CC_RSPLINE))" $(.CC.FILTER)
 }
 
+actions preprocess-c-c++ bind PDB_NAME
+{
+ $(.CC) @"@($(<[1]:W).rsp:E="$(>[1]:W)" -E $(PDB_CFLAG)"$(PDB_NAME)" -Yu"$(>[3]:D=)" -Fp"$(>[2]:W)" $(CC_RSPLINE))" >"$(<[1]:W)"
+}
+
 rule compile-c-c++ ( targets + : sources * )
 {
     DEPENDS $(<[1]) : [ on $(<[1]) return $(PCH_HEADER) ] ;
@@ -370,6 +383,13 @@
     PDB_NAME on $(<) = $(<:S=.pdb) ;
 }
 
+rule preprocess-c-c++ ( targets + : sources * )
+{
+ DEPENDS $(<[1]) : [ on $(<[1]) return $(PCH_HEADER) ] ;
+ DEPENDS $(<[1]) : [ on $(<[1]) return $(PCH_FILE) ] ;
+ PDB_NAME on $(<) = $(<:S=.pdb) ;
+}
+
 # Action for running the C/C++ compiler using precompiled headers. In addition
 # to whatever else it needs to compile, this action also adds a temporary source
 # .cpp file used to compile the precompiled headers themselves.
@@ -397,6 +417,12 @@
     compile-c-c++ $(<) : $(>) [ on $(<) return $(PCH_FILE) ] [ on $(<) return $(PCH_HEADER) ] ;
 }
 
+rule compile.c++.preprocess ( targets + : sources * : properties * )
+{
+ get-rspline $(targets) : -TP ;
+ preprocess-c-c++ $(<) : $(>) [ on $(<) return $(PCH_FILE) ] [ on $(<) return $(PCH_HEADER) ] ;
+}
+
 
 rule compile.c++.pch ( targets + : sources * : properties * )
 {
@@ -1110,6 +1136,8 @@
         generators.register-archiver msvc.archive : OBJ : STATIC_LIB : <toolset>msvc ;
         generators.register-c-compiler msvc.compile.c++ : CPP : OBJ : <toolset>msvc ;
         generators.register-c-compiler msvc.compile.c : C : OBJ : <toolset>msvc ;
+ generators.register-c-compiler msvc.compile.c++.preprocess : CPP : PREPROCESSED_CPP : <toolset>msvc ;
+ generators.register-c-compiler msvc.compile.c.preprocess : C : PREPROCESSED_C : <toolset>msvc ;
 
         # Using 'register-c-compiler' adds the build directory to INCLUDES.
         generators.register-c-compiler msvc.compile.rc : RC : OBJ(%_res) : <toolset>msvc ;

Modified: branches/release/tools/build/v2/tools/pathscale.jam
==============================================================================
--- branches/release/tools/build/v2/tools/pathscale.jam (original)
+++ branches/release/tools/build/v2/tools/pathscale.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -161,7 +161,8 @@
 }
 
 # Declare action for creating static libraries
+# "$(CONFIG_COMMAND)" -ar -o "$(<)" "$(>)"
 actions piecemeal archive
 {
- "$(CONFIG_COMMAND)" -ar -o "$(<)" "$(>)"
+ ar $(ARFLAGS) ru "$(<)" "$(>)"
 }

Modified: branches/release/tools/build/v2/tools/quickbook.jam
==============================================================================
--- branches/release/tools/build/v2/tools/quickbook.jam (original)
+++ branches/release/tools/build/v2/tools/quickbook.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -112,7 +112,10 @@
 import scanner ;
 import project ;
 import targets ;
-
+import build-system ;
+import path ;
+import common ;
+import errors ;
 
 # The one and only QUICKBOOK type!
 type.register QUICKBOOK : qbk ;
@@ -138,51 +141,23 @@
 #
 class quickbook-binary-generator : generator
 {
- import common modules path targets build-system ;
+ import modules path targets quickbook ;
 
     rule run ( project name ? : property-set : sources * : multiple ? )
     {
+ quickbook.freeze-config ;
         # QuickBook invocation command and dependencies.
- local quickbook-binary = [ modules.peek quickbook : .command ] ;
+ local quickbook-binary = [ modules.peek quickbook : .quickbook-binary ] ;
         local quickbook-binary-dependencies ;
 
- if $(quickbook-binary)
+ if ! $(quickbook-binary)
         {
- # Use user-supplied command.
- quickbook-binary = [ common.get-invocation-command quickbook : quickbook : $(quickbook-binary) ] ;
- }
- else
- {
- # Search for QuickBook sources in sensible places, like
- # $(BOOST_ROOT)/tools/quickbook
- # $(BOOST_BUILD_PATH)/../../quickbook
-
- # And build quickbook executable from sources.
-
- local boost-root = [ modules.peek : BOOST_ROOT ] ;
- local boost-build-path = [ build-system.location ] ;
-
- local quickbook-dir ;
-
- if $(boost-root)
- {
- quickbook-dir += [ path.join $(boost-root) tools ] ;
- }
-
- if $(boost-build-path)
- {
- quickbook-dir += $(boost-build-path)/../.. ;
- }
-
- quickbook-dir = [ path.glob $(quickbook-dir) : quickbook ] ;
-
             # If the QuickBook source directory was found, mark its main target
             # as a dependency for the current project. Otherwise, try to find
             # 'quickbook' in user's PATH
+ local quickbook-dir = [ modules.peek quickbook : .quickbook-dir ] ;
             if $(quickbook-dir)
             {
- quickbook-dir = [ path.make $(quickbook-dir[1]) ] ;
-
                 # Get the main-target in QuickBook directory.
                 local quickbook-main-target = [ targets.resolve-reference $(quickbook-dir) : $(project) ] ;
 
@@ -215,28 +190,6 @@
                     }
                 }
             }
- else
- {
- ECHO "QuickBook warning: The path to the quickbook executable was" ;
- ECHO " not provided. Additionally, couldn't find QuickBook" ;
- ECHO " sources searching in" ;
- ECHO " * BOOST_ROOT/tools/quickbook" ;
- ECHO " * BOOST_BUILD_PATH/../../quickbook" ;
- ECHO " Will now try to find a precompiled executable by searching" ;
- ECHO " the PATH for 'quickbook'." ;
- ECHO " To disable this warning in the future, or to completely" ;
- ECHO " avoid compilation of quickbook, you can explicitly set the" ;
- ECHO " path to a quickbook executable command in user-config.jam" ;
- ECHO " or site-config.jam with the call" ;
- ECHO " using quickbook : /path/to/quickbook ;" ;
-
- # As a last resort, search for 'quickbook' command in path. Note
- # that even if the 'quickbook' command is not found,
- # get-invocation-command will still return 'quickbook' and might
- # generate an error while generating the virtual-target.
-
- quickbook-binary = [ common.get-invocation-command quickbook : quickbook ] ;
- }
         }
 
         # Add $(quickbook-binary-dependencies) as a dependency of the current
@@ -284,13 +237,87 @@
         command ? # path to the QuickBook executable.
     )
 {
- if ! $(.initialized)
+ if $(command)
     {
- .initialized = true ;
+ if $(.config-frozen)
+ {
+ errors.user-error "quickbook: configuration cannot be changed after it has been used." ;
+ }
         .command = $(command) ;
     }
 }
 
+rule freeze-config ( )
+{
+ if ! $(.config-frozen)
+ {
+ .config-frozen = true ;
+
+ # QuickBook invocation command and dependencies.
+
+ .quickbook-binary = $(.command) ;
+
+ if $(.quickbook-binary)
+ {
+ # Use user-supplied command.
+ .quickbook-binary = [ common.get-invocation-command quickbook : quickbook : $(.quickbook-binary) ] ;
+ }
+ else
+ {
+ # Search for QuickBook sources in sensible places, like
+ # $(BOOST_ROOT)/tools/quickbook
+ # $(BOOST_BUILD_PATH)/../../quickbook
+
+ # And build quickbook executable from sources.
+
+ local boost-root = [ modules.peek : BOOST_ROOT ] ;
+ local boost-build-path = [ build-system.location ] ;
+
+ if $(boost-root)
+ {
+ .quickbook-dir += [ path.join $(boost-root) tools ] ;
+ }
+
+ if $(boost-build-path)
+ {
+ .quickbook-dir += $(boost-build-path)/../.. ;
+ }
+
+ .quickbook-dir = [ path.glob $(.quickbook-dir) : quickbook ] ;
+
+ # If the QuickBook source directory was found, mark its main target
+ # as a dependency for the current project. Otherwise, try to find
+ # 'quickbook' in user's PATH
+ if $(.quickbook-dir)
+ {
+ .quickbook-dir = [ path.make $(.quickbook-dir[1]) ] ;
+ }
+ else
+ {
+ ECHO "QuickBook warning: The path to the quickbook executable was" ;
+ ECHO " not provided. Additionally, couldn't find QuickBook" ;
+ ECHO " sources searching in" ;
+ ECHO " * BOOST_ROOT/tools/quickbook" ;
+ ECHO " * BOOST_BUILD_PATH/../../quickbook" ;
+ ECHO " Will now try to find a precompiled executable by searching" ;
+ ECHO " the PATH for 'quickbook'." ;
+ ECHO " To disable this warning in the future, or to completely" ;
+ ECHO " avoid compilation of quickbook, you can explicitly set the" ;
+ ECHO " path to a quickbook executable command in user-config.jam" ;
+ ECHO " or site-config.jam with the call" ;
+ ECHO " using quickbook : /path/to/quickbook ;" ;
+
+ # As a last resort, search for 'quickbook' command in path. Note
+ # that even if the 'quickbook' command is not found,
+ # get-invocation-command will still return 'quickbook' and might
+ # generate an error while generating the virtual-target.
+
+ .quickbook-binary = [ common.get-invocation-command quickbook : quickbook ] ;
+ }
+ }
+ }
+}
+
 
 generators.register [ new quickbook-binary-generator quickbook.quickbook-to-boostbook : QUICKBOOK : XML ] ;
 

Modified: branches/release/tools/build/v2/tools/xsltproc.jam
==============================================================================
--- branches/release/tools/build/v2/tools/xsltproc.jam (original)
+++ branches/release/tools/build/v2/tools/xsltproc.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -16,6 +16,7 @@
 import os ;
 import modules ;
 import path ;
+import errors ;
 
 feature.feature xsl:param : : free ;
 feature.feature xsl:path : : free ;
@@ -27,26 +28,50 @@
 #
 rule init ( xsltproc ? )
 {
- if ! $(xsltproc)
+ if $(xsltproc)
     {
- xsltproc = [ modules.peek : XSLTPROC ] ;
+ modify-config ;
+ .xsltproc = $(xsltproc) ;
+ check-xsltproc ;
     }
+}
 
- if ! $(.initialized)
+rule freeze-config ( )
+{
+ if ! $(.config-frozen)
     {
- .initialized = true ;
- .xsltproc = $(xsltproc) ;
- .is-cygwin = [ .is-cygwin $(xsltproc:E=xsltproc) ] ;
+ .config-frozen = true ;
+ .xsltproc ?= [ modules.peek : XSLTPROC ] ;
+ .xsltproc ?= xsltproc ;
+ check-xsltproc ;
+ .is-cygwin = [ .is-cygwin $(.xsltproc) ] ;
     }
 }
 
-# Returns a non-empty string if a cygwin xsltproc binary was specified.
-rule is-cygwin ( )
+rule modify-config
 {
- if ! $(.initialized)
+ if $(.config-frozen)
     {
- init ;
+ errors.user-error "xsltproc: Cannot change xsltproc command after it has been used." ;
     }
+}
+
+rule check-xsltproc ( )
+{
+ if $(.xsltproc)
+ {
+ local status = [ SHELL "\"$(.xsltproc)\" -V" : no-output : exit-status ] ;
+ if $(status[2]) != "0"
+ {
+ errors.user-error "xsltproc: Could not run \"$(.xsltproc)\" -V." ;
+ }
+ }
+}
+
+# Returns a non-empty string if a cygwin xsltproc binary was specified.
+rule is-cygwin ( )
+{
+ freeze-config ;
     return $(.is-cygwin) ;
 }
 
@@ -115,6 +140,7 @@
 
 local rule .xsltproc ( target : source stylesheet : properties * : dirname ? : action )
 {
+ freeze-config ;
     STYLESHEET on $(target) = $(stylesheet) ;
     FLAGS on $(target) += [ compute-xslt-flags $(target) : $(properties) ] ;
     NAME on $(target) = $(.xsltproc) ;

Modified: branches/release/tools/build/v2/util/path.jam
==============================================================================
--- branches/release/tools/build/v2/util/path.jam (original)
+++ branches/release/tools/build/v2/util/path.jam 2011-06-06 16:36:21 EDT (Mon, 06 Jun 2011)
@@ -465,6 +465,23 @@
     return $(result) ;
 }
 
+rule makedirs ( path )
+{
+ local result = true ;
+ local native = [ native $(path) ] ;
+ if ! [ exists $(native) ]
+ {
+ if [ makedirs [ parent $(path) ] ]
+ {
+ if ! [ MAKEDIR $(native) ]
+ {
+ errors.error "Could not create directory '$(path)'" ;
+ result = ;
+ }
+ }
+ }
+ return $(result) ;
+}
 
 # Converts native Windows paths into our internal canonic path representation.
 # Supports 'invalid' paths containing multiple successive path separator


Boost-Commit 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