Proposal for SapCat: Site and Platform Customization Administration Tool,
R. Lindsay Todd.
March 2000.
URL: http://software-carpentry.codesourcery.com/entries/config/SapCat/SapCat.html
Proposal to the Software Carpentry "SC Config" competition. See also the final proposal.
The SapCat system is a tool to make software systems portable, similar to the GNU automake/autoconf utilities. It produces "Customize" scripts and associated control files which probe the operating system platform on which they execute for various platform-dependent features. These Customize scripts also allow the person installing software packages to configure local "site conventions", such as the locations of libraries and executables.
The programmer of a package using SapCat creates SapCat configuration files to specify objects to be built and the sources for those objects. SapCat uses this information, as well as information gleaned from scanning the sources, to generate parameterized Makefiles, determine the necessary tests, etc. SapCat configuration files also indicate package-specific options that may be set when the package is built. Programmers can add tests for operating system features not covered by SapCat's library of tests.
SapCat is written in Python, but the resulting Customize scripts and files do not require Python. If Python is available, additional features, such as a graphical user interface, are enabled.
SapCat strives to be useful for programmers, people who casually build and install SapCat-enabled software packages, and busy system administrators who must customize and install hundreds of packages for many different platforms.
Available as: HTML