summaryrefslogtreecommitdiffstats
path: root/doc/man/scons-time.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/man/scons-time.xml')
-rw-r--r--doc/man/scons-time.xml1283
1 files changed, 1283 insertions, 0 deletions
diff --git a/doc/man/scons-time.xml b/doc/man/scons-time.xml
new file mode 100644
index 0000000..6227e25
--- /dev/null
+++ b/doc/man/scons-time.xml
@@ -0,0 +1,1283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!-- lifted from troff+man by doclifter -->
+<refentry id='sconstime1'>
+<!-- __COPYRIGHT__ -->
+
+<!-- Permission is hereby granted, free of charge, to any person obtaining -->
+<!-- a copy of this software and associated documentation files (the -->
+<!-- "Software"), to deal in the Software without restriction, including -->
+<!-- without limitation the rights to use, copy, modify, merge, publish, -->
+<!-- distribute, sublicense, and/or sell copies of the Software, and to -->
+<!-- permit persons to whom the Software is furnished to do so, subject to -->
+<!-- the following conditions: -->
+
+<!-- The above copyright notice and this permission notice shall be included -->
+<!-- in all copies or substantial portions of the Software. -->
+
+<!-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -->
+<!-- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -->
+<!-- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -->
+<!-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -->
+<!-- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -->
+<!-- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -->
+<!-- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+
+<!-- __FILE__ __REVISION__ __DATE__ __DEVELOPER__ -->
+
+<!-- ES \- Example Start \- indents and turns off line fill -->
+<!-- EE \- Example End \- ends indent and turns line fill back on -->
+<!-- '\"========================================================================== -->
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+<refmeta>
+<refentrytitle>SCONS-TIME</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class='source'>__MONTH_YEAR__</refmiscinfo>
+</refmeta>
+<refnamediv id='name'>
+<refname>scons-time</refname>
+<refpurpose>generate and display SCons timing information</refpurpose>
+</refnamediv>
+<refsynopsisdiv id='synopsis'>
+<cmdsynopsis>
+ <command>scons-time</command>
+ <arg choice='plain'><replaceable>subcommand</replaceable></arg>
+ <arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
+ <arg choice='opt' rep='repeat'><replaceable>arguments</replaceable></arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<!-- body begins here -->
+
+<refsect1 id='generating_timing_information'><title>Generating Timing Information</title>
+<para><emphasis remap='B'>scons-time run</emphasis>
+[<option>-hnqv</option>]
+[<option>--aegis=</option><replaceable>PROJECT</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--number=</option><replaceable>NUMBER</replaceable>]
+[<option>--outdir=</option><replaceable>OUTDIR</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--python=</option><replaceable>PYTHON</replaceable>]
+[<option>-s </option><emphasis remap='I'>DIR</emphasis>]
+[<option>--scons=</option><replaceable>SCONS</replaceable>]
+[<option>--svn=</option><replaceable>URL</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+
+<refsect2 id='extracting_function_timings'><title>Extracting Function Timings</title>
+<para><emphasis remap='B'>scons-time func</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>--func=</option><replaceable>NAME</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title= TITLE</option>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+</refsect2>
+
+<refsect2 id='extracting_memory_statistics'><title>Extracting Memory Statistics</title>
+<para><emphasis remap='B'>scons-time mem</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--stage=</option><replaceable>STAGE</replaceable>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+</refsect2>
+
+<refsect2 id='extracting_object_counts'><title>Extracting Object Counts</title>
+<para><emphasis remap='B'>scons-time obj</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--stage=</option><replaceable>STAGE</replaceable>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+</refsect2>
+
+<refsect2 id='extracting_execution_times'><title>Extracting Execution Times</title>
+<para><emphasis remap='B'>scons-time time</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<option>--which=</option><replaceable>WHICH</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+</refsect2>
+
+<refsect2 id='help_text'><title>Help Text</title>
+<para><emphasis remap='B'>scons-time help</emphasis>
+<emphasis remap='I'>SUBCOMMAND</emphasis>
+[...]</para>
+<!-- '\"========================================================================== -->
+</refsect2>
+</refsect1>
+
+<refsect1 id='description'><title>DESCRIPTION</title>
+<para>The
+<command>scons-time</command>
+command runs an SCons configuration
+through a standard set of profiled timings
+and can extract and graph information from the
+resulting profiles and log files of those timings.
+The action to be performed by the
+<command>scons-time</command>
+script is specified
+by a subcommand, the first argument on the command line.
+See the
+<link linkend="subcommands">SUBCOMMANDS</link>
+section below for information about the operation
+of specific subcommands.</para>
+
+<para>The basic way to use
+<command>scons-time</command>
+is to run the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand
+(possibly multiple times)
+to generate profile and log file output,
+and then use one of the other
+subcommands to display the results
+captured in the profiles and log files
+for a particular kind of information:
+function timings
+(the
+<emphasis remap='B'>scons-time func</emphasis>
+subcommand),
+total memory used
+(the
+<emphasis remap='B'>scons-time mem</emphasis>
+subcommand),
+object counts
+(the
+<emphasis remap='B'>scons-time obj</emphasis>
+subcommand)
+and overall execution time
+(the
+<emphasis remap='B'>scons-time time</emphasis>
+subcommand).
+Options exist to place and find the
+profiles and log files in separate directories,
+to generate the output in a format suitable
+for graphing with the
+<citerefentry><refentrytitle>gnuplot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+program,
+and so on.</para>
+
+<para>There are two basic ways the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand
+is intended to be used
+to gather timing statistics
+for a configuration.
+One is to use the
+<option>--svn=</option>
+option to test a configuration against
+a list of revisions from the SCons Subversion repository.
+This will generate a profile and timing log file
+for every revision listed with the
+<option>--number=</option>
+option,
+and can be used to look at the
+impact of commited changes to the
+SCons code base on a particular
+configuration over time.</para>
+
+<para>The other way is to profile incremental changes to a
+local SCons code base during a development cycle--that is,
+to look at the performance impact of changes
+you're making in the local tree.
+In this mode,
+you run the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand
+<emphasis remap='I'>without</emphasis>
+the
+<option>--svn=</option>
+option,
+in which case it simply looks in the profile/log file output directory
+(the current directory by default)
+and automatically figures out the
+<emphasis remap='I'>next</emphasis>
+run number for the output profile and log file.
+Used in this way,
+the development cycle goes something like:
+make a change to SCons;
+run
+<emphasis remap='B'>scons-time run</emphasis>
+to profile it against a specific configuration;
+make another change to SCons;
+run
+<emphasis remap='B'>scons-time run</emphasis>
+again to profile it;
+etc.</para>
+<!-- '\"========================================================================== -->
+</refsect1>
+
+<refsect1 id='options'><title>OPTIONS</title>
+<para>The
+<command>scons-time</command>
+command only supports a few global options:</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays the global help text and exits,
+identical to the
+<emphasis remap='B'>scons-time help</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-V, --version</term>
+ <listitem>
+<para>Displays the
+<command>scons-time</command>
+version and exits.</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+<para>Most functionality is controlled by options
+to the individual subcommands.
+See the next section for information
+about individual subcommand options.</para>
+<!-- '\"========================================================================== -->
+</refsect1>
+
+<refsect1 id='subcommands'><title>SUBCOMMANDS</title>
+<para>The
+<command>scons-time</command>
+command supports the following
+individual subcommands.</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+
+<refsect2 id='the_func_subcommand'><title>The func Subcommand</title>
+<para><emphasis remap='B'>scons-time func</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>--func=</option><replaceable>NAME</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title= TITLE</option>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+
+<para>The
+<emphasis remap='B'>scons-time func</emphasis>
+subcommand displays timing information
+for a specific Python function within SCons.
+By default, it extracts information about the
+<emphasis remap='B'>_main</emphasis>()
+function,
+which includes the Python profiler timing
+for all of SCons.</para>
+
+<para>The
+<emphasis remap='B'>scons-time func</emphasis>
+subcommand extracts function timing information
+from all the specified file arguments,
+which should be Python profiler output files.
+(Normally, these would be
+<emphasis remap='B'>*.prof</emphasis>
+files generated by the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand,
+but they can actually be generated
+by any Python profiler invocation.)
+All file name arguments will be
+globbed for on-disk files.</para>
+
+<para>If no arguments are specified,
+then function timing information
+will be extracted from all
+<emphasis remap='B'>*.prof</emphasis>
+files,
+or the subset of them
+with a prefix specified by the
+<option>-p</option>
+option.</para>
+
+<para>Options include:</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-C DIRECTORY, --chdir=DIRECTORY</term>
+ <listitem>
+<para>Changes to the specified
+<emphasis remap='I'>DIRECTORY</emphasis>
+before looking for the specified files
+(or files that match the specified patterns).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-f FILE, --file=FILE</term>
+ <listitem>
+<para>Reads configuration information from the specified
+<emphasis remap='I'>FILE</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-fmt=FORMAT, --format=FORMAT</term>
+ <listitem>
+<para>Reports the output in the specified
+<emphasis remap='I'>FORMAT</emphasis>.
+The formats currently supported are
+<emphasis remap='B'>ascii</emphasis>
+(the default)
+and
+<emphasis remap='B'>gnuplot</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--func=NAME</term>
+ <listitem>
+<para>Extracts timings for the specified function
+<emphasis remap='I'>NAME</emphasis>.
+The default is to report cumulative timings for the
+<emphasis remap='B'>_main</emphasis>()
+function,
+which contains the entire SCons run.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays help text for the
+<emphasis remap='B'>scons-time func</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-p STRING, --prefix=STRING</term>
+ <listitem>
+<para>Specifies the prefix string for profiles
+from which to extract function timing information.
+This will be used to search for profiles
+if no arguments are specified on the command line.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-t NUMBER, --tail=NUMBER</term>
+ <listitem>
+<para>Only extracts function timings from the last
+<emphasis remap='I'>NUMBER</emphasis>
+files.</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+
+<refsect2 id='the_help_subcommand'><title>The help Subcommand</title>
+<para><emphasis remap='B'>scons-time help</emphasis>
+<emphasis remap='I'>SUBCOMMAND</emphasis>
+[...]
+The
+<emphasis remap='B'>help</emphasis>
+subcommand prints help text for any
+other subcommands listed as later arguments on the command line.</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+</refsect2>
+
+<refsect2 id='the_mem_subcommand'><title>The mem Subcommand</title>
+<para><emphasis remap='B'>scons-time mem</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--stage=</option><replaceable>STAGE</replaceable>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+
+<para>The
+<emphasis remap='B'>scons-time mem</emphasis>
+subcommand displays how much memory SCons uses.</para>
+
+<para>The
+<emphasis remap='B'>scons-time mem</emphasis>
+subcommand extracts memory use information
+from all the specified file arguments,
+which should be files containing output from
+running SCons with the
+<option>--debug=memory</option>
+option.
+(Normally, these would be
+<emphasis remap='B'>*.log</emphasis>
+files generated by the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand.)
+All file name arguments will be
+globbed for on-disk files.</para>
+
+<para>If no arguments are specified,
+then memory information
+will be extracted from all
+<emphasis remap='B'>*.log</emphasis>
+files,
+or the subset of them
+with a prefix specified by the
+<option>-p</option>
+option.</para>
+
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-C DIR, --chdir=DIR</term>
+ <listitem>
+<para>Changes to the specified
+<emphasis remap='I'>DIRECTORY</emphasis>
+before looking for the specified files
+(or files that match the specified patterns).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-f FILE, --file=FILE</term>
+ <listitem>
+<para>Reads configuration information from the specified
+<emphasis remap='I'>FILE</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-fmt=FORMAT, --format=FORMAT</term>
+ <listitem>
+<para>Reports the output in the specified
+<emphasis remap='I'>FORMAT</emphasis>.
+The formats currently supported are
+<emphasis remap='B'>ascii</emphasis>
+(the default)
+and
+<emphasis remap='B'>gnuplot</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays help text for the
+<emphasis remap='B'>scons-time mem</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-p STRING, --prefix=STRING</term>
+ <listitem>
+<para>Specifies the prefix string for log files
+from which to extract memory usage information.
+This will be used to search for log files
+if no arguments are specified on the command line.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--stage=STAGE</term>
+ <listitem>
+<para>Prints the memory used at the end of the specified
+<emphasis remap='I'>STAGE</emphasis>:
+<emphasis remap='B'>pre-read</emphasis>
+(before the SConscript files are read),
+<emphasis remap='B'>post-read ,</emphasis>
+(after the SConscript files are read),
+<emphasis remap='B'>pre-build</emphasis>
+(before any targets are built)
+or
+<emphasis remap='B'>post-build</emphasis>
+(after any targets are built).
+If no
+<option>--stage</option>
+option is specified,
+the default behavior is
+<emphasis remap='B'>post-build</emphasis>,
+which reports the final amount of memory
+used by SCons during each run.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-t NUMBER, --tail=NUMBER</term>
+ <listitem>
+<para>Only reports memory statistics from the last
+<emphasis remap='I'>NUMBER</emphasis>
+files.</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+
+<refsect2 id='the_obj_subcommand'><title>The obj Subcommand</title>
+<para><emphasis remap='B'>scons-time obj</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--stage=</option><replaceable>STAGE</replaceable>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+
+<para>The
+<emphasis remap='B'>scons-time obj</emphasis>
+subcommand displays how many objects of a specific named type
+are created by SCons.</para>
+
+<para>The
+<emphasis remap='B'>scons-time obj</emphasis>
+subcommand extracts object counts
+from all the specified file arguments,
+which should be files containing output from
+running SCons with the
+<option>--debug=count</option>
+option.
+(Normally, these would be
+<emphasis remap='B'>*.log</emphasis>
+files generated by the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand.)
+All file name arguments will be
+globbed for on-disk files.</para>
+
+<para>If no arguments are specified,
+then object counts
+will be extracted from all
+<emphasis remap='B'>*.log</emphasis>
+files,
+or the subset of them
+with a prefix specified by the
+<option>-p</option>
+option.</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-C DIR, --chdir=DIR</term>
+ <listitem>
+<para>Changes to the specified
+<emphasis remap='I'>DIRECTORY</emphasis>
+before looking for the specified files
+(or files that match the specified patterns).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-f FILE, --file=FILE</term>
+ <listitem>
+<para>Reads configuration information from the specified
+<emphasis remap='I'>FILE</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-fmt=FORMAT, --format=FORMAT</term>
+ <listitem>
+<para>Reports the output in the specified
+<emphasis remap='I'>FORMAT</emphasis>.
+The formats currently supported are
+<emphasis remap='B'>ascii</emphasis>
+(the default)
+and
+<emphasis remap='B'>gnuplot</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays help text for the
+<emphasis remap='B'>scons-time obj</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-p STRING, --prefix=STRING</term>
+ <listitem>
+<para>Specifies the prefix string for log files
+from which to extract object counts.
+This will be used to search for log files
+if no arguments are specified on the command line.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--stage=STAGE</term>
+ <listitem>
+<para>Prints the object count at the end of the specified
+<emphasis remap='I'>STAGE</emphasis>:
+<emphasis remap='B'>pre-read</emphasis>
+(before the SConscript files are read),
+<emphasis remap='B'>post-read ,</emphasis>
+(after the SConscript files are read),
+<emphasis remap='B'>pre-build</emphasis>
+(before any targets are built)
+or
+<emphasis remap='B'>post-build</emphasis>
+(after any targets are built).
+If no
+<option>--stage</option>
+option is specified,
+the default behavior is
+<emphasis remap='B'>post-build</emphasis>,
+which reports the final object count during each run.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-t NUMBER, --tail=NUMBER</term>
+ <listitem>
+<para>Only reports object counts from the last
+<emphasis remap='I'>NUMBER</emphasis>
+files.</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+
+<refsect2 id='the_run_subcommand'><title>The run Subcommand</title>
+<para><emphasis remap='B'>scons-time run</emphasis>
+[<option>-hnqv</option>]
+[<option>--aegis=</option><replaceable>PROJECT</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--number=</option><replaceable>NUMBER</replaceable>]
+[<option>--outdir=</option><replaceable>OUTDIR</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>--python=</option><replaceable>PYTHON</replaceable>]
+[<option>-s </option><emphasis remap='I'>DIR</emphasis>]
+[<option>--scons=</option><replaceable>SCONS</replaceable>]
+[<option>--svn=</option><replaceable>URL</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]
+The
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand is the basic subcommand
+for profiling a specific configuration
+against a version of SCons.</para>
+
+<para>The configuration to be tested
+is specified as a list of files
+or directories that will be unpacked or copied
+into a temporary directory
+in which SCons will be invoked.
+The
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand understands file suffixes like
+<markup>.tar</markup>,
+<markup>.tar.gz</markup>,
+<markup>.tgz</markup>
+and
+<markup>.zip</markup>
+and will unpack their contents into a temporary directory.
+If more than one argument is specified,
+each one will be unpacked or copied
+into the temporary directory "on top of"
+the previous archives or directories,
+so the expectation is that multiple
+specified archives share the same directory layout.</para>
+
+<para>Once the file or directory arguments are unpacked or
+copied to the temporary directory,
+the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand runs the
+requested version of SCons
+against the configuration
+three times:</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>Startup</term>
+ <listitem>
+<para>SCons is run with the
+<option>--help</option>
+option so that just the SConscript files are read,
+and then the default help text is printed.
+This profiles just the perceived "overhead" of starting up SCons
+and processing the SConscript files.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Full build</term>
+ <listitem>
+<para>SCons is run to build everything specified in the configuration.
+Specific targets to be passed in on the command l ine
+may be specified by the
+<emphasis remap='B'>targets</emphasis>
+keyword in a configuration file; see below for details.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Rebuild</term>
+ <listitem>
+<para>SCons is run again on the same just-built directory.
+If the dependencies in the SCons configuration are correct,
+this should be an up-to-date, "do nothing" rebuild.</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+<para>Each invocation captures the output log file and a profile.</para>
+
+<para>The
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand supports the following options:</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>--aegis=PROJECT</term>
+ <listitem>
+<para>Specifies the Aegis
+<emphasis remap='I'>PROJECT</emphasis>
+from which the
+version(s) of
+<emphasis remap='B'>scons</emphasis>
+being timed will be extracted.
+When
+<option>--aegis</option>
+is specified, the
+<option>--number=</option><replaceable>NUMBER</replaceable>
+option specifies delta numbers
+that will be tested.
+Output from each invocation run will be placed in file
+names that match the Aegis delta numbers.
+If the
+<option>--number=</option>
+option is not specified,
+then the default behavior is to time the
+tip of the specified
+<emphasis remap='I'>PROJECT</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-f FILE, --file=FILE</term>
+ <listitem>
+<para>Reads configuration information from the specified
+<emphasis remap='I'>FILE</emphasis>.
+This often provides a more convenient way to specify and
+collect parameters associated with a specific timing configuration
+than specifying them on the command line.
+See the
+<link linkend="configuration_file">CONFIGURATION FILE</link>
+section below
+for information about the configuration file parameters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays help text for the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-n, --no-exec</term>
+ <listitem>
+<para>Do not execute commands,
+just printing the command-line equivalents of what would be executed.
+Note that the
+<command>scons-time</command>
+script actually executes its actions in Python,
+where possible,
+for portability.
+The commands displayed are UNIX
+<emphasis remap='I'>equivalents</emphasis>
+of what it's doing.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--number=NUMBER</term>
+ <listitem>
+<para>Specifies the run number to be used in the names of
+the log files and profile outputs generated by this run.</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+<para>When used in conjuction with the
+<option>--aegis=</option><replaceable>PROJECT</replaceable>
+option,
+<emphasis remap='I'>NUMBER</emphasis>
+specifies one or more comma-separated Aegis delta numbers
+that will be retrieved automatically from the specified Aegis
+<emphasis remap='I'>PROJECT</emphasis>.</para>
+
+<para>When used in conjuction with the
+<option>--svn=</option><replaceable>URL</replaceable>
+option,
+<emphasis remap='I'>NUMBER</emphasis>
+specifies one or more comma-separated Subversion revision numbers
+that will be retrieved automatically from the Subversion
+repository at the specified
+<emphasis remap='I'>URL</emphasis>.
+Ranges of delta or revision numbers
+may be specified be separating two numbers
+with a hyphen
+(<emphasis remap='B'>-</emphasis>).</para>
+
+<para>Example:</para>
+<literallayout remap='.nf'>
+% scons-time run --svn=<ulink url='http://scons.tigris.org/svn/trunk'>http://scons.tigris.org/svn/trunk</ulink> --num=1247,1249-1252 .
+</literallayout> <!-- .fi -->
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-p STRING, --prefix=STRING</term>
+ <listitem>
+<para>Specifies the prefix string to be used for all of the log files
+and profiles generated by this run.
+The default is derived from the first
+specified argument:
+if the first argument is a directory,
+the default prefix is the name of the directory;
+if the first argument is an archive
+(tar or zip file),
+the default prefix is the the base name of the archive,
+that is, what remains after stripping the archive suffix
+(<markup>.tgz</markup>, <markup>.tar.gz</markup> or <markup>.zip</markup>).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--python=PYTHON</term>
+ <listitem>
+<para>Specifies a path to the Python executable to be used
+for the timing runs.
+The default is to use the same Python executable that
+is running the
+<command>scons-time</command>
+command itself.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-q, --quiet</term>
+ <listitem>
+<para>Suppresses display of the command lines being executed.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-s DIR, --subdir=DIR</term>
+ <listitem>
+<para>Specifies the name of directory or subdirectory
+from which the commands should be executed.
+The default is XXX</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--scons=SCONS</term>
+ <listitem>
+<para>Specifies a path to the SCons script to be used
+for the timing runs.
+The default is XXX</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--svn=URL, --subversion=URL</term>
+ <listitem>
+<para>Specifies the
+<emphasis remap='I'>URL</emphasis>
+of the Subversion repository from which the
+version(s) of
+<emphasis remap='B'>scons</emphasis>
+being timed will be extracted.
+When
+<option>--svn</option>
+is specified, the
+<option>--number=</option><replaceable>NUMBER</replaceable>
+option specifies revision numbers
+that will be tested.
+Output from each invocation run will be placed in file
+names that match the Subversion revision numbers.
+If the
+<option>--number=</option>
+option is not specified,
+then the default behavior is to time the
+<emphasis remap='B'>HEAD</emphasis>
+of the specified
+<emphasis remap='I'>URL</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-v, --verbose</term>
+ <listitem>
+<para>Displays the output from individual commands to the screen
+(in addition to capturing the output in log files).</para>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+
+<refsect2 id='the_time_subcommand'><title>The time Subcommand</title>
+<para><emphasis remap='B'>scons-time time</emphasis>
+[<option>-h</option>]
+[<option>--chdir=</option><replaceable>DIR</replaceable>]
+[<option>-f </option><emphasis remap='I'>FILE</emphasis>]
+[<option>--fmt=</option><replaceable>FORMAT</replaceable>]
+[<option>-p </option><emphasis remap='I'>STRING</emphasis>]
+[<option>-t </option><emphasis remap='I'>NUMBER</emphasis>]
+[<option>--title=</option><replaceable>TITLE</replaceable>]
+[<option>--which=</option><replaceable>WHICH</replaceable>]
+[<emphasis remap='I'>ARGUMENTS</emphasis>]</para>
+
+<para>The
+<emphasis remap='B'>scons-time time</emphasis>
+subcommand displays SCons execution times
+as reported by the
+<userinput>scons --debug=time</userinput>
+option.</para>
+
+<para>The
+<emphasis remap='B'>scons-time time</emphasis>
+subcommand extracts SCons timing
+from all the specified file arguments,
+which should be files containing output from
+running SCons with the
+<option>--debug=time</option>
+option.
+(Normally, these would be
+<emphasis remap='B'>*.log</emphasis>
+files generated by the
+<emphasis remap='B'>scons-time run</emphasis>
+subcommand.)
+All file name arguments will be
+globbed for on-disk files.</para>
+
+<para>If no arguments are specified,
+then execution timings
+will be extracted from all
+<emphasis remap='B'>*.log</emphasis>
+files,
+or the subset of them
+with a prefix specified by the
+<option>-p</option>
+option.</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term>-C DIR, --chdir=DIR</term>
+ <listitem>
+<para>Changes to the specified
+<emphasis remap='I'>DIRECTORY</emphasis>
+before looking for the specified files
+(or files that match the specified patterns).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-f FILE, --file=FILE</term>
+ <listitem>
+<para>Reads configuration information from the specified
+<emphasis remap='I'>FILE</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-fmt=FORMAT, --format=FORMAT</term>
+ <listitem>
+<para>Reports the output in the specified
+<emphasis remap='I'>FORMAT</emphasis>.
+The formats currently supported are
+<emphasis remap='B'>ascii</emphasis>
+(the default)
+and
+<emphasis remap='B'>gnuplot</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-h, --help</term>
+ <listitem>
+<para>Displays help text for the
+<emphasis remap='B'>scons-time time</emphasis>
+subcommand.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-p STRING, --prefix=STRING</term>
+ <listitem>
+<para>Specifies the prefix string for log files
+from which to extract execution timings.
+This will be used to search for log files
+if no arguments are specified on the command line.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-t NUMBER, --tail=NUMBER</term>
+ <listitem>
+<para>Only reports object counts from the last
+<emphasis remap='I'>NUMBER</emphasis>
+files.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--which=WHICH</term>
+ <listitem>
+<para>Prints the execution time for the specified
+<emphasis remap='I'>WHICH</emphasis>
+value:
+<emphasis remap='B'>total</emphasis>
+(the total execution time),
+<emphasis remap='B'>SConscripts</emphasis>
+(total execution time for the SConscript files themselves),
+<emphasis remap='B'>SCons</emphasis>
+(exectuion time in SCons code itself)
+or
+<emphasis remap='B'>commands</emphasis>
+(execution time of the commands and other actions
+used to build targets).
+If no
+<option>--which</option>
+option is specified,
+the default behavior is
+<emphasis remap='B'>total</emphasis>,
+which reports the total execution time for each run.</para>
+<!-- '\"========================================================================== -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+
+<refsect1 id='configuration_file'><title>CONFIGURATION FILE</title>
+<para>Various
+<command>scons-time</command>
+subcommands can read information from a specified
+configuration file when passed the
+<option>-f</option>
+or
+<option>--file</option>
+options.
+The configuration file is actually executed as a Python script.
+Setting Python variables in the configuration file
+controls the behavior of the
+<command>scons-time</command>
+script more conveniently than having to specify
+command-line options or arguments for every run,
+and provides a handy way to "shrink-wrap"
+the necessary information for producing (and reporting)
+consistent timing runs for a given configuration.</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term><emphasis remap='B'>aegis</emphasis></term>
+ <listitem>
+<para>The Aegis executable for extracting deltas.
+The default is simply
+<emphasis remap='B'>aegis</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>aegis_project</emphasis></term>
+ <listitem>
+<para>The Aegis project from which deltas should be extracted.
+The default is whatever is specified
+with the
+<option>--aegis=</option>
+command-line option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>archive_list</emphasis></term>
+ <listitem>
+<para>A list of archives (files or directories)
+that will be copied to the temporary directory
+in which SCons will be invoked.
+<markup>.tar</markup>,
+<markup>.tar.gz</markup>,
+<markup>.tgz</markup>
+and
+<markup>.zip</markup>
+files will have their contents unpacked in
+the temporary directory.
+Directory trees and files will be copied as-is.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>initial_commands</emphasis></term>
+ <listitem>
+<para>A list of commands that will be executed
+before the actual timed
+<emphasis remap='B'>scons</emphasis>
+runs.
+This can be used for commands that are necessary
+to prepare the source tree-for example,
+creating a configuration file
+that should not be part of the timed run.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>key_location</emphasis></term>
+ <listitem>
+<para>The location of the key on Gnuplot graphing information
+generated with the
+<option>--format=gnuplot</option>
+option.
+The default is
+<emphasis remap='B'>bottom left</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>prefix</emphasis></term>
+ <listitem>
+<para>The file name prefix to be used when
+running or extracting timing for this configuration.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>python</emphasis></term>
+ <listitem>
+<para>The path name of the Python executable
+to be used when running or extracting information
+for this configuration.
+The default is the same version of Python
+used to run the SCons</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>scons</emphasis></term>
+ <listitem>
+<para>The path name of the SCons script to be used
+when running or extracting information
+for this configuration.
+The default is simply
+<emphasis remap='B'>scons</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>scons_flags</emphasis></term>
+ <listitem>
+<para>The
+<emphasis remap='B'>scons</emphasis>
+flags used when running SCons to collect timing information.
+The default value is
+<option>--debug=count --debug=memory --debug=time --debug=memoizer</option>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>scons_lib_dir</emphasis></term>
+ <term><emphasis remap='B'>scons_wrapper</emphasis></term>
+ <term><emphasis remap='B'>startup_targets</emphasis></term>
+ <term><emphasis remap='B'>subdir</emphasis></term>
+ <listitem>
+<para>The subdirectory of the project into which the
+<command>scons-time</command>
+script should change
+before executing the SCons commands to time.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>subversion_url</emphasis></term>
+ <listitem>
+<para>The Subversion URL from</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>svn</emphasis></term>
+ <listitem>
+<para>The subversion executable used to
+check out revisions of SCons to be timed.
+The default is simple
+<emphasis remap='B'>svn</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>svn_co_flag</emphasis></term>
+ <term><emphasis remap='B'>tar</emphasis></term>
+ <term><emphasis remap='B'>targets</emphasis></term>
+ <listitem>
+<para>A string containing the targets that should be added to
+the command line of every timed
+<emphasis remap='B'>scons</emphasis>
+run.
+This can be used to restrict what's being timed to a
+subset of the full build for the configuration.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis remap='B'>targets0</emphasis></term>
+ <term><emphasis remap='B'>targets1</emphasis></term>
+ <term><emphasis remap='B'>targets2</emphasis></term>
+ <term><emphasis remap='B'>title</emphasis></term>
+ <term><emphasis remap='B'>unzip</emphasis></term>
+ <term><emphasis remap='B'>verbose</emphasis></term>
+ <term><emphasis remap='B'>vertical_bars</emphasis></term>
+ <listitem>
+<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+<para></para> <!-- FIXME: blank list item -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+<refsect2 id='example'><title>Example</title>
+<para>Here is an example
+<command>scons-time</command>
+configuration file
+for a hypothetical sample project:</para>
+
+<literallayout remap='.nf'>
+# The project doesn't use SCons natively (yet), so we're
+# timing a separate set of SConscript files that we lay
+# on top of the vanilla unpacked project tarball.
+arguments = ['project-1.2.tgz', 'project-SConscripts.tar']
+
+# The subdirectory name contains the project version number,
+# so tell scons-time to chdir there before building.
+subdir = 'project-1.2'
+
+# Set the prefix so output log files and profiles are named:
+# project-000-[012].{log,prof}
+# project-001-[012].{log,prof}
+# etc.
+prefix = 'project'
+
+# The SConscript files being tested don't do any SConf
+# configuration, so run their normal ./configure script
+# before we invoke SCons.
+initial_commands = [
+ './configure',
+]
+
+# Only time building the bin/project executable.
+targets = 'bin/project'
+
+# Time against SCons revisions of the branches/core branch
+subversion_url = '<ulink url='http://scons.tigris.org/svn/scons/branches/core'>http://scons.tigris.org/svn/scons/branches/core</ulink>'
+</literallayout> <!-- .fi -->
+<!-- '\"========================================================================== -->
+</refsect2>
+</refsect1>
+
+<refsect1 id='environment'><title>ENVIRONMENT</title>
+<para>The
+<command>scons-time</command>
+script uses the following environment variables:</para>
+<variablelist remap='TP'>
+ <varlistentry>
+ <term><emphasis remap='B'>PRESERVE</emphasis></term>
+ <listitem>
+<para>If this value is set,
+the
+<command>scons-time</command>
+script will
+<emphasis remap='I'>not</emphasis>
+remove the temporary directory or directories
+in which it builds the specified configuration
+or downloads a specific version of SCons.</para>
+<!-- '\"========================================================================== -->
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='see_also'><title>SEE ALSO</title>
+<para><citerefentry><refentrytitle>gnuplot</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>scons</refentrytitle><manvolnum>1</manvolnum></citerefentry></para>
+
+</refsect1>
+
+<refsect1 id='authors'><title>AUTHORS</title>
+<para>Steven Knight &lt;knight at baldmt dot com&gt;</para>
+</refsect1>
+</refentry>
+