diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
commit | 0e49389337be86641451a5c36c24bf742fe97523 (patch) | |
tree | 197c810e5f5bce17b1233a7cb8d7b50c0bcd25e2 /TAO/TAO-INSTALL.html | |
parent | 8008dd09ccf88d4edef237a184a698cac42f2952 (diff) | |
download | ATCD-0e49389337be86641451a5c36c24bf742fe97523.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/TAO-INSTALL.html')
-rw-r--r-- | TAO/TAO-INSTALL.html | 556 |
1 files changed, 556 insertions, 0 deletions
diff --git a/TAO/TAO-INSTALL.html b/TAO/TAO-INSTALL.html new file mode 100644 index 00000000000..d60437331ac --- /dev/null +++ b/TAO/TAO-INSTALL.html @@ -0,0 +1,556 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- $Id$ --> + +<HTML> +<HEAD> + <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> + <TITLE>Building and Installing TAO</TITLE> + <link rev=made href="mailto:schmidt@dre.vanderbilt.edu"> +</HEAD> + +<BODY text = "#000000" + link = "#000fff" + vlink = "#ff0f0f" + bgcolor = "#ffffff"> + +<H5>Document Index</H4> +<UL> + <LI><A HREF="#build">Building and Installing TAO from a distribution</A> + <LI><A HREF="#anoncvs">Building and Installing TAO from anonymous CVS</A> +</UL> + +<HR> +<H4><A NAME="build">Building and Installing TAO from a distribution</H4> + + +<p>The following table summarizes platforms on which TAO runs, see the +<a href="../ACE-INSTALL.html#platforms">ACE installation notes</A> for an +overview of all the platforms ACE runs on, these are all candidates +to run TAO on:<P> + +<table width="100%" border=1> + <tr valign=top> + <td><b>Fully supported, i.e., continually tested and used daily</b></td> + <td>Solaris 7, 8 and 9, Windows 2000/XP (7.1, and 8.0 and + Borland C++ Builder 6/2006), Linux/Intel (Redhat, + Debian and SuSe), Linux/Alpha (SuSe), VxWorks 5.5.1/6.2, OpenVMS 8.2 + </td> + </tr> + <tr valign=top bgcolor="#AFAFAF"> + <td><b>Nearly fully supported, i.e., periodically tested</b></td> + <td>Windows 9x/ME, HP/UX 11.x, LynxOS, and AIX 4.x + </td> + </tr> + <tr valign=top> + <td><b>Partially supported, i.e., infrequently tested</b></td> + <td> FreeBSD, NetBSD, Chorus, Tandem NS, + DEC UNIX 6.5, Linux/Alpha (Redhat and Debian), and MACOSX + </td> + </tr> + <tr valign=top bgcolor="#AFAFAF"> + <td><b>Planned support, i.e., pending</b></td> + <td> MVS, Windows CE, SCO, UnixWare</td> + </tr> + <tr valign=top> + <td><b>Compilers whose support were dropped recently</b></td> + <td> Borland C++ Builder 4 and 5, Sun/C++ 5.1 through 5.4, g++ + prior to 2.95.x, HP/UX 10.x, pSoS, Chorus + </td> + </tr> +</table> + +<P>Any UNIX/POSIX/Win32 variation is a potential target platform for +TAO. If you have <A +HREF="../docs/ACE-porting.html">porting +questions</A> or have a problem compiling the TAO along with ACE +wrappers on the platforms shown above please send email to either the +<A HREF="news:comp.soft-sys.ace">Newsgroup</A> or to the <A +HREF="mailto:tao-users@cs.wustl.edu">TAO 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="../docs/usage-bugzilla.html">bug tracking system</a>.<P> + +TAO can be obtained <A +HREF="http://deuce.doc.wustl.edu/Download.html">electronically</A> +via the WWW and ftp. <A +HREF="http://www.dre.vanderbilt.edu/TAO">TAO</A> is bundled +with the <A +HREF="http://www.dre.vanderbilt.edu/ACE"> ACE </A> release. You'll +always need the most recent version of ACE because TAO tracks and +influences changes to ACE. Always use the ACE+TAO release +bundle as a single piece instead of trying to mix and match things up.<P> + +<HR><P> +<H3>On UNIX platforms</H3> + + +<OL> + <LI>Set <CODE>ACE_ROOT</CODE> environment variable as outlined in + the <a href="../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> + <LI>Also build GPERF under <CODE>$ACE_ROOT/apps/gperf</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> TAO also uses GNUmakefiles and project files generated + from MPC to compile. The beta or the release distribution will + come with stock GNUmakefiles, project files (for VC7.1 and VC + 8) and Borland makefiles which were all generated by + MPC. </P> + + <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 ORB services distributed with TAO, + including the <CODE>Naming_Service</CODE> you + must include <CODE>$TAO_ROOT/orbsvcs</CODE> to the list + above. Please see the + <A HREF="docs/configurations.html#orbsvcs">TAO configuration documentation</a> + for a discussion on how to create a subset configuration of specific + TAO ORB servcies. + </P> + <P> If you wish to compile all the core tao and orbsvcs, + including its dependencies in ACE and ACEXML, you can do the + following (1) Unpack the distribution from DOC group's + website. (2) Set the environment variables $ACE_ROOT and + $TAO_ROOT. (3) Create config.h and platform_macros.GNU at + the right places (4) Delete all the GNUmakefiles (or sln and + vproj file as the case may be) from the TAO distrbution using + the 'find' command. (5) Change directory to $TAO_ROOT. (6) + Run MPC like this, $ACE_ROOT/bin/mwc.pl TAO_ACE.mwc. (7) Run + 'make'. This will create all the required libraries for TAO + and TAO orbsvcs. In step 6, use -type vc71 if you want to + generate VC71 project and workspace files for Win32. Please + see <A href="../MPC/USAGE"> MPC USAGE </A> document for + details on how to generate build files for other compilers + and tools.</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> + +<h3><strong><a name="sun_g++_notes">Note About g++ On +Solaris for x86 Target</a></strong></h3> + +If you install g++/gcc from <a href="www.blastwave.org"> blastwave +</a> then this note is applicable for you. If you are in the habit of +building g++/gcc from sources directly, please feel free to skip this +section. <p> + +The distribution from <a href="www.blastwave.org"> blastwave</a> has, +as we believe, a bug in it. This bug manifests as compilation errors +when you try to build the orbsvcs when debugging is enabled. Please +remember that debugging is enabled in your platform_macros.GNU if you +haven't specifically disabled it. The easiest way to address this +issue is to set debug=0 in platform_macros.GNu file or build a g++ +compiler for your target platform. A bug has been registered with +blastwave. If you have more questions please feel to contact <a +mailto="bala at dre.vanderbilt.edu"> Bala Natarajan </a>. + +<h2><strong><a name="makenotes">A Note On Make</a></strong></h2> + +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 and binary +form. Please see <a href="../ACE-INSTALL.html"> ACE-INSTALL.html </a> +for details from where they can be obtained.<P> + +<h2><strong><a name="makenotes">Explicit templates</a></strong></h2> + +It is not possible to use TAO with explicit templates. Your compiler +must support implicit templates. <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="../ACE-INSTALL.html#vxworks">$ACE_ROOT/ACE-INSTALL.html</a>.<p> + + <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. + There are several ways to do this, below we document the two + most common approaches: + </P> + + <H4>Modifying the default location for the IDL compiler</H4> + + <P>By default TAO assumes that the IDL compiler is located in: + <CODE>$TAO_ROOT/bin/tao_idl</CODE> and that the GPERF tool + is located in <CODE>$ACE_ROOT/bin/gperf</CODE>, this is fine for + hosted builds, but not for cross-compilation. + Unfortunately there is no good default for cross-compilation + builds because different sites choose a different location for + their tools. + </P> + <P>You can override the default values by adding several new lines in your + platform_macros.GNU file assuming $(HOST_ROOT) is set to the location + of your host build where you have build gperf and tao_idl, as follows: +<PRE> +$ echo 'TAO_IDL := $(HOST_ROOT)/bin/tao_idl' \ +$ echo 'TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/gperf' \ +$ echo 'TAO_IDL_DEP := $(HOST_ROOT)/bin/tao_idl$(EXEEXT)' \ + >> platform_macros.GNU +</PRE> + + <P>Obviously you must first build the tools for the host platform, + typically you would do this as follows: +<PRE> +# (1) Create a clone directory for the host: + +$ cd ACE_wrappers +$ mkdir -p build/HOST +$ ./bin/create_ace_build build/HOST + +# (2) Configure the host build: + +$ echo '#include "ace/config-HOST.h"' > build/HOST/ace/config.h +$ echo 'include $(ACE_ROOT)/include/makeinclude/platform_HOST.GNU' \ + > build/HOST/include/makeinclude/platform_macros.GNU + +# Often host builds are static: +$ echo 'static_libs_only=1' \ + >> build/HOST/include/makeinclude/platform_macros.GNU + +# (3) Build the host tools + +$ cd build/HOST +$ export ACE_ROOT=$PWD +$ make -C ace +$ make -C apps/gperf +$ make -C TAO/TAO_IDL +</PRE> + + <P>Then configuring the location of the tools for the target + could be done as shown here: +<PRE> +# (4) Create a clone directory for the target: + +$ cd ACE_wrappers +$ mkdir -p build/TARGET +$ ./bin/create_ace_build build/TARGET + +# (5) Configure the target build: + +$ echo '#include "ace/config-TARGET.h"' > build/HOST/ace/config.h +$ echo 'include $(ACE_ROOT)/include/makeinclude/platform_TARGET.GNU' \ + > build/TARGET/include/makeinclude/platform_macros.GNU + +# (6) Configure the TARGET build to use the HOST IDL compiler and +# gperf tools, as described above. +</PRE> + + <H4>Alternative configuration, using links</H4> + + <P>Some developers prefer to set up the host tools using symbolic + links (Unix) or copy of <code>tao_idl</code> (NT). + By way of example, here is how you could setup a + croos-compilation environment for Unix, + the host is <CODE>SunOS5/g++</CODE>, + the target is <CODE>VxWorks</CODE>. + 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: +<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/bin</code> + <li><code>/bin/rm -r tao_idl</code> + <li><code>ln -s ../../SunOS5_g++/bin/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:`pwd`/lib:$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 Win32 hosts, please see the detailed instructions for building + and installing ACE and TAO in + <a href="../ACE-INSTALL.html#vxworks">../ACE-INSTALL.html</a>, + and + <a href="../ACE-INSTALL.html#VxWorks/NT">Building ACE on + Tornado/NT hosts for VxWorks targets</a> + </P> + + <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> + + <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. + </P> + + <H4>Which one is right for me?</H4> + + <P>Using links to cross-compile TAO may appear simpler at first + glance. However, storing the location in the + <CODE>platform_macros.GNU</CODE> is more amenable for + sites where many developers share the same configuration files, + or where ACE+TAO are compiled once and used by a medium or large + size group. + </P> + +<HR><P> +<H3>On Windows NT and Windows 2000 and Windows XP</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="../ACE-INSTALL.html">ACE +installation notes</A> or the <code>TAO_ROOT</code> environment variable. + </P> + +Remember to <a href="../ACE-INSTALL.html">set +up ACE</A> before building TAO. + +<H4>Visual C++ 7.1 and newer</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++ 7.1 Project files +are setup up to work in this configuration. If you move it, then make +sure you regenerate the project files to look for the include and +library files in the correct place. The default place for placing the +library files are $ACE_ROOT/lib. You can change this setting in <a +href="../bin/MakeProjectCreator/config/acedefaults.mpb"> this base +project </a> file.</P> + +<OL> + <LI>Make sure ACE is built (For Visual C++ 7.1, use ACE.sln). <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 in the same workspace you have to be + careful, since the executable name for TAO_IDL is same in debug + and release builds. You can use only or the oethr in the same + workspace. This shouldn't be an issue since the projects for + tests and examples are set up to transparently use one or the + other. + <P> + <LI>Load the workspace <CODE>$TAO_ROOT\TAO.dsw</CODE> and build the TAO + library. This workspace has almost all the projects under TAO + which can be built. Therefore please pick and choose projects + that you want to build.<P> + + <LI>To build the Param_Test, load the workspace + <CODE>tests\tests.dsw</CODE> + and build both client and server. <P> +</OL> + +<H4>Visual C++ 7.1</H4> +The DOC group doesn't support TAO on VC++ 7.0 since the libraries that +were shipped with VC++ 7.0 did not work well. The DOC group supports +only VC++ 7.1, which is used by their sponsors. The above mentioned +points are also relevant to users who are trying to use TAO with VC++ +7.1. Additionally, all required options are set for the generated .sln +files. If something is missing then it is probably a bug with +MPC. Please report such bugs to the tao-users newsgroups. + +<H4>Borland C++ Builder</H4> <P> + +To build TAO using C++Builder please follow the +<A HREF="../ACE-INSTALL.html#borland">ACE installation notes</A>, with the +difference being that you first build ACE and then you +give the following command in the $ACE_ROOT\TAO directory:<BR> +<BLOCKQUOTE><CODE> +make -f Makefile.bor +</CODE></BLOCKQUOTE><P> + +For more detailed information on building and using TAO with Borland's +C++ Builder environment, please see the <A +HREF="http://www.tenermerx.com/programming/corba/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> Instructions for dynamic libraries apply to static libraries as +well. Users will have to use _Static.dsw's and _Static.sln files for +creating static libraries and linking with them. + +<H4>MinGW and Cygwin</H4> <P> + +<P>First, follow the build instructions in the +<A HREF="../ACE-INSTALL.html#mingw">ACE installation notes.</A> +When building with MinGW and Cygwin you are using the GNU make under Windows. +When you use make from the commandline, make sure that <code>TAO_ROOT</code> is +set to a full path or to <code>%ACE_ROOT%/TAO</code>, which will also result +in setting a full path. Setting it with the Unix style to <code>$ACE_ROOT/TAO</code> +will not work, setting it using the make style to <code>$(ACE_ROOT)/TAO</code> looks +to work but will cause problems when building the TAO services, so don't do that. +The correct way is: +<BLOCKQUOTE><code>set TAO_ROOT=%ACE_ROOT%/TAO</code></BLOCKQUOTE> + +<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 ACE_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> + +<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> + +<HR> +<H4><A NAME="anoncvs">Building and Installing TAO from anonymous +CVS</H4> + +If users are building from our <a +href="http://cvs.doc.wustl.edu/anoncvs.html"> anon cvs </a> the +GNUmakefiles, and project files for building on various platforms will +not be available. Users from anon cvs are expected to generate them +using <a href="../MPC/README">MPC</a> before building ACE, TAO or +CIAO. We point out some suggestions below to get bootstrapped +quickly. + +<UL> + <LI> Please see <a href="#MPC"> instructions </a> above to download + MPC from anon cvs repository <p> + <LI>Please make sure that you have <a href="http://www.perl.org"> + perl</a> installed, preferably perl + 5.8 or higher. Users on Win32 based platforms are recommended to use + <a href="http://www.activestate.com/Products/ActivePerl/"> Active + State Perl </a>. We use active state perl without problems. We have + ran into problems trying to use the cygwin version of perl on Win32 + based platforms. <p> + <LI>If you just want to build TAO and associated tests, examples, + and associated utility libraries, we recommend the following + alternatives: + <UL> + <LI> Build ACE and TAO seperately. ACE needs to be built first and + instructins for building ACE are available at <a + href="../ACE-INSTALL.html#MPC">ACE-INSTALL</a>. GNUmakefiles and + project files for TAO can be generated by using the following + commands:<p> + <CODE> $ACE_ROOT/bin/mwc.pl TAO.mwc </CODE> <p> + from <CODE> $TAO_ROOT </CODE> to generate GNUmakefiles. Use <CODE> + -type vc71 </CODE> or <CODE>-type vc8</CODE> to generate VC71 and + VC8 project and solution files.<p> + <LI> Build ACE+TAO together in one shot. To do that please issue + the following commands: <p> + <CODE> $ACE_ROOT/bin/mwc.pl TAO_ACE.mwc </CODE> <p> + from <CODE>$TAO_ROOT</CODE>. This will generate GNUmakefiles for + ACE, gperf, and core ACE+TAO libraries. Issuing a + <CODE>'make'</CODE> from <CODE>$TAO_ROOT </CODE> will build all of + the above in one shot. You can use <CODE> -type vc71 </CODE> to + generate VC71 project and workspace files. <CODE>TAO_ACE.sln</CODE> + can be used by users to build ACE+TAO from a single workspace + file. Users can use <CODE> -type vc8 </CODE> to generate the VC8 + solutions files. <p> + </UL> + <LI>If you want to build CIAO and its associated libraries + please see <a href="CIAO/CIAO-INSTALL.html"> CIAO-INSTALL <a> for + details. + + </UL> + + +<HR><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> |