/*****************************************************************************/
/* Qedo - Qualitiy of Service Enabled Distributed Objects                    */
/*                                                                           */
/* Copyright (c) 2002 by the Qedo Team                                       */
/*                                                                           */
/* http://qedo.berlios.de                                                    */
/*                                                                           */
/* This file is part of Qedo Generator                                       */
/*                                                                           */
/* Qedo Generator is free software; you can redistribute it and/or modify    */
/* it under the terms of the GNU General Public License as published by      */
/* the Free Software Foundation; either version 2 of the License, or         */
/* (at your option) any later version.                                       */
/*                                                                           */ 
/* Qedo Generator is distributed in the hope that it will be useful,         */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of            */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             */
/* GNU General Public License for more details.                              */
/*                                                                           */
/* You should have received a copy of the GNU General Public License         */
/* along with Qedo; if not, write to the Free Software                     */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
/*                                                                           */
/*****************************************************************************/

!!!!!!!!
See doc/Installation.tex for an updated version
!!!!!!!!


Version 0.2.0

It might be a good idea to remove older version of Qedo and/or MICO. the installation into the same directory can cause problems.
 
This File describes the process of installing the Qedo run-time. Because the run-time is a complex software it needs many other software products. You have to install all of them before you can compile the run-time. This will take you some time and experiences with installing such software would be very helpful. Nevertheless, we hope that this little description will give enough information to acomplish all needed steps. 
The Qedo run-tim can be compiled by using the MS Visual Studio 6 (deprecated, no longer supported), MS Visual Studio.Net 2002 (VC7.0), Solaris gcc, or Linux gcc.

If you have any problem or if you have any comments do not hesitate to contact the other Qedo users by using the qedo-devel mailing list. You can reach it at qedo-devel@lists.berlios.de. You can also use the bug tracking system provided by the Qedo project. You can reach it at http://qedo.berlios.de. this site has all relevant information about the Qedo project. In any case you can also contact the authors directly. The email addresses are listed on the Qedo web page as well.

The Qedo team.

1. ORB
======

The Qedo project is designed to work with arbitrary ORB implementations
which support at least a basic set of features. This set comprises OBV, 
Portable Interceptors, ...
Anyway, for each ORB implementation some minimal changes have to be done.
Currently ORBacus 4.1 and MICO are supported by deafault. The TAO support
is deprecated. In order to install Qedo a supported ORB implementation has
to be installed on the target host. Pay attention that it has to be
dynamically linked and the linker can find the according libraries.
At the moment Qedo generator supports 3 ORBs Mico, TAO and ORBacus. For using one of the ORBs you need to install the ORB and to set an apropriate environment variable. Follow the instructions coming with each ORB to install it properly. We will only point out some important details.


orbacus Version 4.1.1
------------------------------------------------------------------------------
To install ORBACUS you have to do at least the following steps.
obtain software:
	Version 4.1.1
	get from: http://www.iona.com/products/orbacus_home.htm (OB-4.1.1.zip)
install/compile:
	configure file OB-4.1.1/config/Make.rules.mak, set 'prefix' directory, DEBUG=yes and DLL=yes
	cd to OB-4.1.1 and compile with nmake -f Makefile.mak install_min
set environment:
	ORBACUS = (e.g. C:\OOC)
	ORBACUS_CONFIG= %ORBACUS%\ooc\ini\orbacus.ini
	create ini-dir with orbacus.ini:
		ooc.orb.service.NameService = corbaloc:iiop:127.0.0.1:3000/NameService
		ooc.naming.endpoint=iiop --port 3000
	add path %ORBACUS%\lib to VC++ extras/options/directories/executable files (*.dll)



TAO Version x.3
------------------------------------------------------------------------------
TAO comes with the ACE Framework (Version 5.3). 
To install TAO you have to do at least the following steps.
obtain software:
	Version TAO 1.3 ACE 5.3
	get from: http://www.cs.wustl.edu/~schmidt/TAO.html
install/compile:
	ACE_ROOT = C:\ACE_WRAPPERS
	TAO_ROOT = C:\ACE_WRAPPERS\TAO
	TAO      = C:\ACE_WRAPPERS
	create a config.h in %ACE_WRAPPERS%\ace:
		#define ACE_HAS_STANDARD_CPP_LIBRARY 1
		#include "ace/config-win32.h"
	use the TAO workspace provided at %ACE_ROOT%\tao to compile TAO
	there are a lot of project you need at least to compile these ones:
		TAO_IDL
		PortableServer
		DynamicAny
		DynamicInterface
		NameService
		IFR_Client
	add the following to the path variable
		%ACE_ROOT%\bin
		

The Qedo Runtime worspace supports configurations for 3 ORBs (ORBACUS, MICO, TAO). Each of these ORBs has specific characteristics (e.g the names of the skeleton files). These different characteristics make it really difficult to integrate the configurations into a single workspace. There are some serious problems with TAO. To overcome these problems you have to do the following things.

copy %ACE_ROOT%\TAO\tao\IFR_Client\IFR_BasicC.h  %Qedo%\ComponentIDL\IFR_Basic.h
copy %ACE_ROOT%\TAO\tao\IFR_Client\IFR_BasicC.h  %Qedo%\ComponentIDL\IFR_Basic_skel.h

copy %ACE_ROOT%\TAO\tao\PortableServer\PortableServerC.h  %Qedo%\ComponentIDL\PortableServer.h
copy %ACE_ROOT%\TAO\tao\PortableServer\PortableServerC.h  %Qedo%\ComponentIDL\PortableServer_skel.h

copy %ACE_ROOT%\TAO\orbsvcs\orbsvcs\CosNamingC.h  %Qedo%\ComponentIDL\CosNaming.h
copy %ACE_ROOT%\TAO\orbsvcs\orbsvcs\CosNamingC.h  %Qedo%\ComponentIDL\CosNaming_skel.h

modify the file: %ACE_ROOT%\TAO\tao\Current.pidl

add at beginning of the file:
#ifndef _CURRENT_PIDL_
#define _CURRENT_PIDL_

add at the end of the file

#endif


MICO version 2.3.10 (latest snapshot)
------------------------------------------------------------------------------
You need to install the latest MICO snapshot in order to get Qedo Makefiles created correctly.

To install MICO you have to to at least the following steps.
obtain software:
	version MICO 2.3.7
	get from: http://www.mico.org/
install/compile:
	MICO = (e.g. C:\MICO)
	add path %MICO%\win32-bin to VC++ extras/options/directories/executable files

After compiling and installing MICO, you need to create a .micorc file. This file needs to be in the home directory or in the current wirking directory or you can point to it by using an environment setting pointing to this file (MICORC). Consult the MICO documentation for details.

2. Development Environment for WINDOWS
======================================

XERCES-C
--------------------------------------------------------------------------------
The Qedo project furthermore requires the xerces-c2_1 XML library to
handle the deployment XML descriptors.

	Xerces-c      ---> available at xml.apache.org/dist/xerces-c
	All the instructions for compiling under Windows and Linux/Unix are
	given in the Xerces-c package.
	
obtain software:
	Version: 2.1
	get from: http://xml.apache.org/dist/xerces-c/stable/
set environment
XERCES=C:\opt\xerces-c2_1_0-win32




ZLib
--------------------------------------------------------------------------------
According to the CCM specification the Qedo project makes use of software
packaging. In order to install Qedo the zlib 1.1.4 or a later version has
to be installed on the target host.

	Zlib          ---> available at http://www.gzip.org/zlib/
	All the instructions for compiling under Linux/Unix are given in the
	Zlib package.

obtain software:
	Version: 1.1.4
	get from: http://www.gzip.org/zlib/
set environment
	ZLIB=C:\opt\zlib114dll
add the follwing to the path variable
	%ZLIB%\dll32

Automatic packaging under Windows requires the command line version of winzip,
to be downloaded from www.winzip.com. Make sure, it is in your path.


3. Compiling Windows
====================

If you use the MS Visual Studio 6 you have to open the workspace :
Qedo.dsw 

If you use the MS Visual Studio .NET you have to open the solution: 
StreamContainer.sln


Then you will have to set the active configuration. 
mico    ->   CIDLGenerator - Win32 Debug_mico
tao     ->   CIDLGenerator - Win32 Debug_tao
orbacus ->   CIDLGenerator - Win32 Debug_orbacus

4. Compiling Unix
=================

For Unix based system Qedo support the configure make pattern. 
In the Qedo directory you can call configure. configure supports currently two options. The first one is

--prefix=QEDOINSTALLDIR

the second option is for the xerces packes if it is not included in the standard paths.

--with-xerces-c=XERCES-CROOTDIR

After configuring you only need to call:

make install

to build and install the Qedo run-time.

 