I just merged my makefile-refactor branch into master.
The changes are pretty extensive:
- The "toolchain" compilation is gone, as is the bulk of the contents of host-adapter. Compilation now makes a single pass through everything. In general, cross compilation is now achieved by a two-stage compilation with separate build directories.
- The top-level run-build script and the --with-scheme-build configuration flag make it easy to do multi-stage compilations.
- Building from 9.2 now takes two stages: the first stage must be configured using --disable-default-plugins. The second stage is built normally except that it specifies the first stage using --with-scheme-build.
- There's a new option to set the compiler's target separately from the host. This is to support cross compilation: first build a compiler for the target that runs on the host, then use that to cross compile the whole system (in a separate build).
- The cross-compilation targets have been divorced from the main flow. When cross compiling, only cross-host is run on the host machine. cross-target must be run separately on the target machine.
- The plugins have been integrated into the top-level configuration. By default, edwin, imail, x11, and x11-screen are built. I'm going to do some additional work to build x11 and x11-screen only if X support is available. The other plugins are not built by default. Plugins are configured using --enable/--disable flags to configure.
- It is possible to run most things, including Edwin, from a build directory. Installation is not required.
- The svm implementation works, with a two-stage compilation.
- The liarc implementation doesn't work (yet). There's some kind of issue with linking the modules.