The Aboriginal Linux build scripts are the source code for the Aboriginal Linux project. If you would like to build your own cross compiler or target system image from source, use these build scripts. They're written in bash and should be fairly easy to read.

Quick start

Run build.sh with no arguments to see a list of targets. Select a target, and run build.sh $TARGET with the target name in place of $TARGET. When it finishes, run more/dev-environment.sh $TARGET to boot the resulting system image under QEMU, configured for use as a development environment. Type exit to shut down the emulator.

Overview

The build runs the following stages, in order:

The top level wrapper script build.sh runs the above stages in order, but each stage script can also be run individually. Each of the above build scripts (except download.sh and host-tools.sh) take a single argument: the name of the target architecture to build code for. Run build.sh with no arguments to see a list of available targets.

Each build stage (except download.sh and host-tools.sh) produces its output in the "build" directory under a subdirectory named after the script plus the target. It also produces a tarball of that directory if the build stage completed successfully. (The download.sh script populates the "packages" directory instead, and host-tools.sh produces its output the directory "build/host" with no tarball version since those programs are intended to run locally.)

All downloaded files wind up in the "packages" directory. Output from compiles is generated in the "build" directory. These are the only two directories the build writes to, and both directories may be deleted and then recreated by the build scripts. (The equivalent of "distclean" is rm -rf build packages from the top level directory.)

None of these scripts need to be run as root -- an explicit design goal of Aboriginal Linux is that root access on the host is never required.

Build stages

The files in the top level directory of the Aboriginal Linux source are:

The sources/more directory contains additional scripts the user can run, but which are not called from build.sh. This directory contains the external user interfaces the user can call directly which are not build stages. See more/README in the Aboriginal source code for details.