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:
Provide the rules for compiling
Manage dependencies
Allow you to add components
Enable you to configure source files with configurator or the ews graphical tool
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.