diff options
Diffstat (limited to 'TAO/TAO-INSTALL.html')
-rw-r--r-- | TAO/TAO-INSTALL.html | 440 |
1 files changed, 0 insertions, 440 deletions
diff --git a/TAO/TAO-INSTALL.html b/TAO/TAO-INSTALL.html deleted file mode 100644 index 6a266d7095b..00000000000 --- a/TAO/TAO-INSTALL.html +++ /dev/null @@ -1,440 +0,0 @@ -<!-- $Id$ --> - -<HTML> -<HEAD> - <TITLE>Building and Installing TAO</TITLE> - <link rev=made href="mailto:schmidt@cs.wustl.edu"> -</HEAD> - -<BODY text = "#000000" - link = "#000fff" - vlink = "#ff0f0f" - bgcolor = "#ffffff"> - -<HR> -<H3>Building and Installing TAO</H3> - -<p>The following table summarizes platforms on which TAO runs:<P> - -<table width="100%" border=1> - <tr valign=top> - <td><b>Fully supported, i.e., continually tested and used daily</b></td> - <td>Solaris 2.5, 2.6, and 7, Windows NT (MSVC 5.0 and 6.0), - Linux/Intel, Linux/Alpha, VxWorks, LynxOS, Digital UNIX 4.0 - and 5.0, IRIX 6.x, and QNX Neutrino 2.0 - </td> - </tr> - <tr valign=top bgcolor="#AFAFAF"> - <td><b>Nearly fully supported, i.e., periodically tested</b></td> - <td>Windows 95, HP/UX 10.x and 11.x, AIX 4.x - </td> - </tr> - <tr valign=top> - <td><b>Partially supported, i.e., infrequently tested</b></td> - <td> FreeBSD, NetBSD, SunOS 4.x, Chorus - </td> - </tr> - <tr valign=top bgcolor="#AFAFAF"> - <td><b>Planned support, i.e., pending</b></td> - <td> pSoS, MVS, Windows CE, Tandem, SCO, UnixWare </td> - </tr> -</table> - -<P>Any UNIX/POSIX/Win32 variation is a potential target platform for -ACE. If you have <A -HREF="http://www.cs.wustl.edu/~schmidt/docs/ACE-porting.html">porting -questions</A> or have a problem compiling the ACE wrappers on the -platforms shown above please send email to either <A -HREF="news:comp.soft-sys.ace">ACE Newsgroup</A> or the <A -HREF="mailto:ace-users@cs.wustl.edu">ACE mailing list</A> and we'll -try to help you fix the problems. You can also submit bug reports and -enhancement requests in our -<a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/usage-bugzilla.html">bug tracking system</a>.<P> - -TAO can be obtained <A -HREF="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">electronically</A> -via the WWW and ftp. <A -HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A> is bundled -with the TAO release. You'll always need the most recent version of -ACE because TAO tracks changes to ACE very closely. <P> - -<strong><blink><font color="#ff0000">WARNING:</font></blink></strong> -For users who have used ACE with other ORBs, linking TAO with a -version of ACE that is also linked against another ORB vendor's -library, <EM>e.g.</EM>, liborbix.so, will produce undefined and most -likely unpredictable and erroneous results. <P> - - -<HR><P> -<H3>On UNIX platforms</H3> - -<OL> - <LI>Set <CODE>ACE_ROOT</CODE> environment variable as outlined in - the <a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html">ACE - installation notes</A>.<P> - - <LI>Build and install ACE under <CODE>$ACE_ROOT</CODE>.<P> - - <UL> - <LI>Change directory to <CODE>$ACE_ROOT/ace</CODE> and execute - <CODE><A HREF="#makenotes">make</A></CODE>.<P> - </UL> - - <LI>Set <CODE>TAO_ROOT</CODE> environment variable to - <CODE>$ACE_ROOT/TAO</CODE>.<P> - - <LI>Build and install the TAO release under <CODE>$TAO_ROOT</CODE>. - - <P>The easiest and recommended way to compile the - <B>complete</B> TAO distribution by simply simply executing - <code><a href="#makenotes">make</a></code> - in the <CODE>$TAO_ROOT</CODE> directory. - </P> - - <P>A smaller subset, that may be of interest to test basic TAO - functionality, is: - <CODE>$TAO_ROOT/tao</CODE>, - <CODE>$TAO_ROOT/TAO_IDL</CODE>, - <CODE>$TAO_ROOT/tests/Param_Test</CODE>. - Then you can execute the <CODE>run_test.pl</CODE> script in - <CODE>$TAO_ROOT/tests/Param_Test</CODE> and/or - follow the instructions contained in the <CODE>README</CODE> - file in the same directory. - </P> - - <P>If you wish to compile the services distributed with TAO, - including the <CODE>Naming_Service</CODE> you - must include <CODE>$TAO_ROOT/orbsvcs</CODE> to the list - above. - </P> - - <LI>To test that the TAO release is properly configured, - follow instructions on executing the various examples under - <CODE>$TAO_ROOT/tests</CODE>.<P> - -</OL> - -<h4><strong><a name="makenotes">A Note On Make</a></strong></h4> - -Since TAO is built atop ACE, TAO re-uses ACE's Makefile structure as -well. Thus, just like ACE requires GNU Make, so too does TAO. More -exactly, versions of <code>make</code> which are known to <em>not</em> -work include those from Solaris 4.x and 5.x, HP-UX, the latest BSD, -etc.<p> - -GNU Make can be obtained from various places in source form.<P> - - -<HR><P> -<h3>For Cross-Compiled Targets, such as VxWorks and LynxOS</h3> - -If you are building TAO for a VxWorks target, please see the detailed -instructions for building and installing ACE and TAO in <a -href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html#vxworks">$ACE_ROOT/ACE-INSTALL.html</a>.<p> - -Cross-compiling TAO is not much different than building it for -self-host. The one major difference is that TAO's IDL compiler must -be built and run on the host; it's not necessary to run it on the -target. It's easiest to set this up by using a symlink (Unix) or copy -of <code>tao_idl</code> (NT). By way of example, here is how I setup -my Unix (SunOS5, using g++) workspace to support cross-compilation -(for VxWorks). It assumes that the ACE+TAO distribution has been -unpacked, with TAO below ACE_wrappers. It uses the -ACE_wrappers/bin/create_ace_build script to create a shadow build -tree:<p> -<ol> - <li><code>cd ACE_wrappers</code> - <li><code>bin/create_ace_build SunOS5_g++</code> - <li><code>bin/create_ace_build vxworks</code> - <li><code>cd build/vxworks/TAO</code> - <li><code>/bin/rm -r TAO_IDL</code> - <li><code>ln -s ../../SunOS5_g++/TAO/TAO_IDL</code> -</ol><p> - -To build on the host: -<ol> - <li><code>cd build/SunOS5_g++</code> - <li><code>export ACE_ROOT=`pwd`; - export LD_LIBRARY_PATH=`pwd`/ace:$LD_LIBRARY_PATH</code> - <li><code>(cd ace; make && cd ../tests; make && cd ../TAO; make) > - make.log</code> - <li><code>cd ../vxworks</code> - <li><code>export ACE_ROOT=`pwd`</code> - <li><code>(cd ace; make && cd ../tests; make && cd ../TAO; make) > - make.log</code> -</ol><p> - -For NT hosts, please see the detailed instructions for building and -installing ACE and TAO in <a -href="../ACE-INSTALL.html#vxworks">../ACE-INSTALL.html</a>. For -NT hosts, see <a href="../ACE-INSTALL.html#VxWorks/NT">Building -ACE on Tornado/NT hosts for VxWorks targets</a><p> - -Please note that dynamic loading of libraries is not supported by TAO -for any cross-compiled target. Therefore, dynamic service -configuration of the TAO ORB is not supported.<p> - -If using perfect hashing, TAO_IDL needs gperf to be built on the host. -That's the default on many platforms. First, build <code>gperf</code> -in the <code>ACE_wrappers/apps/gperf/src/</code> directory. Then, add -a symlink or copy to the <code>bin/</code> directory for the -target.<p> - - -<HR><P> -<H3>On Windows NT</H3> - -<P><CODE>TAO_IDL</CODE> does not contain its own preprocessor, so it -needs to use an external preprocessor. Depending on which compiler was -used to build <CODE>TAO_IDL</CODE>, the default preprocessor will change. -For example, if compiled with MSVC, <CODE>TAO_IDL</CODE> will look for -CL.EXE in the path. There are cases where this will not work, such as in cross-compiling -or if the preprocessor is not in the path. These situations require that -environment variables are set on the machine to override the -built-in settings. More information about these environment variables can -be found in the <a href="docs/compiler.html#idl_env">TAO_IDL documentation.</a></P> - -<P>It is also advisable to set either the <CODE>ACE_ROOT</CODE> environment -variable as outlined in the -<a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html">ACE -installation notes</A> or the <code>TAO_ROOT</code> environment variable. -This is only required if you are planning to use the <orb.idl> -standard include in your IDL code. Notice that some of the TAO services -use this feature, so you are better off definining the environment variable -in all cases. </P> - -<p><a href="http://www.torus-software.com/">Barry -Hoggard</a> maintains a <a -href="http://www.torus-software.com/corba/">CORBA Page</a> -which contains very helpful information on setting MSVC project -settings for TAO applications.</P> - -Remember to <a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html">set -up ACE</A> before building TAO. - -<H4>Visual C++ 5.0/6.0</H4> - -<P>It works best if TAO is placed in ACE_wrappers so TAO ends up in -<CODE>ACE_wrappers\TAO</CODE> because the Visual C++ 5/6 Project files -are set up to work in this configuration. If you move it, then make -sure you change the project files to look for the include and library -files in the correct place.</P> - -<OL> - <LI>Make sure ACE is built (For Visual C++ 5.0/6.0, use ace.dsw). <P> - - <LI>First make sure <CODE>ACE_wrappers\bin</CODE> is listed in the Executable - Directories in Tools|Options. This is needed if using the TAO_IDL - compiler under MSVC. If you intend to also use the release version of the - libraries, also add <CODE>ACE_wrappers\bin\Release</CODE> to the directories. - <STRONG>Note:</STRONG> The order that these are listed is important. If your - main development is with the debug versions, make sure \bin is before - \bin\Release, otherwise put the \bin\Release first. Because the output names - for the release and debug versions of TAO_IDL are the same, extra care must be - taken when both versions are generated simulataneously. <P> - - <LI>Load the workspace <CODE>tao\TAO.dsw</CODE> and build the TAO - library. <P> - - <LI>To build the Cubit test, load the workspace - <CODE>performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw</CODE> - and build both client and server. <P> -</OL> - -<H4><A NAME="taoace">TAOACE.dsw</A></H4> - -<P>TAOACE.dsw is a Visual C++ 5.0/6.0 workspace that loads the projects -ACE, TAO, TAO_IDL (the compiler), orbsvcs, gperf and the Naming Service. -The dependencies are set up to correctly between the projects so for -example, ACE will be built automatically when TAO is built. An easy -way to compile everything is to just compile the debug or release -version of the Naming Service.</P> - -<H4>Borland C++ Builder</H4> <P> - -For information on how to build TAO using Borland's C++ Builder -environment, please see the <A -HREF="http://www.tenermerx.com/tao_bcb/index.html">online</A> help -provided by <A HREF="mailto:chris@kohlhoff.com">Christopher -Kohlhoff</A>. <P> - -<H4>Upgrading From Older Releases</H4> - -<P>When a newer version of ACE/TAO is installed, rebuild all should be -used to make sure everything is built correctly.</P> - -<H4>Changing Include Paths</H4> - -<P>If you prefer <code>#include <corba.h></code> over <code> #include -<tao/corba.h></code> then you will need to change your Project Settings -to also contain the <code>TAO/tao</code> directory. You'll find this in the -C/C++ settings under Input.</P> - -<H4>Creating Static Libraries (*.lib)</H4> - -<P>TAO, orbsvcs, TAO_IDL, and the Simple Test all have extra project files -for static library builds. TAOACE_static.dsw contains all these projects, -and is set up much like <A HREF="#taoace">TAOACE.dsw</A>. To use the static -libraries in a project, make sure to the following settings are used in -the Project Settings.</P> - -<UL> - <LI><strong>C/C++ | General:</strong> Add the Preprocessor Definitions - <CODE>TAO_HAS_DLL=0</CODE>, <CODE>ACE_HAS_DLL=0</CODE> and - <CODE>__ACE_INLINE__=0</CODE> - <LI><strong>C/C++ | Code Generation:</strong> Change Run-time - library to <CODE>Debug Multithreaded</CODE> (or - <CODE>Multithreaded</CODE> for Release) - <LI><strong>Link:</strong> Link with the static libs, such as - TAOs.lib or TAOsd.lib -</UL> - -<HR> -<H3><A NAME="#VC">How to add IDL files into your Visual C++ projects</A></H3> -Point of contact: <A HREF="mailto:nanbor@cs.wustl.edu">Nanbor Wang</A>. - -<P>Each IDL file generates .h, .i and .cpp files. Here is an example of -adding an IDL file named foobar.idl into a VC project. -<OL> - <LI>Create/open the workspace. In addition to creating server - project and client project, create a separate "<b>Utility - Project</b>" call foobar_idl for compiling the shared IDL file. - Add the IDL file <foobar.idl> to foobar_idl project and - other non-IDL generated files into both client and server - projects.</LI> - - <LI>Added foobarC.h, foobarC.i, foobarC.cpp, foobarS.h, foobarS.i, and - foobarS.cpp into server project and foobarC.h, foobarC.i, - foobarC.cpp into client projects.</LI> - - <LI>Now open the project setting window of foobar_idl (Project -> - Setting... or just press Alt-F7.) Select the IDL file in the - projects. Choose to set the setting for "All Configuration." - Make sure the "Always use custom build step" is checked and - "Exclude from build" is unchecked.</LI> - - <LI>Click on the "Custom Build" tab. Add this entry as the build command - for IDL files:<BR><BR> - - <PRE>tao_idl $(InputPath) -o $(InputDir) -I $(InputDir)</PRE> - Notice that your absolute path to TAO_IDL may vary.</LI> - - <LI>Now add the following entries as "Output file(s)."<BR><BR> - - <PRE> - $(InputDir)\$(InputName)S.h - $(InputDir)\$(InputName)C.h - $(InputDir)\$(InputName)C.i - $(InputDir)\$(InputName)C.cpp - $(InputDir)\$(InputName)S.i - $(InputDir)\$(InputName)S.cpp - $(InputDir)\$(InputName)S_T.h - $(InputDir)\$(InputName)S_T.i - $(InputDir)\$(InputName)S_T.cpp - </PRE> - Add only one entry in each line.</LI> - - <LI>You might also want to add the TAO_IDL compiler in as a dependency here - if you update TAO often. That way, if the compiler is changed, the - IDL files are recompiled automatically in the next build.</LI> - - <LI>We are all set. Click OK.</LI> - - <LI>Add foobarC.cpp and foobarS.cpp to the server project and - foobarC.cpp into the client project.</LI> - - <li>Make both client and server projects dependent projects of - foobar_idl project to make sure the IDL file get compiled - before client and server projects.</li> -</OL> - -<p>Notice that these procedures only setup the IDL compiler to perform -correctly. </p> - -<P>P.S. If anyone knows how to set a default setting in VC so we don't -need to perform these procedures every time a new project gets set up, -please let us know. Thanks. - - -<P> -<HR> -<H3>Perl Scripts</H3> - -<P>Several of TAO's tests and examples contain perl scripts that automate the -execution of these tests. The scripts are found as "run_test.pl" in the -directory of the test.</p> - -<P> The versions of perl that we use are 5.005_02 on NT and 5.003 on Solaris. -The scripts may work on earlier versions of perl, but we cannot say for sure -that they do.</P> - -<HR> -<H3>Native Exceptions</H3> - -<P>TAO will use native exceptions if TAO_HAS_EXCEPTIONS is defined when it is -compiled. This can be accomplished in two ways: by defining ACE_HAS_EXCEPTIONS -in the config.h or config-*.h files (such as on Windows) or by using -<CODE>make exceptions=1</CODE> when you compile TAO.</P> - -<P>Take note though, that this only enables support in ACE/TAO, the correct -compiler flags must also be given to the compiler to enable them.</P> - -<HR> -<P> - -<H3>minimumTAO</H3> - -<P>By default, all components in TAO will be compiled. If you only -want support for <A HREF="docs/minimumTAO.html">minimumTAO</A>, define -TAO_HAS_MINIMUM_CORBA. This can be accomplished in two ways: by -defining TAO_HAS_MINIMUM_CORBA in the config.h or orbconf.h files or -by using <CODE>make minimum_corba=1</CODE> when you compile TAO.</P> - -<strong><blink><font color="#ff0000">WARNING:</font></blink></strong> -Make sure that if you build liborbsvcs with minimum_corba=1 you also -build libTAO with minimum_corba=1!<P> - -<HR> -<P> - -<H3>Connection Caching feature</H3> - -<p>By default, TAO includes the connection caching and purging feature - which reuses "old" connections by purging them according to the - caching strategy opted for (Least Recently Used, Least Frequently - Used, First In First Out). This way socket descriptors are reused - thereby increasing scalability.<p> - - This feature can be controlled by defining or commenting out - TAO_USES_ROBUST_CONNECTION_MGMT in $TAO_ROOT/tao/orbconf.h.<p> - - But the code related to this feature consists of classes with large - template lists and can cause problems with linkers and assemblers - which cant grok long names.<p> - - Tips:<p> - - Check on SunOS5.6 (and above) whether the assembler used is of the Sun - Workshop 5 version else you could get linker errors due to huge - symbols.<p> - - If using egcs2.95 as the compiler the <code>-fsquangle</code> - option could be used which shortens the symbol names. - Thanks to <a href="mailto:ssweeney@sanders.com">Skye Sweeney</a> - for trying it out and <a href="mailto:othman@cs.wustl.edu">Ossama - Othman</a> for discovering the option with egcs. Note: Both the ACE - library and TAO library need to built using this option.</p> - -<HR><P> -<H3><A NAME="resource_requirements">System Resource Requirements</A></H3> -Please see the -<a href="../ACE-INSTALL.html#resource_requirements">ACE-INSTALL.html System -Resource Requirements discussion</a> for information on system resources -required to build ACE and TAO.<p> - - -Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A> home page. - -<!--#include virtual="/~schmidt/cgi-sig.html" --> -</BODY> -</HTML> |