In the context of this guide, the term production denotes all operations that you need to perform in order to generate a bootable system image from the ChorusOS source code provided (the source delivery).
The ChorusOS operating system is composed of components that can be built separately. You have a choice of which components to build. Use the default profiles available in the source files you receive, or customize these files to produce your own operating system.
You must be running the SolarisTM operating environment or using a Windows NT system.
You must have at least 250 megabytes of free disk space to use the source package.
In order to install and generate the ChorusOS operating system, your host system must provide the following utilities: awk, basename, cat, cc, chmod, cmp, cp, cut, echo, egrep, find, gzip, grep, head, ln, ls, make, m4, mkdir, mv, rm, sed, sh, sort, sum, tail, test, touch, tr, true, uname, uncompress and uniq. These utilities must be in a directory of your PATH. See "Your Source PATH" for further information on PATH.
On Windows NT hosts, these utilities are provided with the Windows Upgrade package which is part of your delivery.
The host file system must support:
Symbolic links (Solaris operating environment only) or hard links (NT system only).
Long file names.
The source files are installed in a default source directory that is separate from the work directory.
Your installation directory is referred to as <install_dir>. The default installation directory is /opt/SUNWconn/SEW.
Your binary directory is referred to as <bin_dir>. The default binary directory is /opt/SUNWconn/SEW/4.0/chorus-<family>.
Your source directory is referred to as <src_dir>. The default source directory is /opt/SUNWconn/SEW/4.0/chorus-<family>/src.
Your work directory is referred to as <work_dir>.
The range of components available within the ChorusOS operating system is organized in a hierarchy spanning from the NUCLEUS, at the lowest level, to the EXAMPLES, at the top level as shown in Table 1-1.
Table 1-1 Source components in a ChorusOS and their level
component |
level |
NUCLEUS |
nucleus level |
DRV DRV_F BSP |
board support package level |
OS IOM |
operating system level |
EXAMPLES |
applications level |
The ChorusOS product ensures compatibility between components built with the two development tools available, mkmk and imake. The modularity of the source code facilitates porting of the operating system. See the ChorusOS 4.0 Porting Guide for more information.
The mkmk and imake tools provide a mechanism which uses input files in order to create the Makefile appropriate to that directory. They:
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
Table 1-2 lists components built with the mkmk tool.
Table 1-2 Built with mkmkComponent | Description |
NUCLEUS | nucleus |
OS | POSIX environment |
IOM | I/O Manager |
The mkmk tool is described in this document. It is used to build components at the nucleus and operating system levels (Table 1-2).
Table 1-3 lists components built with the imake tool.
Table 1-3 Components Built with imakeComponent | Description |
DRV | Drivers |
DRV_F | Family specific drivers |
BSP | Boot |
EXAMPLES | Applications |
For further information on the imake tool refer to Chapter 3, Building with imake of this guide, ChorusOS 4.0 Introduction and to the ChorusOSMkMf(1CC) man page.
Table 1-4 gives the list of utilities and production files provided with the ChorusOS system and used with either the mkmk or the imake development tool. Utilities that can be called directly by developers are described in more detail in the ChorusOS man pages (configure, ChorusOSMkMf, configurator and mkmerge). The files in this Table are located in the <bin_dir>/tools/host/bin directory.
Table 1-4 Host Tools Provided with the ChorusOS SystemUtility/File | Description |
configure | the "configure" script |
cpxml | wrapper around cp, used to copy XML files |
cproot | copies files to the target file system |
ChorusOSMkMf | creates Makefiles, using imake, for target binaries |
HostMkMf | creates Makefiles, using imake, for host binaries |
Makefile.bin | interface of the tools component |
makedepend | creates dependencies |
configurator | handles configuration of features and tunables |
mkimage | the create system image |
mkmerge | merges split trees into a merged tree |
genEnv | reads Makefiles and gives output with their variables |
getExport | computes the list of object files to use when creating a link |
m4 | the GNU m4 preprocessor |
mkctors | handles ctors/dtors and tunables during actor link |
mkmake | wrapper around make |
mkmk | creates Makefiles |
mkstubs | produces system call stubs |
rpcgen | an RPC protocol compiler |
chgetlayout | extracts image layout, for DebugServer |
mksymfiles | ghs compiler only |
getLayoutFile | ghs compiler only |
concat | concatenates files |
devsys.mk | make rules to compile host tools |
The imake files; Imake.rules, Imake.tmpl, Package.rules, Project.tmpl are discussed in ChorusOS 4.0 Introduction. Table 1-5 gives a description of these files.
Table 1-5 The imake files provided with the ChorusOS SystemFile | Description |
imake/Imake.rules | imake rules |
imake/Imake32.rules | provides compatibility with r3.2 imake rules |
imake/Imake.tmpl | template Makefile, for imake |
imake/Package.rules | packaging rules, for imake |
imake/Project.tmpl | empty Project.tmpl |
Each file in the tgt-make directory deals with make rules for compiling target binary files. Certain files are specific to the gcc compiler, others to the ghs compiler. Only common and gcc/powerpc specific files are described here. All files listed in Table 1-6 are located in <bin_dir>/tools/tgt-make directory:
Table 1-6 Target Rules for ChorusOSFile | Description |
gcc-devsys.mk | make rules used by the imake environment |
gcc-ld.ld | linker script used to reduce the section number |
gcc-variables.rf | make variables, for the mkmk and imake environments |
gcc-tgtdevsys.rf | make rules, for mkmk |
variables.rf | includes the compiler specific file about variables |
tgtdevsys.rf | includes the compiler specific file about rules |
shared.rf | calls mkmake |
mktgt.rf | includes all targets rules |
mkrules.rf | contains rules for the mkmk environment |
mkrules.m4 | m4 macros for .bf files |
Makefile.mkimage | Makefile used during image creation |
Makefile.conf | Makefile used during configurable actor links |
genLink | generic linker, calls genLink.conf and genLink.noconf |
genLink.conf | links configurable actors |
genLink.noconf | links non-configurable actors |
mkdbginfo | generates offsets and symbol information |
host.conf | defines the host type |
powerpc/genOff | create offset files |
powerpc/genOff.awk | awk file used by genOff |
powerpc/act.ld | linker script used for actors using dynamic libraries |
powerpc/lib.ld | linker script used to create dynamic libraries |
None of the above files can be modified.