Building Requirements and Instructions
Filed under: Exclaim Kernel
This page details the requirements for building a copy of the Exclaim Kernel, and instructions on how to do it. Any platforms not listed here are not supported, but any POSIX compliant OS that has the requirements should work.
Build Requirements
We currently support the following operating systems:
- Linux
- Mac OS X
- Windows
Linux
Because of the number of distributions available, we will only supply the list of required packages for Ubuntu and Fedora, as these are probably the most popular distributions. You should be able to work out the package names for the distribution you use from these. These packages are on top of the installed set in a default installation.
| Ubuntu | Fedora | openSUSE |
|---|---|---|
| build-essential | gcc | |
| subversion | ||
| texinfo | ||
| bison | ||
| flex | ||
| libmpfr1ldbl | mpfr | mpfr-devel |
| patch | make | |
| libmpfr-dev | ||
To build the documentation you also need Doxygen and graphviz, both of which should be available in your package manager.
Once all this is done, you can build the cross compiler.
Mac OS X
To build Exclaim on Mac OS X, you need Xcode, as well as the following packages from MacPorts:
- cdrtools
- gmp
- mpfr
- libiconv
- wget
- ncursesw
- ncurses
Then you need to do the following, as root:
mv /usr/include/iconv.h /usr/include/iconv.old ln -s /opt/local/include/iconv.h /usr/include/ chmod 644 /opt/local/include/iconv.h
This avoids errors in the build process with missing symbols in iconv.
To build the documentation you also need Doxygen and graphviz.
After this you can build the cross compiler.
Windows
In order to build Exclaim on Windows, you need Cygwin. Download setup.exe, then follow the instructions on this site, make sure you select both a normal Cygwin mirror, and this Cygwin Ports one. http://sourceware.org/cygwinports/
In order to build Exclaim you will need the following packages, in addition to the preselected ones:
- subversion
- gcc
- wget
- make
- patch
- diffutils
- bison
- flex
- python
- ncurses, ncurses-devel, libncurses<number>
- sharutils
- libgmp and development package
- mpfr, libmpfr and development package
- libiconv
- mkisofs (if wanting to build a cd image)
- An editor of your choice (Optional but recommended)
To build the documentation you also require Doxygen and graphviz.
Once all this is done, you can build the cross compiler (this will take a long time).
Building the Cross Compiler
Exclaim requires a cross compiler to build. Building this is easy but it will take some time, and an internet connection will be required.
To build the cross compiler, first make a directory for it, such as crosscompiler in your home directory. Assuming the example, add this to your PATH variable:
$PATH:/home/yourusername/crosscompiler/bin
An example on how to do this on the bash shell would be to add the following to the bottom of .bash_profile (you can run source on the file to load it without logging out and in again).
export PATH=$PATH:/home/yourusername/crosscompiler/bin
Now go watch TV or do something else productive. This may take a while. No user intervention is required, and if it builds successfully, then your cross compiler is complete.
Building Exclaim
Before you can build Exclaim, you need to set up the configuration. We use the kconfig system from Linux. To access the configuration editor, use one of the following commands:
- make menuconfig - Graphical menu based configuration editor on your terminal
- make config - Old question by question based system
Generally no changes are needed (but you must save a configuration file), and so you can run the “make” command to build Exclaim. To build a cd-rom image, run “make cdrom”. To clean the source tree, run “make clean”.
The built kernel files will be in “build/archbuilt/kernel”, in both a non-debug and debug format (the extention states which is which). A cd-rom image (if you built it) will be in “build/archbuilt/cdrom.iso”.
That is all there is to building Exclaim. If you get strange compilation errors, try “make clean” then “make”. If that doesn't work, try rerunning one of the configuration editors. If there is still a problem, file a bug.



