Project powered by:
toc is a programmer's tool for "configuring" build trees before they are built, plus a Make-based framework providing common build-related functionality. While it is geared towards software source trees it is also useful in a number of other contexts. It is conceptually similar to the GNU Autools, and is intended to replace the Autotools for source trees which only need to build on platforms hosting GNU toolsets. (Note that this has nothing to do with the portability of the source code, only of the build environment.) Where the GNU Autotools try to target every operating environment known to man (and therefore must take a least-common-denominator approach), toc explicitly takes advantage of the extra features available on platforms hosting GNU versions of the most common Unix system tools. It runs "natively" on Linux platforms and can also be used on Solaris, BSD, etc., when those platforms have been upgraded with GNU versions of their system tools (GNU sed, GNU tar, GNU find, GNU bash, GNU Make, etc.).

A brief summary of the primary features and goals of toc:
  • It lives in your source tree, so it does not require system-wide installation and is largely immune to problems related to upgrading a system.
  • Uses GNU Bash and GNU Make instead of an obscure or custom macro language. If you can code shell scripts and GNU Make then using toc is easy. It provides a shell- and make-based framework to simplify build tree maintenance.
  • It empowers, rather than limits, the user.
  • Very suitable for non-programming trees, e.g. document or web site trees. (e.g. the website software behind this website uses toc to manage creation of distribution tarballs.)
More info can be found on the features page.

A very brief history of toc:

toc originally appeared in 2003 after i grew (extremely) frustrated with maintaining Autotools-based source trees. Since then it has seen heavy-duty use in nearly all of my C++ projects. In June 2007 i started work on an "underground edition" of O'Reilly's book "Managing Projects with GNU Make". As part of that work, toc has been rewritten and is now called toc2. toc2 is fundamentally the same as toc1, but is more cleanly implemented and easier to hack on. A couple of the seldom-used features have been removed (e.g. qmake support), the dependencies generation support was reimplemented, and un/installation support has been improved.
This project is graciously funded by the good folks over at Goshen Timber Frames.