
BUILDING CIAO
========================

* Supported platform:

  We have tried CIAO examples on Win32 using MSVC 7.1 and above and on
  Linux.

* Documentation:

  Various documents are available under $(CIAO_ROOT)/docs/
  Commments and suggestions for improving these documents are
  extremely welcome.

* Preparation - Compiling ACE and TAO:

    *************************************************

    There has been some big changes in MPC and
    a few "problems" are being sorted out before
    ACE/TAO switched to use MPC generated Makefile
    projects files exclusively.  CIAO only uses
    MPC.  MPC, however, assumes a slightly different
    directory structure than the stock, old ACE
    Makefile/project files.  Therefore, it is
    a bit adventurous to compile CIAO at this time
    of transition.  Here are some hints that you
    can try to make this work a bit easier.

    1. Make sure to add $ACE_ROOT/lib into your
       PATH, or LD_LIBRARY_PATH (before
       $ACE_ROOT/bin)

    2. Make sure you don't have old CIAO libraries
       DLL and so files) hanging around.

    3. If prefered, you can re-generate the Makefile,
       project files for all/core ACE/TAO libraries.
       (e.g., using $ACE_ROOT/TAO/TAOACE.mwc.)

    *************************************************

  CIAO depends on many CORBA features to function properly so you need
  to compile them first.  Here is a non-exhaustive list:

        ACEXML_Parser,

        Valuetype
        IORInterceptor
        ObjRefTemplate
        Security
        PortableServer
        IFR_Client

        RTPortableServer
        RTCORBA

and also the libraries they depends on.

  - On Linux, try defining these in the platform_macros.GNU

     exceptions=1
     interface_repo=1
     ssl=1

* Compiling CIAO core libraries and tools:

  Assuming CIAO_ROOT = ACE_wrappers/TAO/CIAO/

  Compile the following directories:


  $CIAO_ROOT/ciao/

  $CIAO_ROOT/tools/XML_Helpers
  $CIAO_ROOT/tools/ComponentServer
  $CIAO_ROOT/tools/ServerActivator
  $CIAO_ROOT/tools/Assembly_Deployer
  $CIAO_ROOT/tools/Daemon

  You need to creating the Makefile of your choice..
  For example, for unix makefile:

        $ cd $CIAO_ROOT/ciao/
        $ $(ACE_ROOT)/bin/mwc.pl
        $ make

  To regenerate VC7.1.NET project files, do:

        > cd $CIAO_ROOT/ciao
        > $(ACE_ROOT)/bin/mwc.pl -type vc71

* You also need to build the CIDL compiler before trying out any
  examples. The CIDL compiler, CIDLC, compiles your component
  implementation definition and generates the necessary glue code for
  developing and deploying components. Pleas see
  $CIAO_ROOT/CIDLC/README.html for instructions on how to build and
  use CIDLC.

* Now you can play with the examples:

  - $CIAO_ROOT/examples/Hello

     This is a single component example.  Check out run_test.pl to see
     how you can instantiate a single component using CIAO.

  - $CIAO_ROOT/examples/OEP/Display

     This is a multiple-component example.  RateGen component
     subdirectory contains a run_test.pl that you can use to
     instantiate a component instance, like you would do with the
     Hello example.  The other components require collaboration with
     other components and I don't have client programs to test them
     out individually.

     This example also lets you compose all the components into a
     distributed application using the Assembly_Deployer.  Change
     directory to

        $CIAO_ROOT/examples/OEP/Display/descriptors

     and take a look at the file: NOTE.txt.  This file describes the
     steps to compose the application using various different
     configurations and composition specs.

  - $CIAO_ROOT/examples/OEP/BasicSP

    This is a new multi-component example.  It has the similar
    struture as the Dsiplay example above.


* If you can not find the
  Makefiles for unix platform you are using, you can use mwc to create
  them.  For examples, to compile the multi-component example, use the
  following:

        $ cd $CIAO_ROOT/examples/Display
        $ $(ACE_ROOT)/bin/mwc.pl
        $ make

  To regenerate VC6 dsp files, do:

        > cd $CIAO_ROOT/examples/Display
        > $(ACE_ROOT)/bin/mwc.pl -type vc6

  Likewise, to regenerate VC7.NET project files, do:

        > cd $CIAO_ROOT/examples/Display
        > $(ACE_ROOT)/bin/mwc.pl -type vc7


