A given instance of the x-kernel is built in a working directory. Each
working directory can support one x-kernel configuration at a time.
Working directories may be organized within the x-kernel source tree
(e.g., as subdirectories of xkernel/build) or outside of
the source tree (e.g., in an x-kernel user's home directory.)
For the purpose of the following discussion, we assume the user is
configuring a kernel so as to implement and evaluate protocol YAP
(yet another protocol.) A
user configuring a kernel that contains only existing protocols should
ignore all references to YAP.
Check to see that the variable XRT in your Makefile is a path to
the root of the xkernel source tree.
In steps 9, 10, and 11,
you may see one or more compiler warning messages of the
form:
These messages are expected and can be ignored.
The files referenced by these messages will be created in
steps 10 and 11.
The following
two steps must be redone if graph.comp is later modified:
As a standalone kernel, the Scout-based x-kernel can't read protocol
tables or ROM files at boot time, so the information in these files
must be loaded into the kernel during configuration.
Protocol table information is contained in the file ptblData.c
in your build directory. By default, this file contains the contents
of xkernel/etc/prottbl.std. To generate data from other protocol
tables, use the ptbldump command:
To load ROM information into your kernel, specify the name of your ROM
file in the third section of graph.comp (see the example in
section 12.1.)
The compose program will read the rom file and dump its data to
the file compose_rom.c in your build directory.
cp xkernel/build/Template/Makefile.sunos Makefile
chmod u+w Makefile
make[n]: fopen: [filename]: No such file or directory
make system
This will run the targets allCompose, allDepend, and libs for the configuration and platform indicated by your Makefile,
building configuration files, dependency files, and object files for
most of the x-kernel system. Again, you will get error messages about
missing dependency files, but the allDepend target will generate
the missing files.
This will take a long time to run. The
installer of the x-kernel should run this target for all configurations
(DEBUG,OPTIMIZE) and platforms that will be used at the site.
Object files will be placed in a subdirectory whose name reflects your
configuration and platform (DEBUGsunos-sparc, OPTIMIZEmach3-mips, etc.) This is
the same way in which object files are stored throughout the x-kernel
hierarchy. The final x-kernel executable (xkernel) will be placed
in your build directory.
Scout (Alpha Standalone)
ptbldump file1 [ file2 ... ] > ptblData.c
Next: Debug versus Optimized
Up: Configuring a Kernel
Previous: Specifying a Protocol