next up previous contents
Next: Note on philosophy of Up: MaintGuideStable Previous: Release procedure   Contents

Introduction

The make system has several design criteria:

  • Must be able to build the code on all supported platforms.
  • Must allow object files and executables for different architectures to co-exist without conflicts.
  • Must allow object files and exectutables for different compiler options to co-exist without conflict.
  • Must allow object files and executables for different thornsets to co-exist without conflicts.
  • Thorn-writers must be able to easily add and remove files from their thorns without having to edit files provided by the flesh or other thorns.
  • Thorn-writers must be able to control the compilation options and dependencies of their own thorns.

The first criterion is achieved by standarising to the use of the freely available GNU make programme, which is available on all platforms, and the use of Autoconf to detect the specific features of the particular machine the user is compiling on.

The next three criteria are achieved by the introduction of configurations which contain all the information and object files associated with a particular combination of machine, compilation options and thorns.

The final criteria are achieved by allowing the thorn-writer to specify their files and options in configuration files readable by the GNU make program, or by specifying their own make file.



Subsections
next up previous contents
Next: Note on philosophy of Up: MaintGuideStable Previous: Release procedure   Contents