This build system is mostly written in Ciao, with the exception of some shell script code needed to bootstrap, perform platform-dependent configuration, and interact with existing C compilers to generate native code.
Code is organized as follows:
cmds/ command-line builder, in Ciao src/ Ciao source of the builder modules sh_boot/ sh scripts for bootstrap sh_src/ sh scripts for incremental native code build and platform-dependent configurationAll shell scripts are POSIX (/bin/sh) portable. Additional dependencies are some modern C compiler (like GCC or clang/LLVM), GNU binutils, and GNU make. Code at sh_boot/ should only be needed during first build, while code under sh_src/ is needed if you wish Ciao to compile to native code (executables, shared or dynamic libraries).