The Soar suite has several individually buildable targets. This document describes each component. See the SCons Script documentation for information on how to build individual components.
This includes core Soar functionality as well as the Soar Markup Language (SML) interface. SML is the standard interface for hooking Soar up to external or virtual environments. The Java debugger and command line tools also rely on SML.
These contain language-specific wrappers automatically generated by SWIG to allow languages other than C++ to interface with SML. The primary languages we use this for are Java, Tcl and Python, although an interface also exist for C#, but has not been tested for a while.
This is the primary way for users to run Soar and debug agents.
TestCLI: A multi-threaded command-line interface with history and several other features. CLI: A minimalistic command-line interface which is more suitable for using in scripts or for low-level kernel debugging. mCLI: A minimalistic, multi-agent command-line interface with ANSI-colored text.
This includes a program that runs many unit tests and other programs that run performance tests. The unit test program also requires a number of agent files that will be copied into your install directory.
C++ header files needed by programs that use SML. "Building" these just involves copying the headers from various points in the source tree into a single directory. Note that Java and Python SML programs DO NOT need these headers, as the SWIG wrapper classes incorporate the definitions contained in them. A user who only wants to run Soar but not create new environments should build the kernel library, Java SWIG wrapper, and the Java debugger. Users who want to write new environments with SML will also need, depending on their language choice, the SML C++ headers, Java SWIG wrapper, or Python SWIG wrapper. The test and command line interface programs are mainly for internal development.