From 5c77ecf330364ef1d85146428f769b87402cac57 Mon Sep 17 00:00:00 2001 From: vladimir_prus Date: Fri, 15 May 2009 05:23:56 +0000 Subject: [PATCH] Implement the 'tagged' layout. git-svn-id: http://svn.boost.org/svn/boost/trunk@53015 b8fc166d-592f-0410-95f2-cb63ce0dd405 --- Jamroot | 104 ++++++++++++++++++++++++++++++++------------------------------- 1 files changed, 53 insertions(+), 51 deletions(-) diff --git a/Jamroot b/Jamroot index 919ab01..ca61af1 100644 --- a/Jamroot +++ b/Jamroot @@ -64,21 +64,26 @@ # versions of Boost or multiple compilers can # be used on the same system. # -# versioned (default) - Names of boost -# binaries include the Boost version -# number and the name and version of the -# compiler. Boost headers are installed -# in a subdirectory of whose -# name contains the Boost version -# number. -# -# system - Binaries names do not include -# the Boost version number or the name -# and version number of the compiler. -# Boost headers are installed directly -# into . This option is -# intended for system integrators who -# are building distribution packages. +# versioned (default) - Names of boost binaries +# include the Boost version number, name and +# version of the compiler and encoded build +# properties. Boost headers are installed in a +# subdirectory of whose name contains +# the Boost version number. +# +# tagged -- Names of boost binaries include the +# encoded build properties such as variant and +# threading, but do not including compiler name +# and version, or Boost version. This option is +# useful if you build several variants of Boost, +# using the same compiler. +# +# system - Binaries names do not include the +# Boost version number or the name and version +# number of the compiler. Boost headers are +# installed directly into . This option +# is intended for system integrators who are +# building distribution packages. # # --buildid=ID Adds the specified ID to the name of built # libraries. The default is to not add anything. @@ -318,53 +323,50 @@ rule tag ( name : type ? : property-set ) { if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB { + local result ; if $(layout) = versioned { - local result = [ common.format-name + result = [ common.format-name -$(BOOST_VERSION_TAG) -$(BUILD_ID) : $(name) : $(type) : $(property-set) ] ; - - # 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 ] in windows cygwin darwin aix ) && - ! ( [ $(property-set).get ] in pgi ) ) - { - result = $(result).$(BOOST_VERSION) ; - } - - return $(result) ; + } + else if $(layout) = tagged + { + result = [ common.format-name + + -$(BUILD_ID) + : $(name) : $(type) : $(property-set) ] ; } - else + else if $(layout) = system { - local result = [ common.format-name + result = [ common.format-name -$(BUILD_ID) : $(name) : $(type) : $(property-set) ] ; - - # 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 ] in windows cygwin darwin aix ) && - ! ( [ $(property-set).get ] in pgi ) ) - { - result = $(result).$(BOOST_VERSION) ; - } - - return $(result) ; } - } + 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 ] in windows cygwin darwin aix ) && + ! ( [ $(property-set).get ] in pgi ) ) + { + result = $(result).$(BOOST_VERSION) ; + } + + return $(result) ; + } } -- 1.6.1