next up previous contents index
Next: 1.5 Building the OSKit Up: 1 Introduction Previous: 1.3 Overall Design Principles

1.4 Configuring the OSKit

The OSKit follows the GNU conventions for configuration, building, and installation; see the INSTALL file in the top-level source directory for general instructions on using GNU configure scripts. In short, you need to run the configure script that is in the top-level source directory of the OSKit; this script will attempt to guess your system type and locate various required tools such as the C compiler. You can configure the OSKit to build itself in its own source directory, simply by moving to that directory and typing ./configure, or you can build the OSKit into a separate object directory by changing to that directory and running the configure script from there. For example, using a separate object directory allows you to put the object files on a local disk if the sources come across NFS, or on a partition that isn't backed up. Additionally, you can have multiple configurations of the OSKit at once (with different options or whatever), each in its own object tree but sharing the same sources.

To cross-compile the OSKit for another architecture, you will need to specify the host machine type (the machine that the OSKit will run on) and the build machine type (the machine on which you are building the toolkit), using the -build=machine and -host=machine options. Since the OSKit is a standalone package and does not use any include files or libraries other than its own, the operating system component of the host machine type is not directly relevant to the configuration of the OSKit. However, the host machine designator as a whole is used by the configure script as a name prefix to find appropriate cross-compilation tools. For example, if you specify `-host=i486-linux', the configure script will search for build tools called i486-linux-gcc, i486-linux-ar, i486-linux-ld, etc. Among other things, which tools are selected determines the object format of the created images (e.g., ix86-linux-* tools create ELF format, while ix86-mach-* tools create a.out format).

The OSKit's configure script accepts various standard options; for a full listing of the supported options, run configure -help. In addition, the configure script also supports the following options specific to the OSKit:

-enable-debug
Turn on debugging support in the compiler, and include debugging and sanity checking code within the OSKit. This option increases code size and reduces performance slightly, but also increases the likelihood of errors being detected quickly.
-enable-profiling
Generates profiling versions of all of the OSKit libraries; in keeping with the standard convention, the profiling versions of the libraries are suffixed with _p.
-disable-asserts
Compiles out assert() calls, for those who live on the edge.
-enable-hpfq
Build the HPFQ library and the special liboskit_linux_dev that's required.
-enable-unixexamples
Generates support code and example programs to debug and run some OSKit components in user-mode on top of Unix. FreeBSD is the only version of Unix on which this works unchanged. Tweaking it for other versions of Unix should not be hard and we've done so and run at least part of it on Linux.
-enable-doc
The build process will attempt to format the OSKit documentation. In addition to taking a long time (the complete documentation is over 475 pages), it requires LaTeX and dvips. Pre-formatted .ps and .html files are provided in the source tree.
-enable-linux-bogomips=VALUE
This option is only relevant to the Linux device driver and filesystem libraries. Prevents the Linux ``BogoMips'' calibration and instead hardcodes it to the value given. If the =VALUE is omitted, the default value of 300 is taken. Warning: specifying this option may cause the Linux device drivers and filesystems to behave incorrectly. Use at your own risk.

Before you do the actual OSKit build, there are some steps you can choose to take to make the build go faster, by not compiling parts you do not need.


next up previous contents index
Next: 1.5 Building the OSKit Up: 1 Introduction Previous: 1.3 Overall Design Principles

University of Utah Flux Research Group