/usr/share/boost-build/src/tools
NameSizeModeActions
doxygen/-0755rm
features/-0755rm
generators/-0755rm
types/-0755rm
xsltproc/-0755rm
acc.jam48000644editdlrm
asciidoctor.jam64800644editdlrm
auto-index.jam83240644editdlrm
bison.jam5890644editdlrm
boostbook-config.jam3890644editdlrm
boostbook.jam240560644editdlrm
borland.jam99920644editdlrm
builtin.jam30370644editdlrm
bzip2.jam80660644editdlrm
cast.jam32370644editdlrm
clang-darwin.jam67130644editdlrm
clang-linux.jam99840644editdlrm
clang-vxworks.jam40260644editdlrm
clang-win.jam60940644editdlrm
clang.jam23100644editdlrm
common.jam316790644editdlrm
como-linux.jam35280644editdlrm
como-win.jam42370644editdlrm
como.jam20630644editdlrm
convert.jam19870644editdlrm
cray.jam411280644editdlrm
cw-config.jam12830644editdlrm
cw.jam95490644editdlrm
cygwin.jam4030644editdlrm
darwin.jam221650644editdlrm
diab.jam43070644editdlrm
dmc.jam60940644editdlrm
docutils.jam34440644editdlrm
doxproc.py366210644editdlrm
doxygen-config.jam3880644editdlrm
doxygen.jam247450644editdlrm
embarcadero.jam214870644editdlrm
emscripten.jam37790644editdlrm
flags.jam45700644editdlrm
fop.jam16930644editdlrm
fortran.jam19890644editdlrm
gcc.jam552880644editdlrm
generate.jam33390644editdlrm
gettext.jam76630644editdlrm
gfortran.jam10080644editdlrm
hpfortran.jam9020644editdlrm
hp_cxx.jam80890644editdlrm
ifort.jam14950644editdlrm
intel-darwin.jam97850644editdlrm
intel-linux.jam91930644editdlrm
intel-vxworks.jam70850644editdlrm
intel-win.jam163960644editdlrm
intel.jam26260644editdlrm
lex.jam5590644editdlrm
libjpeg.jam73620644editdlrm
libpng.jam71040644editdlrm
libtiff.jam72080644editdlrm
link.jam150210644editdlrm
lzma.jam32770644editdlrm
make.jam22660644editdlrm
mc.jam13110644editdlrm
message.jam16670644editdlrm
midl.jam53670644editdlrm
mipspro.jam52910644editdlrm
mpi.jam218260644editdlrm
msvc-config.jam3930644editdlrm
msvc.jam846720644editdlrm
notfile.jam16540644editdlrm
openssl.jam36130644editdlrm
package.jam92810644editdlrm
pathscale.jam66290644editdlrm
pch.jam27190644editdlrm
pgi.jam48790644editdlrm
pkg-config.jam134430644editdlrm
python-config.jam8360644editdlrm
python.jam436790644editdlrm
qcc.jam108360644editdlrm
qt.jam5300644editdlrm
qt3.jam68100644editdlrm
qt4.jam239740644editdlrm
qt5.jam265170644editdlrm
quickbook-config.jam12660644editdlrm
quickbook.jam132770644editdlrm
rc.jam53640644editdlrm
sass.jam57020644editdlrm
saxonhe.jam13290644editdlrm
stage.jam285130644editdlrm
stlport.jam118800644editdlrm
sun.jam80540644editdlrm
symlink.jam43510644editdlrm
testing-aux.jam102380644editdlrm
testing.jam278890644editdlrm
unix.jam58470644editdlrm
vacpp.jam57250644editdlrm
vmsdecc.jam201850644editdlrm
whale.jam32530644editdlrm
xlcpp.jam61210644editdlrm
xlf.jam9000644editdlrm
xsltproc-config.jam8380644editdlrm
xsltproc.jam56030644editdlrm
zlib.jam69760644editdlrm
zstd.jam24460644editdlrm
Edit: /usr/share/boost-build/src/tools/unix.jam (5847B)
# Copyright (c) 2004 Vladimir Prus. # # Use, modification and distribution is subject to the Boost Software # License Version 1.0. (See accompanying file LICENSE_1_0.txt or # http://www.boost.org/LICENSE_1_0.txt) # This file implements linking semantic common to all unixes. On unix, static # libraries must be specified in a fixed order on the linker command line. Generators # declared there store information about the order and use it property. import feature ; import "class" : new ; import generators ; import type ; import set ; import order ; import builtin ; class unix-linking-generator : linking-generator { import property-set ; import type ; import unix ; rule __init__ ( id composing ? : # Specify if generator is composing. The generator will be # composing if non-empty string is passed, or parameter is # not given. To make generator non-composing, pass empty # string ("") source-types + : target-types + : requirements * ) { composing ?= true ; generator.__init__ $(id) $(composing) : $(source-types) : $(target-types) : $(requirements) ; } rule run ( project name ? : property-set : sources + ) { local result = [ linking-generator.run $(project) $(name) : $(property-set) : $(sources) ] ; unix.set-library-order $(sources) : $(property-set) : $(result[2-]) ; return $(result) ; } rule generated-targets ( sources + : property-set : project name ? ) { local sources2 ; local libraries ; for local l in $(sources) { if [ type.is-derived [ $(l).type ] LIB ] { libraries += $(l) ; } else { sources2 += $(l) ; } } sources = $(sources2) [ unix.order-libraries $(libraries) ] ; return [ linking-generator.generated-targets $(sources) : $(property-set) : $(project) $(name) ] ; } } class unix-archive-generator : archive-generator { import unix ; rule __init__ ( id composing ? : source-types + : target-types + : requirements * ) { composing ?= true ; archive-generator.__init__ $(id) $(composing) : $(source-types) : $(target-types) : $(requirements) ; } rule run ( project name ? : property-set : sources + ) { local result = [ archive-generator.run $(project) $(name) : $(property-set) : $(sources) ] ; unix.set-library-order $(sources) : $(property-set) : $(result[2-]) ; return $(result) ; } } class unix-searched-lib-generator : searched-lib-generator { import unix ; rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } rule optional-properties ( ) { return $(self.requirements) ; } rule run ( project name ? : property-set : sources * ) { local result = [ searched-lib-generator.run $(project) $(name) : $(property-set) : $(sources) ] ; unix.set-library-order $(sources) : $(property-set) : $(result[2-]) ; return $(result) ; } } class unix-prebuilt-lib-generator : generator { import unix ; rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } rule run ( project name ? : property-set : sources * ) { local f = [ $(property-set).get ] ; unix.set-library-order-aux $(f) : $(sources) ; return $(f) $(sources) ; } } generators.register [ new unix-prebuilt-lib-generator unix.prebuilt : : LIB : unix ] ; generators.override unix.prebuilt : builtin.lib-generator ; # Declare generators generators.register [ new unix-linking-generator unix.link : LIB OBJ : EXE : unix ] ; generators.register [ new unix-archive-generator unix.archive : OBJ : STATIC_LIB : unix ] ; generators.register [ new unix-linking-generator unix.link.dll : LIB OBJ : SHARED_LIB : unix ] ; generators.register [ new unix-searched-lib-generator unix.searched-lib-generator : : SEARCHED_LIB : unix ] ; # The derived toolset must specify their own actions. actions link { } actions link.dll { } actions archive { } actions searched-lib-generator { } actions prebuilt { } .order = [ new order ] ; rule set-library-order-aux ( from * : to * ) { for local f in $(from) { for local t in $(to) { if $(f) != $(t) { $(.order).add-pair $(f) $(t) ; } } } } rule set-library-order ( sources * : property-set : result * ) { local used-libraries ; local deps = [ $(property-set).dependency ] ; for local l in $(sources) $(deps:G=) { if [ $(l).type ] && [ type.is-derived [ $(l).type ] LIB ] { used-libraries += $(l) ; } } local created-libraries ; for local l in $(result) { if [ $(l).type ] && [ type.is-derived [ $(l).type ] LIB ] { created-libraries += $(l) ; } } created-libraries = [ set.difference $(created-libraries) : $(used-libraries) ] ; set-library-order-aux $(created-libraries) : $(used-libraries) ; } rule order-libraries ( libraries * ) { local r = [ $(.order).order $(libraries) ] ; return $(r) ; }