Debian GNU/Linux [i386.deb]

You will need to install the following packages from the Debian package repository:

  1. libboost-dev-1.30.2-2 or better
  2. libboost-regex-dev-1.30.2-2 or better

Additionally, you will need to download and and install

  1. libutility_1.2.2-1_i386.deb
  2. libutility-dev_1.2.2-1_i386.deb
For example, if you downloaded them into /tmp then to install you can issue these commands:

$ cd /tmp
$ dpkg -i libutility*.deb

Now you are ready to build CCF libraries:

$ cd $CIAO_ROOT/CCF/CCF
$ make

RedHat OS family [i386.rpm]

You will need to install the following RedHat packages:

  1. boost-devel-1.30.2-2.i386.rpm
  2. Utility-1.2.2-3.i386.rpm

For example, if you downloaded them into /usr/src/redhat/RPMS/i386 then to install you can issue these commands:

$ cd /usr/src/redhat/RPMS/i386
$ rpm -Uhv boost-devel-1.30.2-2.i386.rpm
$ rpm -Uhv Utility-1.2.2-3.i386.rpm

Now you are ready to build CCF libraries:

$ cd $CIAO_ROOT/CCF/CCF
$ make

Other GNU/Linux or UNIX Distributions

C++

You can use any standard-conformant C++ compiler. GNU G++ 3.3 is known to work.

Boost Libraries

In order to build CCF you will need the following libraries from the Boost distribution:

  1. regex
  2. filesystem
  3. spirit parser framework

There are two commonly used ways to obtain those libraries: you can get precompiled binaries from your system distributor or download source code and compile it yourself. The first approach is recommended where available and if you got precompiled binaries then you can skip the rest of this section.

If you choose to compile Boost Libraries yourself please refer to the Boost Building Instructions.

After you have successfully compiled necessary libraries in the boost distribution you need to do one more thing. Inside the boost distribution directory (e.g. boost-1.30.2) create a directory with the name lib and copy (or soft link) libboost_filesystem.a and libboost_regex.a into it.

Utility Library

Another prerequisite for CCF is the Utility Library. You don't need to build anything in this library. The Utility library is available in the following two different forms for convinience:

  1. A bz2 package for unix based platforms including Unix.
  2. A zip package for Win32 based platforms.
Just unpack it to some convenient place.

Building CCF

Before you can start building CCF you need to specify the location of Boost Libraries and Utility Library. There are two ways you can do this. The first way is to specify environment variables BOOST_ROOT, BOOST_INCLUDE, BOOST_LIB and UTILITY_ROOT. If BOOST_INCLUDE and BOOST_LIB are not initialized then their values are derived from BOOST_ROOT as follows:

BOOST_LIB     := $(BOOST_ROOT)/lib
BOOST_INCLUDE := $(BOOST_ROOT)

Below are some examples of how you may do that.

If you would like to use Boost/Utility from the build directory:

$ export BOOST_ROOT=~/build/boost-1.30.2
$ export UTILITY_ROOT=~/build/Utility-1.2.2

If Boost was installed in /usr/local and compiler doesn't search there by default:

$ export BOOST_LIB=/usr/local/lib
$ export BOOST_INCLUDE=/usr/local/include
$ export UTILITY_ROOT=~/build/Utility-1.2.2

If Boost was installed in let's say /usr/{include,lib} and compiler searches there by default you may leave BOOST_* uninitialized.

Alternatively, you can specify values for BOOST_* and UTILITY_* in $CIAO_ROOT/CCF/Config.rules

Finally, you can start the build process:

$ cd CCF/CCF
$ make

Windows

C++

VC++ 7.1 is required to build CCF on Windows. Note that neither VC++ 6 nor VC++ 7.0 is supported.

Boost Libraries

In order to build CCF you will need the following libraries from the Boost distribution:

  1. regex
  2. filesystem
  3. spirit parser framework

Below is the list of step-by-step instructions for building boost. As an example, I assume that the installation directory is D:\lib.

  1. Download boost source distribution version 1.30.2 (boost-1.30.2.zip) from the Boost web site. After downloading unzip the file in D:\lib so that you get D:\lib\boost-1.30.2. Note that boost version 1.31.0 will not work.
  2. Download the latest pre-built boost-jam. At the time of writing, the latest version was 3.1.7 thus the file you download would be bjam-3.1.7-ntx86.zip. Unzip this file in D:\lib so that you get D:\lib\bin.ntx86\bjam.exe.
  3. Open a command prompt and cd D:\lib\boost-1.30.2. Then issue the following command.
    D:\lib\bin.ntx86\bjam.exe "-sTOOLS=vc7.1"
    
  4. Create a directory called lib in D:\lib\boost-1.30.2.
  5. Copy D:\lib\boost-1.30.2\libs\filesystem\build\bin\libboost_filesystem.lib\vc7.1\debug\runtime-link-dynamic\libboost_filesystem.lib to D:\lib\boost-1.30.2\lib\libboost_filesystem_debug.lib.
    (Don't ask me who came up with this directory structure ;-)
  6. Copy D:\lib\boost-1.30.2\libs\regex\build\bin\libboost_regex.lib\vc7.1\debug\runtime-link-dynamic\libboost_regex.lib to D:\lib\boost-1.30.2\lib\libboost_regex_debug.lib.
  7. Add D:\lib\boost-1.30.2 to your VC7.1 include directory search list (Go to Tools -> Options -> Projects -> VC++ Directories -> Include Files). Add D:\lib\boost-1.30.2\lib to your VC7.1 library directory search list.

Please refer to the Boost Building Instructions if you have any questions.

Utility Library

Another prerequisite for CCF is Utility Library. You don't need to build anything in this library. Just unpack it to some convenient place and add it to your VC7.1 include directory search list. For example if you unpacked Utility-1.2.2.tar.bz2 in D:\lib then add D:\lib\Utility-1.2.2 to your search list.

Building CCF

Now you are ready to build CCF libraries. Just open VC7.1 solution file in CCF\CCF\ and proceed as usual.