icebox - Documentation

This page provides documentation for project developers. Since the icebox project utilises many technologies on many platforms, it is unlikely that most developers will be already familiar with all the tools. The documentation provided here aims to provide a rough overview of the requirements for an experienced developer. Links are provided to more in-depth guides.

Contributions to the documentation are needed. Please use the developer mailing list to submit documentation requests, questions and drafts.


There are several things you will need in order to get involved in the development.
Cygwin (or a UNIX system)
Cygwin is a set of DLLs and programs for Windows, that provides a compatibility layer with Unix. If you are planning on using Windows 98, Windows 2000, Windows XP or any other Win32 platform, you will need to install Cygwin.

Step by step Cygwin setup instructions are available.

Linux and other UNIX system users don't need to do anything for this part, since their systems should already have all the basic software required.

Text editor
You will need a decent text editor suitable for programming. Your editor needs to support UNIX line endings. Windows Notepad will not do.

There are several very powerful text editors, such as vim and emacs, available on most UNIX systems and in Cygwin. Windows and Mac users may find these editors a bit hard to use initially, however there are plenty of alternative editors available. Windows users may wish to take a look at Programmers Notepad 2, Mac users can check out Smultron.

CVS client
The project source code is stored in the CVS source code repository at SourceForge. The repository keeps track of all the submitted revisions of the source code. Every now and then, when a milestone is reached, a copy of the source code is made available for download. The downloadable copies of the source code are not as up to date as the CVS repository. If you wish to keep up with the latest, you will need to install a CVS client - the software that communicates with the CVS repository server.

The standard CVS client available on all platforms supports only command line operation. The CVS client is not very hard to use and is often easier to troubleshoot than a GUI client. Insert link to CVS cheat sheet here.

If you really have to have a GUI CVS client, have a look at the CvsGui page.

GNU make
Almost all components are built using Makefiles. GNU make is the industry standard for managing projects. GNU make version 3.80 or later is recommended.

If you would like to learn more, the GNU make book is freely available online.

Component specific

In addition to the things listed above, some components may have more specific requirements.


This is a TAP that runs on the Topfield PVR.
Topfield toolchain
In order to generate code for the NEC EMMA2 CPU in the machine, you will need to obtain a special version of a MIPS compiler, linker and other tools. The compiler source code and pre-compiled binaries for several platforms are available from the BerliOS TAP project site. Follow the installation instructions in the toolchain release notes.

Topfield used to distribute a binary only version of the toolchain. This distribution is no longer available and the use of the Topfield toolchain is not going to be supported by this project.