Building TinyScheme ------------------- The included makefile includes logic for Linux, Solaris and Win32, and can readily serve as an example for other OSes, especially Unixes. There are a lot of compile-time flags in TinyScheme (preprocessor defines) that can trim unwanted features. See next section. 'make all' and 'make clean' function as expected. Autoconfing TinyScheme was once proposed, but the distribution would not be so small anymore. There are few platform dependencies in TinyScheme, and in general compiles out of the box. Customizing ----------- The following symbols are defined to default values in scheme.h. Use the -D flag of cc to set to either 1 or 0. STANDALONE Define this to produce a standalone interpreter. USE_MATH Includes math routines. USE_CHAR_CLASSIFIERS Includes character classifier procedures. USE_ASCII_NAMES Enable extended character notation based on ASCII names. USE_STRING_PORTS Enables string ports. USE_ERROR_HOOK To force system errors through user-defined error handling. (see "Error handling") USE_TRACING To enable use of TRACING. USE_COLON_HOOK Enable use of qualified identifiers. (see "Colon Qualifiers - Packages") Defining this as 0 has the rather drastic consequence that any code using packages will stop working, and will have to be modified. It should only be used if you *absolutely* need to use '::' in identifiers. USE_STRCASECMP Defines stricmp as strcasecmp, for Unix. STDIO_ADDS_CR Informs TinyScheme that stdio translates "\n" to "\r\n". For DOS/Windows. USE_DL Enables dynamically loaded routines. If you define this symbol, you should also include dynload.c in your compile. USE_PLIST Enables property lists (not Standard Scheme stuff). Off by default. USE_NO_FEATURES Shortcut to disable USE_MATH, USE_CHAR_CLASSIFIERS, USE_ASCII_NAMES, USE_STRING_PORTS, USE_ERROR_HOOK, USE_TRACING, USE_COLON_HOOK, USE_DL.