# extract a tarball
tarball some-source-tarball-id
: # sources (empty list specifies input tarball?)
: # requirements
# specifies the filepath of an existing tarball (only applicable for input tarball)
<file>path/to/a/tarball.tgz
# override default location to extract files;
# does defaulting (and, for relative paths, anchoring) to current Jamfile's directory make more sense than using the build path?
<location>path/to/extracted/files
# no default-build
# no usage-requirements
;
# create/update a tarball from the source tree
tarball output-source-tarball-id
: # sources (can be files or targets; for targets, the target's output files are archived)
# add all .cpp and .hpp files, preserving their relative paths
[ glob-tree . : *.?pp ]
: # requirements
# <location> on a <source> could override the path of the file in the tarball?
<source>some-disjoint-header.hpp/<location>override/path/in/tarball
# specify archive compression
<compression>lzma # alternatives: none, gzip, bzip2, zip; the zip would not actually be a tarball
# override name of output (default is the rule name)
<name>source-tarball # add file extension automatically if omitted?
# override path of output;
# does defaulting (and, for relative paths, anchoring) to current Jamfile's directory make more sense than using the build path?
<location>path/to/output/tarball
# no default-build
# no usage-requirements
;
# create/update a tarball from the output of some build targets
tarball output-binary-tarball-id
: # sources
some-exe-target
: # requirements
<library>some-library-target/<with>features
<dependency>some-make-target
<name>binary-tarball.tar.bz2
# no default-build
# no usage-requirements
;