<HTML>
<BODY>

<H2>Overview</H2>
This directory contains the source code and unit tests for Threading Building Blocks.

<H2>Directories</H2>
<DL>
<DT><A HREF="tbb">tbb</A>
<DD>Source code of the TBB library core.
<DT><A HREF="tbbmalloc">tbbmalloc</A>
<DD>Source code of the TBB scalable memory allocator.
<DT><A HREF="test">test</A>
<DD>Source code of the TBB unit tests.
<DT><A HREF="old">old</A>
<DD>Source code of deprecated TBB entities that are still shipped as part of the TBB library for the sake of backward compatibility.
<DT><A HREF="rml">rml</A>
<DD>Source code of the Resource Management Layer (RML).
</DL>

<h2>Files</h2>
<dl>
<dt><a href="Makefile">Makefile</a>
</dt><dd>Advanced Makefile for developing and debugging of TBB. See the <a href="../build/index.html#build">basic build directions</a>. Additional targets and options:
    <dl>
    <dt><tt>make test_{name} time_{name}</tt>
    </dt><dd>Make and run individual test or benchmark.</dd>
    <dt><tt>make stress_{name}</tt>
    </dt><dd>Equivalent to 'make test_{name}' but runs until a failure detected or terminated by user.</dd>
    <dt><tt>make run_cmd="{command}" [(above options or targets)]</tt>
    </dt><dd>Command prefix for tests execution. Also, "run_cmd=-" will ignore test execution failures. See also -k and -i options of the GNU make for more options to keep building and testing despite of failures.</dd>
    <dt><tt>make debug_{name}</tt>
    </dt><dd>Equivalent to 'make test_{name}' but compiles in debug mode and runs under debugger ("run_cmd=$(debugger)").</dd>
    <dt><tt>make args="{command-line arguments}" [(above options or targets)]</tt>
    </dt><dd>Additional arguments for the run.</dd>
    <dt><tt>make repeat="{N}" [(above options or targets)]</tt>
    </dt><dd>Repeats execution N times.</dd>
    <dt><tt>make clean_{filename}</tt>
    </dt><dd>Removes executable, object, and other intermediate files with specified filename ('*' also works).</dd>
    <dt><tt>make cfg={debug|release} [(above options or targets)]</tt>
    </dt><dd>Specifies a build mode or corresponding directory to work in.</dd>
    <dt><tt>make tbb_strict=1 [(above options or targets)]</tt>
    </dt><dd>Enables warnings as errors.</dd>
    <dt><tt>make examples/{target}</tt>
    </dt><dd>Invokes examples/Makefile with specified target.</dd>
    <dt><tt>make clean_release clean_debug clean_examples</tt>
    </dt><dd>Removes release or debug build directories, or cleans all examples.</dd>
    <dt><tt>make test_no_depends</tt>
    </dt><dd>Equivalent to 'make test' but does not check for libraries updates.</dd>
    <dt><tt>make info</tt>
    </dt><dd>Output information about build configuration and directories.</dd>
    <dt><tt>make cpp0x=1 [(above options or targets)]</tt>
    </dt><dd>Enables C++0x extensions like lambdas for compilers that implement them as experimental features.</dd>
    <dt><tt>make CXXFLAGS={Flags} [(above options or targets)]</tt>
    </dt><dd>Specifies additional options for compiler.</dd>
    <dt><tt>make target={name} [(above options or targets)]</tt>
    </dt><dd>Includes additional build/{name}.inc file after OS-specific one.</dd>
    <dt><tt>make extra_inc={filename} [(above options or targets)]</tt>
    </dt><dd>Includes additional makefile.</dd>

    </dd></dl>
</dd></dl>

<HR>
<A HREF="../index.html">Up to parent directory</A>
<p></p>
Copyright &copy; 2005-2010 Intel Corporation.  All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 
registered trademarks or trademarks of Intel Corporation or its 
subsidiaries in the United States and other countries. 
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
</HTML>
