ChorusOS 5.0 Source Delivery Guide

imake or mkmk?

A fundamental strength of the ChorusOS operating system is its portability across a range of target family hardware architectures. The trade-off made to achieve broad portability manifests itself as build management complexity. ChorusOS system builds require powerful tools to generate the necessary Makefiles to render the process more straightforward. These tools, imake and mkmk:

ChorusOS operating system builds involve make for end-result build tasks, and involve imake and mkmk for generating and managing Makefiles inside components. The following tables indicate which standard system components are managed using which Makefile generation tool.

Table 4-1 Components Managed with imake

Component 

Description 

BSP

Bootstrap code 

DRV

Drivers 

EXAMPLES

Example applications 

Table 4-2 Components Managed with mkmk

Component 

Description 

NUCLEUS

Microkernel and related code 

OS

POSIX, file system and networking layers of the operating system 

The rule of thumb for choosing between imake and mkmk is simple: use imake if you can; use mkmk if you must. User-level application components can be handled using imake. Hardware driver components can be handled using imake. Subsystem components -- such as microkernel components and components that modify the POSIX, file system and networking layers of the operating system itself -- might require you to use mkmk.