Chapter 8. Manual configuration

Table of Contents
Directory Tree Structure
Creating the Build Tree
Building the system
Coarse-grained configuration
Fine-grained Configuration
Make flags
Editing the sources

eCos developers using a Windows NT host will generally use the graphical Configuration Tool for configuring an eCos system and building the target library. At present there is no equivalent to this tool available for developers using a UNIX host, so command line tools have to be used instead. These command line tools can also be used for batch operations on all platforms, for example as part of a nightly rebuild procedure.

In the current release of the system the command line tools do not provide exactly the same functionality as the graphical tool. Most importantly, there are no automatic checks that all the dependencies between the various configuration options are actually satisfied.

For example, in the C library package there is a configuration option that determines whether or not the library provides thread-safe implementations of the strtok() function. This option depends on functionality that the kernel may or may not provide.

With command line tools, it is possible to disable this option in the kernel, meaning that the C library's dependencies are no longer satisfied. The graphical configuration tool will detect this situation immediately and advise you that remedial action is needed, but when using command line tools most of these dependencies will be checked at compile-time, resulting in build failures; it is not possible to check every dependency.

The eCos configuration system, both graphical and command line tools, are under constant development and enhancement. Developers should note that the procedures described may change considerably in future releases.

Directory Tree Structure

When building eCos there are three main directory trees to consider: the source tree, the build tree, and the install tree.

The source tree, also known as the component repository, is read-only. It is possible to use a single component repository for any number of different configurations, and it is also possible to share a component repository between multiple users by putting it on a network drive.

The build tree contains everything that is specific to a particular configuration, including header and other files that contain configuration data, and the object files that result from compiling the system sources for this configuration.

The install tree is usually located in the install subdirectory of the build tree. Once an eCos system has been built, the install tree contains all the files needed for application development including the header files and the target library. By making copies of the install tree after a build it is possible to separate application development and system configuration, which may be desirable for some organizations.