------------
Availability
------------

The CorbaScript interpreter is written in C++ and is available on most common 
Unix-based operating systems and Windows. Moreover, it is built to be easily 
ported on any ORB environment, operating system and C++ compiler. 

Current tested ORBs:
--------------------

CorbaScript can be compiled on the following ORBs:

* MICO:		http://diamant-atm.vsb.cs.uni-frankfurt.de/~mico/
    The 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.8, 2.1.0,
        2.2.0, 2.2.1, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.2.7,
        2.3.0, 2.3.1, 2.3.3, 2.3.4, 2.3.5, and 2.3.6 releases.

   For the 2.2.7, 2.3.1, and 2.3.3 releases, see patches
   into the doc/FAQ/MICO file.

* OAK:		http://www.paragon-software.com
    The 5.2.7, 5.2.8, 5.2.9 and 5.3.4 releases.

* OmniBroker:	http://www.ooc.com/ob/
    The 2.0.2, 2.0.3 and 2.0.4 releases.

* omniORB:	http://www.uk.research.att.com/omniORB/omniORB.html
    The 2.8.0, 3.0.3, and 3.0.4 releases.

    Require the omniifr package available at http://www.factoriax.com/projects/omniifr/
    or a lastest ORBacus 3.x Interface Repository. 

* ORBacus:	http://www.ooc.com/ob/
  (formerly known as OmniBroker)
    The 3.0, 3.0.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.2, 3.2.1,
    3.3, 3.3.1, 3.3.2, 3.3.3, 3.3.4,
    4.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, and 4.1.0 releases.

   For the 3.3 release, see patches into the doc/FAQ/ORBacus file.

* Orbix 2000:	http://www.iona.com
    The 1.2, 1.2.1, and 2.0 releases.

* TAO:		http://ace.cs.wustl.edu/Download.html
    The 1.0.9, 1.0.10, 1.0.11, 1.0.12, 1.0.13, 1.1,
    1.1.17, 1.1.18, 1.1.19, and 1.2 releases.

    Releases between 1.1.1 and 1.1.16 can not be supported due to some
    important changes around the TAO's Interface Repository stubs.

    Before release 1.1, it is needed to use a lastest ORBacus 3.x
    Interface Repository.

    For the 1.1.17 and 1.1.19 releases, see patches into the doc/FAQ/TAO file.

    For the 1.1.18 release, no patches are required!

* VisiBroker:	http://www.inprise.com
    The 3.2, 3.3 and 4.5 releases.

    Warning, releases 4.0 and 4.1 are not supported!

Current tested C++ compilers:
-----------------------------

CorbaScript can be compiled on the following C++ compilers:

* AIX C Set ++ (xlC 3.1.4.6)

* egcs 1.0.1, 1.0.2, 1.1, 1.1.1 and 1.1.2

* DEC C++ V6.0-010 and 6.2-024

* GNU C++ Compiler 2.7.2 and 2.8.1

* GNU C++ Compiler 2.95.1 and 2.95.2

* HP aC++ A.01.00, A.01.03, A.01.15, and A.01.21

* Microsoft Visual C++ 5.0 and 6.0

* SGI C++ Compiler 7.0.1 and 7.1

* SUN Microsystems C++ Compiler 4.1 and 4.2

* SUN Microsystems Forte 6 C++ 5.2

  Let's note that at least the following patches must be applied:
   * 108434-02 Shared library patch for C++
   * 108435-01 SunOS 5.8: Shared library patch for 64bit C++
   * 109508-03 C++ 5.2: Patch for Forte Development 6 update 1 C++ compiler
   * 109510-03 Forte Developer 6 update 1: Patch for Debugger

Current fully tested configurations:
------------------------------------

Currently, CorbaScript has been successfully tested on the following 
configurations:

  ORB		  OS		  C++ Compiler			  NAME
------------------------------------------------------------------------------
MICO		  any		any				MICO_GENERIC
								MICO_GENERIC_shared_libs

MICO		  AIX	  	GNU C++ Compiler 2.7.2		MICO_AIX_GCC

MICO		  AIX		egcs 1.0.1			MICO_GENERIC

MICO		  HP-UX		egcs 1.0.1			MICO_GENERIC

MICO		  Linux		egcs 1.0.2			MICO_GENERIC

MICO		  Linux	  	GNU C++ Compiler 2.7.2		MICO_LINUX_GCC

MICO		  Solaris	egcs 1.0.1			MICO_GENERIC

MICO		  Solaris  	GNU C++ Compiler 2.7.2		MICO_SUN_GCC

MICO		  Solaris  	GNU C++ Compiler 2.95.1		MICO_GENERIC

MICO		  Solaris	SUN C++ Compiler 4.1 and 4.2	MICO_GENERIC

MICO		  Windows 95/NT Cygnus egcs 1.1			MICO_GENERIC

MICO		  Windows 95/NT	MS Visual C++ 5.0/6.0		MICO_WIN_MSVC


OAK		  Linux		egcs				OAK_LINUX_EGCS

OAK		  Solaris	GNU C++ Compiler 2.8.1		OAK_SUN_GCC

OAK		  Solaris	SUN C++ Compiler 4.1 and 4.2	OAK_SUN_CC

OAK		  Windows NT	MS Visual C++ 5.0/6.0		OAK_WIN_MSVC


OmniBroker	  AIX 4.2	AIX C Set ++ (xlC 3.1.4.6)	OB_AIX_xlC

OmniBroker	  HP-UX		aC++ A.01.00 and A.01.03	OB_HP_aCC

OmniBroker	  Linux		GNU C++ Compiler 2.7.2		OB_LINUX_GCC

OmniBroker	  Solaris	GNU C++ Compiler 2.7.2		OB_SUN_GCC272

OmniBroker	  Solaris	GNU C++ Compiler 2.8.1		OB_SUN_GCC281

OmniBroker	  Solaris	SUN C++ Compiler 4.1 and 4.2	OB_SUN_CC

OmniBroker	  IRIX SGI	SGI C++ Compiler 7.0.1 and 7.1	OB_SGI_CC

OmniBroker	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB_WIN_MSVC


omniORB 2.8.0	  Linux		egcs 1.0.2/1.1			omniORB2_LINUX_EGCS

omniORB 2.8.0	  Solaris	SUN C++ Compiler 4.1 and 4.2	omniORB2_SUN_CC

omniORB 2.8.0	  Windows 95/NT	MS Visual C++ 5.0/6.0		omniORB2_WIN_MSVC


omniORB 3.0.3	  Linux		GNU C++ Compiler 2.95.x		omniORB3_LINUX_GCC295
								omniORB3_LINUX_GCC295_shared_libs

omniORB 3.0.3	  Solaris	GNU C++ Compiler 2.95.x		omniORB3_SUN55_GCC295
								omniORB3_SUN55_GCC295_shared_libs
								omniORB3_SUN57_GCC295
								omniORB3_SUN57_GCC295_shared_libs

omniORB 3.0.3	  Solaris	SUN C++ Compiler 4.2		omniORB3_SUN_CC

omniORB 3.0.3	  Windows 95/NT	MS Visual C++ 5.0/6.0		omniORB3_WIN_MSVC


ORBacus 3.x	  HP-UX		aC++ A.01.xx			OB3_HP_aCC

ORBacus	3.x	  Linux		egcs 1.0.2/1.1			OB3_LINUX_EGCS
								OB3_LINUX_EGCS_shared_libs

ORBacus	3.x	  Linux		GNU C++ Compiler 2.95.x		OB3_LINUX_GCC295
								OB3_LINUX_GCC295_shared_libs

ORBacus	3.x	  OSF1 V4.0	GNU C++ Compiler 2.7.2		OB3_OSF_GCC

ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.7.2		OB3_SUN_GCC

ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.8.1		OB3_SUN_GCC281

ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.95.1		OB3_SUN_GCC295
								OB3_SUN_GCC295_shared_libs

ORBacus	3.x	  Solaris	SUN C++ Compiler 4.1 and 4.2	OB3_SUN_CC

ORBacus	3.x	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB3_WIN_MSVC


ORBacus 4.x	  HP-UX		aC++ A.01.xx			OB4_HP_aCC

ORBacus	4.x	  Linux		GNU C++ Compiler 2.95.x		OB4_LINUX_GCC295
								OB4_LINUX_GCC295_shared_libs

ORBacus	4.x	  OSF1 V4.0	DEC C++ 6.2-024			OB4_OSF_cxx

ORBacus	4.x 	  Solaris	GNU C++ Compiler 2.95.1		OB4_SUN_GCC295
								OB4_SUN_GCC295_shared_libs

ORBacus	4.x	  Solaris	SUN C++ Compiler 5.x		OB4_SUN_CC

ORBacus	4.x	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB4_WIN_MSVC


Orbix2000	  Linux		GNU C++ Compiler 2.95.x		Orbix2000_LINUX_GCC295

Orbix2000	  Solaris	SUN C++ Compiler 4.1 and 4.2	Orbix2000_SUN_CC

Orbix2000	  Solaris	GNU C++ Compiler 2.95.x		Orbix2000_SUN_GCC295

Orbix2000	  Windows 95/NT	MS Visual C++ 5.0/6.0		Orbix2000_WIN_MSVC


TAO 1.1		  Solaris	GNU C++ Compiler 2.95.1		TAO_1_1_SUN_GCC295

TAO 1.1		  Solaris	SUN C++ Compiler 4.1 and 4.2	TAO_1_1_SUN_CC

TAO 1.1		  Windows 95/NT	MS Visual C++ 5.0/6.0		TAO_1_1_WIN_MSVC


TAO 1.2		  Linux		GNU C++ Compiler 2.95.x		TAO_1_2_LINUX_GCC295
								TAO_1_2_LINUX_GCC295_shared_libs

TAO 1.2		  Solaris	GNU C++ Compiler 2.95.1		TAO_1_2_SUN_GCC295
								TAO_1_2_SUN_GCC295_shared_libs

TAO 1.2		  Solaris	SUN C++ Compiler 4.2		TAO_1_2_SUN_CC

TAO 1.2		  Windows 95/NT	MS Visual C++ 5.0/6.0		TAO_1_2_WIN_MSVC


VisiBroker 3.3.x  HP-UX		aC++ A.01.15			VB3_HP_aCC

VisiBroker 3.3	  Solaris	GNU C++ Compiler 2.95.1		VB3_SUN_GCC295

VisiBroker 3.3	  Solaris	SUN C++ Compiler 4.1 and 4.2	VB3_SUN_CC

VisiBroker 3.3	  Windows 95/NT	MS Visual C++ 5.0/6.0		VB3_WIN_MSVC


VisiBroker 4.5	  Linux		GNU C++ Compiler 2.95.x		VB4_LINUX_GCC295

VisiBroker 4.5	  Solaris	SUN C++ Compiler 5.2		VB4_SUN_CC

VisiBroker 4.5	  Windows 2000	MS Visual C++ 5.0/6.0		VB4_WIN_MSVC
------------------------------------------------------------------------------

Experimental ports:
-------------------

CorbaScript is ported on the following configurations but it does not
work correctly.

  ORB		  OS		  C++ Compiler			  NAME
------------------------------------------------------------------------------
ORBacus		  AIX 4.2	AIX C Set ++ (xlC 3.1.4.6)	OB3_AIX_xlC

ORBacus		  OSF1 V4.0	DIGITAL C++ V6.0-010		OB3_OSF_cxx

VisiBroker 3.2	  Solaris	SUN C++ Compiler 4.1 and 4.2	VB3_SUN_CC

VisiBroker 3.x	  IRIX SGI	SGI C++ Compiler 7.0.1 and 7.1	VB3_SGI_CC

VisiBroker 3.x    HP-UX	aC++ 	A.01.xx				VB3_HP_aCC

VisiBroker 3.2	  Windows 95/NT	MS Visual C++ 5.0		VB3_WIN_MSVC
------------------------------------------------------------------------------

The following ports can be compiled but don't work correctly
(perhaps due to the broken exception handling in GNU C++ 2.7.2).

  ORB		  OS		  C++ Compiler			  NAME
------------------------------------------------------------------------------
OmniBroker 2.0.3  HP-UX		GNU C++ Compiler 2.7.2		OB_HP_GCC

OmniBroker 2.0.3  IRIX SGI	GNU C++ Compiler 2.7.2		OB_SGI_GCC

MICO 2.0.4	  IRIX SGI	GNU C++ Compiler 2.7.2		MICO_SGI_GCC
------------------------------------------------------------------------------

Future ports:
-------------

If you try to compile CorbaScript on others configurations (ORB/OS/C++),
please report us any problem and/or success. 

In future releases, we plan to port CorbaScript on:

  * Other MICO, OAK, OmniBroker, omniORB, ORBacus, Orbix 2000, TAO
    and VisiBroker supported environments,

  * Other CORBA 2.3 compliant products.

Please contact us for other ports on another ORB, another OS or another C++
compiler.

Note that there is no direct plan to support the Orbix 3.0 product because
currently, it does not provide the DynAny API. However, Orbix servers can be 
invoked by a CorbaScript interpreter if they were compiled to support the
Internet Inter-Orb Protocol.
However CorbaScript supports the better Orbix 2000 product;-) 
 
----------------------
Makefile Configuration
----------------------

The directory `config/platforms' contains all Makefiles of available platforms.
For each platform, the Makefile is named by the NAME value in the previous
list. Each Makefile is normally well configured. But compiler options could be
adapted to your environment needs. Let's note that you should add options for
optimization or generation of debug information (i.e. "-O" or "-g") to
CXXFLAGS. As a rule of thumb, use "-g" for compiling a debug executable and
"-O" for compiling a release executable.

Using gcc 2.8.1 on Sun-Solaris 2.5, the compilation of CorbaScript
with OmniBroker 2.0.X produced an internal compiler error. Removing
the optimization (-O) flag solves this problem.

You could find a generic platform configuration file named MICO_GENERIC
to build CorbaScript on any MICO supported platforms without creating a 
new specific configuration file. This configuration file uses the 
'mico-c++' and 'mico-ld' script files of your MICO installation.

To port CorbaScript on a new architecture or a new compiler, you must create
a new file into the `config/platforms' directory. By convention,
this file is named ORB_OS_CC where ORB is the CORBA platform acronym, OS is 
the operating system acronym and CC is the C++ compiler acronym. For instance,
the OB_SUN_GCC name refers to the OmniBroker ORB, the Sun Solaris operating
system and the GNU GCC C++ compiler (see other names in the Availability list).

This new file must contain the following make variables:

  CXX = < The C++ compiler >
  LD = < The C++ linker (same that the C++ compiler) >
  CXXFLAGS = < The C++ compiler flags > 
  LDFLAGS = < The C++ linker flags > 
  CXXDEPENDFLAG = < The C++ compiler flag to generate make dependencies >

  AR = < The tool to create new archives >
  RANLIB = < The tool (if needed) to ranlib archives >

  ORB_NEEDED_LIBRARIES =  < The system dynamic librairies needed by your ORB >
  SYSTEM_LD_LIBRARIES = < The dynamic library for the dynamic linker "-ldl" >

  ORB_NAME = < The name of the CORBA platform >
  # Currently, only MICO, OAK, OmniBroker, omniORB 2.8.0 & 3.0.x, ORBacus 3 & 4,
  # Orbix2000, TAO and VisiBroker 3.3 & 4.5 are available.
  # For other ORBs, the CorbaScript port is a little more complex :-)

So, you can adapt existing platforms files to your needs. Please report us
any adaptation to incorporate it into next releases.

To port CorbaScript on another ORB, please contact us. For a FULL CORBA 2.3
compliant product, there are no major big problems. But this product must
incorporate correct TypeCode, Any, DynAny, DII, DSI, and IFR implementations.

-----------------------
Unix system Compilation
-----------------------

To compile CorbaScript on Unix systems, you MUST use a GNU make:

- Go into the CorbaScript-1.3.5 directory.

- Start config/compile.sh.

  This script asks for:
    * the NAME of your configuration (see the previous Availability list),
    * the ORB release number without dots (i.e. for ORB Y 1.2.3 enter 123),
    * the path prefix where your ORB is installed (e.g. /opt, /usr/local or /path/my_orb),
    * if the ORB is multithreaded (e.g. use JTC for ORBacus),
    * EXTRA_CPP_FLAGS to add extra preprocessor flags,
    * EXTRA_LD_FLAGS to add extra linker flags,
    * EXTRA_BINPATH to add extra binary paths,
    * EXTRA_LIBPATH to add extra library paths, and
    * the target directory to build CorbaScript.

  This script automatically creates a directory to build CorbaScript.
  This directory contains a makefile and three subdirectories: bin, obj, lib.
  The `obj' and `lib' directories contains compilation result files (*.o and 
  *.a and *.so).
  The `bin' directory contains:
    - the CorbaScript binary executable (`cssh')
    - the ObjectScript binary executable (`osh')
    - a shell script for sh or compatible shells (`envi.ORB.sh') 
    - a shell script for csh or compatible shells (`envi.ORB.csh') 
    - and some other files.

  Configuration shell scripts (`envi.ORB.sh' and `envi.ORB.csh') are also
  automatically generated in the `bin' directory. These scripts contain
  environment variables to configure demonstration scripts. See the 
  doc/user_guide.html file for more information.

Let's note that if the compilation signals an error in Makefile then you
must change 'make' by 'gmake' (GNU make) into the config/compile.sh file.
We have seen this problem on OSF and HP-UX.

Let's note that you could compile CorbaScript on multiple environments with the
same source distribution. Each compilation results are stored in the related 
directory.

Don't forget to fix environment variables for your configuration before start
compilation. For instance, you must set where are dynamic libraries on Irix
SGI.

  e.g.  with a csh compatible shell: setenv LD_LIBRARYN32_PATH /usr/lib32


------------------------------------
Start demonstrations on Unix Systems
------------------------------------

After the CorbaScript compilation, the `compile.sh' displays the environment
variable `CS_BINDIR'. To start automatic demonstrations, you must set this
environment variable. For instance with a csh compatible shell:

	setenv CS_BINDIR /your_CorbaScript_path/your_environment/bin

Now to execute demonstrations:

- Go into `demo' directory.

- Enter in one example directory like `hello', `computer', `ir', `naming' ...

- Start the `run.sh' or `run.csh' scripts.

Currently, the CorbaScript documentation is under written. So, to understand
the CorbaScript language, you must have a look in demonstration `*.cs' files.
However you could read the OMG CORBA Scripting Language Specification in
the doc/98-12-09.pdf and doc/OMG_ptc_00-08-03.pdf files.

----------------
Windows 95/98/NT
----------------

This release contains a full CorbaScript port on Windows 95/98/NT/2000.
You can compile it with MS Visual C++ 5.0/6.0 on MICO, OAK, OmniBroker,
omniORB 2.8.0 & 3.0.3, ORBacus 3 & 4, TAO, and VisiBroker 3.3 & 4.5.
You can also compile it with Cygnus egcs on MICO.

For MS Visual C++ 5.0, adapt the 'config/compileVC5.bat' file to your 
configuration and start it.
For MS Visual C++ 6.0, adapt the 'config/compileVC6.bat' file to your 
configuration and start it.
For information, have a look into the doc/FAQ/Windows file.

Depending of the ORB, there are some warnings which are not important.

Demonstrations can run from a Windows command shell. They can also run from
a GNU bash shell which can be downloaded at http://sourceware.cygnus.com/cygwin/
or http://www.cygnus.com.

For Cygnus/egcs/MICO, compile and execute CorbaScript as on a Unix system.

Please report us any configuration, compilation and execution problem.


------------
Getting Help
------------

You should not have any problems compiling the source, but do not 
hesitate to send requests for assistance.
Just send an e-mail to "mailto:goode-support@lifl.fr".
And we will add new needed users features.

There is also a CorbaScript mailing list. To subscribe, just send an
e-mail to "listserv@univ-lille1.fr" with the command:

SUB goode <Your_Real_Name>

in the body of your e-mail message.

To unsubscribe, just send an e-mail to "mailto:listserv@univ-lille1.fr"
with the command:

SIG goode Your_Email_Address

in the body of your e-mail message. You could also go to 
http://wwsympa.univ-lille1.fr/wws/signoff/goode to unsubscribe yourself.


To post a message to the mailing list, send your message as an e-mail
to `goode@univ-lille1.fr'.

This public mailing list is also accessible at:
http://wwsympa.univ-lille1.fr/wws/info/goode

And public list archives are accessible at:
http://wwsympa.univ-lille1.fr/wws/arc/goode

You can find the latest information on CorbaScript on our Web-Site
"http://corbaweb.lifl.fr".

Some scientific information can be found in papers at http://corbaweb.lifl.fr/papers/index.html.

Have fun with CorbaScript. 
