summaryrefslogtreecommitdiff
path: root/TAO/TAO-INSTALL.html
blob: 1bfc3b652ac43522c8f95dcec29c4f8a741d5fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--  -->

<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="#svn">Building and Installing TAO from git</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>Windows (Microsoft Visual Studio 2015, 2017, and 2019),
        Linux/Intel (Redhat, Debian, and SuSe), Android
    </td>
  </tr>
  <tr valign=top bgcolor="#AFAFAF">
   <td><b>Nearly fully supported, i.e., sometimes tested</b></td>
   <td>HP/UX 11.x, LynxOS
   </td>
  </tr>
  <tr valign=top>
    <td><b>Partially supported, i.e., infrequently tested</b></td>
    <td>Solaris 9, FreeBSD, NetBSD, Windows CE, MacOSX, Linux/Alpha (RedHat, SuSE, and Debian), and AIX 5.x
    </td>
  </tr>
  <tr valign=top bgcolor="#AFAFAF">
    <td><b>Planned support, i.e., pending</b></td>
    <td></td>
  </tr>
  <tr valign=top>
    <td><b>Formerly Supported Platforms</b></td>
    <td> Embarcadero C++ Builder, Sun/C++ 5.1 through 5.4, g++
         prior to 2.95.x, HP/UX 10.x, pSoS, Chorus, DEC UNIX, SCO, UnixWare, MVS,
         Windows 9x/ME, Chorus, Tandem NS, OpenVMS 8.3 IA64
    </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 open a github <A
HREF="https://github.com/DOCGroup/ACE_TAO">issue or discussion</A> and we'll
try to help you fix the problems.<P>

TAO can be obtained <A
HREF="https://download.dre.vanderbilt.edu">electronically</A>
via the WWW and ftp.  <A
HREF="https://www.dre.vanderbilt.edu/TAO">TAO</A> is bundled
with the <A
HREF="https://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/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/src</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 full distribution will
        come with stock GNUmakefiles, project files (for VC9 and VC
        10) awhich 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 <OL>
          <LI>
          Unpack the distribution from DOC group's
          website.</LI>
          <LI>
          Set the environment variables $ACE_ROOT and
          $TAO_ROOT.</LI>
          <LI>Create config.h and platform_macros.GNU at
          the right places</LI>
          <LI>Delete all the GNUmakefiles (or sln and
          vproj file as the case may be) from the TAO distribution using
          the 'find' command.</LI>
          <LI>Change directory to $TAO_ROOT.</LI>
          <LI>Run MPC like this, $ACE_ROOT/bin/mwc.pl TAO_ACE.mwc -type gnuace </LI>
          <LI>Run
          'make'.</LI> </OL></P><P> This will create all the required libraries for TAO
          and TAO orbsvcs. In step 6, use -type vs2019 if you want to
          generate Visual Studio 2019 project and workspace files for Win32. Please
          see <A href="../MPC/docs/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="http://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="http://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/ACE-INSTALL.html">ACE-INSTALL.html</a>
for details from where they can be obtained.<P>

<HR><P>
<h3>Using cross compilation</h3>

With cross compilation you build on the so called host system for a certain
target system. The host system can for example be linux and the target
can for example be VxWorks, LynxOS, or Linux.

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/ACE-INSTALL.html#vxworks">$ACE_ROOT/ACE-INSTALL.html</a>.</p>
<p>If you are building TAO for an Android target, please see the notes
for building and installing ACE and TAO in <a
href="../ACE-INSTALL.html#android">$ACE_ROOT/ACE-INSTALL.html</a>.</p>

    <P>Cross-compiling TAO is not much different than building it for a
      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>$ACE_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>
      The location of the IDL compiler is set when the makefiles (whether
      GNU, Visual Studio projects, or any other type) are generated using
      MPC. If you are using GNU make for the target build, you can follow the
      procedure below with no further steps. If, however, you are using
      Visual Studio for the target build, you must generate the Visual Studio
      projects with a specification of where the hosted IDL compiler is. One
      common way to do this is to use the MPC <code>-value_template</code>
      option to specify the path to the IDL compiler, either using a
      fully specified path or an environment variable. For example, to specify
      the location with the <code>HOST_TAO_IDL</code> environment variable,
      generate your projects with the MPC command line option
      <code>-value_template tao_idl=$(HOST_TAO_IDL)</code>. Then before
      running Visual Studio to cross-build for the target, be sure that the
      <code>HOST_TAO_IDL</code> environment variable is set to the location
      of the host-built IDL compiler. Note that if the host-built IDL compiler
      requires a PATH setting different from what's set in the Visual Studio
      environment, you must set the PATH environment variable and specify the
      <code>/USEENV</code> option to devenv.
    </P>
    <P>If your builds are using GNU make, you can override the default values
      by adding several lines to your <code>platform_macros.GNU</code> file.
      Assuming $(HOST_ROOT) is set to the location of your host build where
      you previously built gperf and tao_idl, you can change the target
      build by adding the following lines:
<PRE>
TAO_IDL := $(HOST_ROOT)/bin/tao_idl
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/gperf
TAO_IDL_DEP := $(HOST_ROOT)/bin/tao_idl$(EXEEXT)
</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/src
$ 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) &gt;
    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) &gt;
    make.log</code>
</ol>

    <P>For Win32 hosts, please see the detailed instructions for building
      and installing ACE and TAO in
      <a href="../ACE/ACE-INSTALL.html#vxworks">ACE_ROOT/ACE-INSTALL.html</a>,
      and
      <a href="../ACE/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 mandatory to set the <CODE>ACE_ROOT</CODE> environment
variable as outlined in the
<a href="../ACE/ACE-INSTALL.html">ACE
installation notes</A> and the <code>TAO_ROOT</code> environment variable.
  </P>

Remember to <a href="../ACE/ACE-INSTALL.html">set
up ACE</A> before building TAO.

Make sure that you first build <code>$TAO_ROOT\TAO_IDL</code> and then <code>
$TAO_ROOT\tao</code> because in order to compile the core TAO libraries
you need to have <code>TAO_IDL</code> compiled.

<H4>Visual Studio 2015 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 Studio 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 Studio 2015, 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 other 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 solution <CODE>$TAO_ROOT\TAO.sln</CODE> and build first
      the TAO_IDL compiler. After that build the TAO
      library. This solution 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 solution
      <CODE>tests\tests.sln</CODE>
      and build both client and server. <P>
</OL>

<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 &lt;corba.h&gt;</code> over <code> #include
&lt;tao/corba.h&gt;</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 the _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/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>

<HR>
<P>

<H3>Minimum CORBA</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 by the following:
create <code>ACE_wrappers/bin/MakeProjectCreator/config/default.features</code>
with the contents:</p>
<code>minimum_corba=1</code><p>
Then regenerate the project files with MPC using <code>perl bin/mwc.pl</code>,
see also <A HREF="../ACE/ACE-INSTALL.html#MPC">ACE-INSTALL.html</A> for more info
about the MPC generation. This <code>miminum_corba=1</code> will add compiler
flags to the C++ compiler and the IDL compiler to indicate that minimum corba
is enabled.
For your own project code you can define TAO_HAS_MINIMUM_CORBA in the ace/config.h file or
by using <CODE>make minimum_corba=1</CODE> when you compile TAO after that.</P>

<strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
Make sure that if you build the orbsvcs with minimum_corba=1 you also
build the core libraries with minimum_corba=1!<P>

<HR>
<P>

<H3>CORBA/e compact and micro</H3>

<P>By default, all components in TAO will be compiled.  If you only
want support for CORBA/e compact or micro you must regenerate the
makefiles shipped with the distribution.
This can be accomplished by the following:
create <code>ACE_wrappers/bin/MakeProjectCreator/config/default.features</code>
with the contents:</p>
<code>corba_e_compact=1</code><p>
or</p>
<code>corba_e_micro=1</code><p>
Then regenerate the project files with MPC using <code>perl bin/mwc.pl</code>,
see also <A HREF="../ACE/ACE-INSTALL.html#MPC">ACE-INSTALL.html</A> for more info
about the MPC generation. This <code>corba_e_x=1</code> will add compiler
flags to the C++ compiler and the IDL compiler to indicate that CORBA/e
is enabled.
For your own project code you can define <code>CORBA_E_COMPACT</code> or
<code>CORBA_E_MICRO</code>
in the ace/config.h file.</P>
<P>

<HR><P>
<H3><A NAME="resource_requirements">System Resource Requirements</A></H3>
Please see the
<a href="../ACE/ACE-INSTALL.html#resource_requirements">ACE-INSTALL.html</a> System
Resource Requirements discussion for information on system resources
required to build ACE and TAO.<p>

<HR>
<H4><A NAME="svn">Building and Installing TAO from git</H4>

If users are building from our <a
href="https://github.com/DOCGroup/ACE_TAO">git archive</a> the
GNUmakefiles, and project files for building on various platforms will
not be available. Users from git are expected to generate them
using <a href="../MPC/docs/README">MPC</a> before building ACE or TAO.
We point out some suggestions below to get bootstrapped
quickly.

<UL>
  <LI> Please see <a href="#MPC"> instructions </a> above to download
  MPC from our git repository</LI><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="https://www.activestate.com/products/perl"> 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.</LI><p/>
  <LI>When building from git, the ACE_ROOT and TAO_ROOT environment
  variable settings differ from their settings in the ACE_wrappers
  prepackaged source distribution:
    <UL>
      <LI>ACE_ROOT should point to the ACE subdirectory of the top level
      ACE_TAO directory</LI>
      <LI>TAO_ROOT should point to the TAO subdirectory of the top level
      ACE_TAO directory</LI>
    </UL>
  </LI><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 separately. ACE needs to be built first and
  instructions for building ACE are available at <a
  href="../ACE/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 -type gnuace </CODE> <p>
   from <CODE> $TAO_ROOT </CODE> to generate GNUmakefiles. Use <CODE>
  -type vc71 </CODE>  to generate VC71 project and solution files,
  or <CODE>-type vc8</CODE> for VC8 project and solution files, or
   <CODE>-type bmake</CODE> for Borland C++ make files.</LI><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.
    </LI>
    </UL>
  </LI><p/>
</UL>


<HR><P>
Back to the <A HREF="https://www.dre.vanderbilt.edu/~schmidt/TAO.html">TAO</A> home page.

<!--#include virtual="/~schmidt/cgi-sig.html" -->
</BODY>
</HTML>