# eCos Configuration Tool Version 2

This page describes how to run and compile the new, portable version of the Configuration Tool.

## Contents

1. Introduction and where to get the Configuration Tool

2. What's in this release?

3. Installing the Configuration Tool

4. Running the Configuration Tool

5. Frequently Asked Questions

6. Building the Configuration Tool under Linux

7. Building the Configuration Tool under Windows

## Introduction

Welcome to the eCos Configuration Tool, a graphical tool to help a user configure and build a custom version of the eCos operating system.

This is a cross-platform version built using the wxWindows toolkit. The tool uses the GTK+ widget set on Linux, and the WIN32 API on Windows 9x, Windows NT and Windows 2000. It is similar to the MFC, Windows-only version but at present lacks a few of its features, such as the Memory Layout Tool and the ability to run tests from within the tool.

Please note that this is alpha-level code. However, all feedback to the eCos team is appreciated, via ecos-discuss@sources.redhat.com or the bug reporting form at http://sources.redhat.com/ecos/problemreport.html.

The source for the Configuration Tool is available from anonymous CVS.

Binary packages are also available (see instructions below).

## What's in this release?

This version allows you to edit, load, save and build eCos configurations much as the original Windows Configuration Tool. However the following features are missing with respect to the original tool:

1. Memory Layout Tool

2. Running tests from the tool

3. Administration functionality (initial code present but untested)

4. Gauge indicating time left to build library and tests

The following features are present in the new tool but not in the original tool:

1. Repository Information dialog (available from the Help menu)

2. Most dialogs are resizeable

Documentation works a little differently. Instead of using a precompiled HTML Help file, this version compiles a documentation index on the fly for use with its own internal HTML help viewer. The cached indexes are placed in the .eCosDocs directory under the user's home directory (Linux) or in the installed repository (Windows). The internal viewer cannot cope with all of the eCos and GNUPro documentation, so for these occasions please use an external browser (see the Settings dialog).

The documentation for the Configuration Tool is supplied in its install directory as HTML only, and is a modified version of the eCos User's Guide. Invoke the tool help from the "Help|Configuration Tool Help" menu item, or from the internal help viewer's index, under "Linux Configuration Tool Guide".

#### Known bugs:

The documentation index only lists the packages in the configuration active when the documentation was indexed (normally when the repository is first seen by the Configuration Tool).

## Installing the Configuration Tool

The Configuration Tool can be used with existing eCos installations and CVS source hierarchies. You can get the binaries from ftp://sources.redhat.com/pub/ecos/ct2/.

See also mirror sites at:

http://sources.redhat.com/ecos/mirror.html
http://sources.redhat.com/mirrors.html

Please try to use a mirror site close to you, as it will be faster.

### Under Linux:

Download configtool-2.0-i386.tar.gz.

Unarchive the tar file into a suitable directory and add the directory to your path. You do not have to install it as root. For example:

% mkdir -p `/opt/ecos/configtool/bin
% cd /opt/ecos/configtool/bin
% tar xvfz /cdrom/configtool.tgz
% export PATH=/opt/ecos/configtool/bin:$PATH`

The following files will be extracted to the installation directory:

`configtool, ecoslogo.png, rhlogo.png, about.htm, README.txt, license.txt, ecosplatforms.tar.gz, manual/`

Optionally, untar the contents of ecosplatforms.tar.gz into your home directory, where it will create a directory called .eCosPlatforms. The information in these files isn't yet used by the Configuration Tool, but will keep the tool from generating some warnings.

The executable is statically linked to the wxWindows library, but does require the GTK+ 1.2, GDK 1.2 and TCL 8.x libraries to be installed.

### Under Windows:

Download configtool-2.0-setup.exe.

Run the installer provided, preferably having installed eCos for Windows on your PC previously so the tool can pick up the relevant registry information added by the eCos installer. A new eCos Configuration Tool group will be added to your Start menu and a shortcut to the Configuration Tool will appear on your desktop.

## Running the Configuration Tool

Run the configtool executable and (on Linux) ignore any initial console messages, which may be suppressed by unarchiving ecosplatforms.tar.gz as per the installation instructions above.

You can invoke the tool with zero, one, or two parameters. The two parameters can be the location of the repository and/or the location of a save file (extension .ecc). If no parameters are passed, the tool will look in the current directory for a save file and also (on Linux) in the /opt/ecos directory for a suitable repository. Failing that, the tool will use the last loaded repository or ask the user for a suitable location.

For detailed information about the Configuration Tool, please refer to the HTML manual which may be invoked from the Help menu or by clicking on the "Linux Configuration Tool Guide" in the internal help system's contents. This is similar to but different from "The eCos Configuration Tool" section in the eCos User Guide, which refers to the original Windows version of the configuration tool (as opposed to the new cross-platform Linux and Windows version).

## Frequently Asked Questions

Q: On Linux, invoking HTML documentation for a configuration item doesn't seem to work.

A: You need to have a .mailcap entry similar to the following:

`text/html; netscape -no-about-splash %s`

and in .mime.types:

`type=text/html \
desc="HTML document" \
exts="htm,html"`

Also, be aware that the browser can sometimes end up behind the configuration tool so it may have run even if you think it didn't.

Q: On Linux, right-clicking in the configuration pane and choosing 'What's This?' causes an information window to pop up and then quickly disappear.

A: If the window manager options are set to raise a window when it gains the focus, the information window can get sent behind the application window when the popup menu loses focus. Either adjust your window manager settings, or use an alternate way of invoking help for the item: click on the arrow/question mark toolbar button, then on the item you are interested in.

Q: The internal HTML help viewer doesn't display HTML correctly.

A: The internal HTML help viewer cannot display some of the more complex HTML correctly, such as the GNUPro reference. We hope to provide the documentation in a suitable form in future, but for now, please use an external browser to view this documentation. You can use the Settings dialog, Viewers tab, to choose to view using an external browser.

Q: Why does the Configuration Tool use wxWindows?

A: wxWindows is an open source, mature multi-platform GUI toolkit for C++. It makes platform-independence relatively easy to achieve, whilst remaining compatibility with the look and feel of GTK+ and WIN32 on the respective platforms. wxWindows was chosen on its own merits but, by sheer coincidence, the author of the new Configuration Tool is also the original author of wxWindows. Using a platform-independent API will make it easier to port the Configuration Tool to other platforms if needed.

Q: Where can I get more information about wxWindows?

A: The wxWindows web site is at http://www.wxwindows.org. wxWindows distributions come with documentation in a variety of formats.

Q: Does the new Configuration Tool make the old one obsolete?

A: Not yet. The new tool doesn't yet support some features, such as the Memory Layout Tool and the Run Tests dialog. When these have been implemented, and the tool has been subject to the required quality assurance procedure, then we can retire the old tool.

Q: How can I help improve the Configuration Tool?

A: All help is very welcome: please see http://sources.redhat.com/ecos/faq.html for how to contribute.

Q: Who do I contact when things go wrong?

A: Please discuss problems on the ecos-discuss mailing list: see http://sources.redhat.com/ecos/intouch.html.

Q: The compiler fails to compile dcclient.cpp. What do I do?

A: It may be that you have a non-standard GTK+ 1.2.6 which has changes backported from 1.2.7. Use the makefile target 'wxgtkfix' to fix this after the error has happened (i.e. after configure has produced the setup.h and makefiles):

`% make -f $CONFIGTOOLDIR/Makefile WXDIR=$WXDIR ECOSDIR=$ECOSDIR LEVEL=release wxgtkfix`

or

`% make -f $CONFIGTOOLDIR/Makefile WXDIR=$WXDIR ECOSDIR=$ECOSDIR LEVEL=debug wxgtkfix`

Now use the 'wx ecc ct' targets (not 'full') to continue building.

## Building the Configuration Tool under Linux

This build system is subject to change.

#### You will need:

1. gcc 2.95.2 or later

2. GTK+ and glib 1.2.6 or above. Please remove any 1.3 development RPMs from your setup using for example:

   rpm -e gtk+-gtkbeta-devel-1.3.1b-2

   You can get GTK+ and glib for Red Hat 6.2 and above from:
   ftp://ftp.gtk.org/pub/gtk/v1.2/binary/RPMS/RedHat-6.2/RPMS/i386/gtk+-1.2.8-1.i386.rpm
   ftp://ftp.gtk.org/pub/gtk/v1.2/binary/RPMS/RedHat-6.2/RPMS/i386/glib-1.2.8-1.i386.rpm

3. a suitable version of wxWindows for GTK+, available from ftp://sources.redhat.com/pub/ecos/ct2/.

   Unarchive the file wxGTK-x.y.z.tgz into a suitable directory, e.g.

   `% mkdir /home/julians/wxWindows
   % cd /home/julians/wxWindows
   % tar xvfz /tmp/wxGTK-x.y.z.tgz`

   You may also wish to download and unarchive wxWindows documentation, which is supplied in zip form. Unarchive using e.g.:

   `% cd /home/julians/wxWindows
   % unzip -a wxWindows-x.y.z-HTML.zip`

4. an eCos source hierarchy. See http://sources.redhat.com/ecos/anoncvs.html for how to download this from the CVS repository. For example:

   `cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/ecos co ecos/host`

5. other tools:

   Tcl/Tk 8.2 or above. See http://dev.scriptics.com/

#### Summary:

There is no 'configure' step for the eCos Configuration Tool as a whole, although the host tool libraries and wxWindows have configure scripts which are invoked by the makefile.

You work in a build directory of your choosing, and the makefile will create the following directories underneath it:

ct-build-debug/ | Configtool debug build
ecc-build-debug/ | eCos libraries debug build
wxwin-build-debug/ | wxWindows debug build
ct-build-release/ | Configtool release build
ecc-build-release/ | eCos libraries release build
wxwin-build-release/ | wxWindows release build

You need to pass the wxWindows source directory (WXDIR) and eCos hierarchy directory (ECOSDIR) to the makefile, along with the build LEVEL (debug or release). Please see makect.sh in the source directory, which is a useful helper script for making it easier to invoke the makefile.

You also supply a target to build, such as full (everything), ct (just the Configuration Tool), wx (wxWindows only) or ecc (eCos libraries only). It is important to supply the target as the last command(s) on the command line.

The makefile builds and uses wxWindows as a static library, which minimizes problems with shared libraries and still results in a reasonable size of executable (around 6 MB). Switching off unnecessary wxWindows features may result in smaller executables.

IMPORTANT NOTE: currently, there are inadequate dependencies in the makefiles, so please make sure you start with a clean directory before building (use the cleanct target if necessary).

#### Examples:

This builds the eCos libraries, wxWindows, and the Configuration Tool, debug mode.

`

% export ECOSDIR=/home/julians/cvs/eCos # The dir above 'host'
% export CONFIGTOOLDIR=$ECOSDIR/host/tools/configtool/standalone/wxwin
% export WXDIR=/home/julians/wxWindows
% mkdir /tmp/ecos-build
% cd /tmp/ecos-build
% make -f $CONFIGTOOLDIR/Makefile WXDIR=$WXDIR ECOSDIR=$ECOSDIR LEVEL=debug full

`

This builds just the Configuration Tool, say after a file was edited, in release mode.

`

% export ECOSDIR=/home/julians/cvs/eCos
% export CONFIGTOOLDIR=$ECOSDIR/host/tools/configtool/standalone/wxwin
% export WXDIR=/home/julians/wxWindows
% cd /tmp/ecos-build
% make -f $CONFIGTOOLDIR/Makefile WXDIR=$WXDIR ECOSDIR=$ECOSDIR LEVEL=release ct

`

#### Troubleshooting

Please see the FAQ for what to do if the wxWindows file dcclient.cpp fails to compile.

## Building the Configuration Tool under Windows

#### You will need:

1. Microsoft Visual C++ 6.0 or later

2. a suitable version of wxWindows for MS Windows, available from ftp://sources.redhat.com/pub/ecos/ct2/. To install the sources in 'setup' form, just run the executable and follow the instructions. If you have downloaded the sources in zip format, you will need to unarchive the file wxMSW-x.y.z.zip into a suitable directory, e.g.

   `

   > mkdir c:\wxWindows
   > c:
   > cd \wxWindows
   > unzip c:\temp\wxMSW-x.y.z.zip

   `

   Alternatively, you can use WinZip or similar utility to unarchive the files.

   Documentation in Windows HTML Help format is supplied in the setup or zipped distribution and does not have to be downloaded separately.

3. an eCos source hierarchy. See http://sources.redhat.com/ecos/anoncvs.html for how to download this from the CVS repository. For example:

   `

   cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/ecos co ecos/host

   `

4. other tools:

   - Cygwin (sometimes called GNUPro). See http://sources.redhat.com/cygwin/

   - Tcl/Tk 8.2 or above. See http://dev.scriptics.com/

#### Summary:

There are two main steps: building wxWindows, and building the Configuration Tool. The Configuration Tool project file also builds the required eCos libraries. Note that unlike compilation under Linux, the wxWindows objects and libraries end up in the wxWindows source tree.

Before routinely building the Configuration Tool, you will need to set up Visual C++ with the correct paths (see below).

#### Steps:

1. Execute in a DOS box:

   `

   subst v: d:\tmp

   `

   where d:\tmp is a suitable temporary directory where the Configuration Tool binaries and objects will end up.

2. Set the TCLHOME environment variable to where Tcl is installed. On Windows 9x, edit autoexec.bat. On Windows NT or W2K, use the System control panel applet.

3. Build wxWindows. To do this, run VC++ and open src/msvc.dsw in the wxWindows project hierarchy. Select Build | Batch Build and check "wxvc - WIN32 Debug" and "wxvc - WIN32 Release". Click on Build.

4. Open the eCos/ecc/host/tools/configtool/standalone/wxwin/ConfigtoolVC.dsw workspace. Choose Tools | Options and click on the Directories tab.

   Select Show directories for: Include files.

   You need to add paths such as these:

   `

   c:\Program Files\Tcl\include
   d:\wxWindows-010212\include

   `

   Select Show directories for: Library files. Add these paths, changing as necessary:

   `

   c:\Program Files\Tcl\lib
   d:\wxWindows-010212\lib

   `

5. Click on Select Active Configuration... and select the one you wish to build, such as WIN32 Ansi Debug (note that Unicode configurations are not yet available). Choose Build | Rebuild All to build the project. The configtool.exe executable should end up in v:\Configtool\AnsiDebug.

When compiled, configtool.exe depends on the following DLLs found in your system32 directory that should be supplied with the executable:

- TCL82.DLL (or other name if you used a different version of TCL)
- MSVCIRT.DLL
- MSVCP60.DLL
- MSVCRT.DLL