Portability with scconfig

Libmawk is configured using an embedded copy of scconfig. In a distribution tarball, it's a snapshot of scconfig; in an svn repository it is an svn external, which guarantees libmawk is using the latest version of scconfig.

Scconfig is a self-contained project configuration tool which depends only on Make and an ANSI (C89) C compiler. Scconfig can test different things on a system, often by compiling and running test programs. Besides saving test results in a text file, it can also generate text files like Makefiles or include files with content depending on those test results.

There are artificial limits on portability tho. While in theory it is possible to scretch the system so that it really works on all operating systems ever existed, or at least on all UNIX-like systems, it is not the goal. This decision is a trade-off between portability and maintainability. Also between portability and code size (or bloat). The artificial limits are:

Systems where libmawk is reported to configure and compile without tweaking: