/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/symlink.jam (4351B)
# Copyright 2003 Dave Abrahams # Copyright 2002, 2003 Rene Rivera # Copyright 2002, 2003, 2004, 2005 Vladimir Prus # 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) # Defines the "symlink" special target. 'symlink' targets make symbolic links # to the sources. import targets modules path class os feature project property-set ; .count = 0 ; feature.feature symlink-location : project-relative build-relative : incidental ; # The class representing "symlink" targets. # class symlink-targets : basic-target { import numbers modules class property project path ; rule __init__ ( project : targets * : sources * ) { # Generate a fake name for now. Need unnamed targets eventually. local c = [ modules.peek symlink : .count ] ; modules.poke symlink : .count : [ numbers.increment $(c) ] ; local fake-name = symlink#$(c) ; basic-target.__init__ $(fake-name) : $(project) : $(sources) ; # Remember the targets to map the sources onto. Pad or truncate # to fit the sources given. self.targets = ; for local source in $(sources) { if $(targets) { self.targets += $(targets[1]) ; targets = $(targets[2-]) ; } else { self.targets += $(source) ; } } # The virtual targets corresponding to the given targets. self.virtual-targets = ; } rule construct ( name : source-targets * : property-set ) { local i = 1 ; for local t in $(source-targets) { local s = $(self.targets[$(i)]) ; local a = [ class.new action $(t) : symlink.ln : $(property-set) ] ; local vt = [ class.new file-target $(s:D=) : [ $(t).type ] : $(self.project) : $(a) ] ; # Place the symlink in the directory relative to the project # location, instead of placing it in the build directory. if [ property.select : [ $(property-set).raw ] ] = project-relative { $(vt).set-path [ path.root $(s:D) [ $(self.project).get location ] ] ; } self.virtual-targets += $(vt) ; i = [ numbers.increment $(i) ] ; } return [ property-set.empty ] $(self.virtual-targets) ; } } # Creates a symbolic link from a set of targets to a set of sources. # The targets and sources map one to one. The symlinks generated are # limited to be the ones given as the sources. That is, the targets # are either padded or trimmed to equate to the sources. The padding # is done with the name of the corresponding source. For example:: # # symlink : one two ; # # Is equal to:: # # symlink one two : one two ; # # Names for symlink are relative to the project location. They cannot # include ".." path components. rule symlink ( targets * : sources * ) { local project = [ project.current ] ; return [ targets.main-target-alternative [ class.new symlink-targets $(project) : $(targets) : # Note: inline targets are not supported for symlink, intentionally, # since it's used to linking existing non-local targets. $(sources) ] ] ; } rule ln { local os ; if [ modules.peek : UNIX ] { os = UNIX ; } else { os ?= [ os.name ] ; } # Remember the path to make the link relative to where the symlink is located. local path-to-source = [ path.relative-to [ path.make [ on $(<) return $(LOCATE) ] ] [ path.make [ on $(>) return $(LOCATE) ] ] ] ; if $(path-to-source) = . { PATH_TO_SOURCE on $(<) = "" ; } else { PATH_TO_SOURCE on $(<) = [ path.native $(path-to-source) ] ; } ln-$(os) $(<) : $(>) ; } actions ln-UNIX { ln -f -s '$(>:D=:R=$(PATH_TO_SOURCE))' '$(<)' } # there is a way to do this; we fall back to a copy for now actions ln-NT { echo "NT symlinks not supported yet, making copy" del /f /q "$(<)" 2>nul >nul copy "$(>)" "$(<)" $(NULL_OUT) } IMPORT $(__name__) : symlink : : symlink ;