Building ACE/TAO with Intel® C++ Compiler for Linux

Introduction
This document explains how to build ACE/TAO using Intel® C++ Compiler for Linux. From the ACE/TAO web site:

ACE† is an open-source framework that provides many components and patterns for developing high-performance, distributed real-time and embedded systems. ACE provides powerful, yet efficient abstractions for sockets, demultiplexing loops, threads, synchronization primitives.

TAO† (The ACE ORB) is an open-source implementation of a CORBA Object Request Broker (ORB) built using components and patterns in the ACE framework.
Several companies provide commercial support for ACE/TAO, see http://www.cs.wustl.edu/~schmidt/commercial-support.html† for information. Remedy IT† , provides support for building ACE/TAO with the Intel® C++ Compiler.


Version
The version of ACE/TAO used in this document is 5.7.1 (latest microrelease).
The 11.1.038 version of the Intel C++ compiler (Intel64) is used.


Obtaining Source Code
The ACE/TAO source code was downloaded from http://download.dre.vanderbilt.edu/†.


Prerequisites
- GNU gunzip and GNU tar for extracting software archives
- GNU make
- Perl v5.6.1 or newer (recommended, but not required)


ACE Configuration and Set-up Information
1. Extract the archive into a path with no spaces in the path name (e.g., /opt/ACE_wrappers):
$ tar zxvf ACE+TAO-5.6.9.tar.gz

2. Go to this directory:
$ cd /opt/ACE_wrappers

3. Set the ACE_ROOT enviroment variable. The ACE_wrappers directory will be referred to as ACE_ROOT in the following steps:
$ export ACE_ROOT=`pwd`

5. Create configuration file:

$ echo 'zlib=1
inline=0
boost=0
CFLAGS+=-Wp64
include $(ACE_ROOT)/include/makeinclude/platform_linux_icc.GNU' >
$ACE_ROOT/include/makeinclude/platform_macros.GNU

6. Create a file called config.h in the ACE_ROOT/ace directory that contains:
#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
#include "ace/config-linux.h"

$ echo '#include "ace/config-linux.h"' > $ACE_ROOT/ace/config.h

7. Make sure that you are in ACE_ROOT directory. If not, go to ACE_ROOT:
$ cd $ACE_ROOT

8. Set the LD_LIBRARY_PATH enviroment variable:
$ export LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH

9. Set Intel C++ enviroment variables using iccvars script:
. /opt/intel/Compiler/11.1/038/bin/intel64/iccvars_intel64.sh

10.Build ACE libraries:
$ gmake >& gmake.log 


TAO Configuration and Set-up Information
1. Set the TAO_ROOT enviroment variable.
$ export TAO_ROOT=$ACE_ROOT/TAO

2. Go to this directory.
$ cd $TAO_ROOT

3. Build TAO libraries
$ gmake >& gmake.log


Source Code Changes
None required.


Verifying Correctness 

As a sanity check, you might also want to build and run sanity tests.

1. Build all the tests in ACE_ROOT/tests:
cd $ACE_ROOT/tests
gmake >& gmake.log

2. You then need to run all the tests, e.g., by running the perl script:

./run_test.pl


3. If everything works then you should see something like this:

./run_test.pl
auto_run_tests: tests/ACE_Test

auto_run_tests_finished: tests/ACE_Test Time:1s Result:0
auto_run_tests: tests/Aio_Platform_Test

auto_run_tests_finished: tests/Aio_Platform_Test Time:1s Result:0
auto_run_tests: tests/Arg_Shifter_Test

auto_run_tests_finished: tests/Arg_Shifter_Test Time:1s Result:0
auto_run_tests: tests/ARGV_Test

....

By default, all the output from the tests will be stored in separate files in the ./log/ directory.
You can override this, however, by setting the ACE_TEST_DIR environment variable to
another prefix.

Each log file contains a time stamp of when the test began and also a time stamp indicating
when the test ended. If the ending time stamp is missing, you can assume that the test
did not succeed.


Related topics

/en-us/articles/intel-c-compiler-for-linux-building-acetao-with-intel-c-compiler-for-linux 


Known Issues or Limitations
None. Please contact Intel® Premier Support website or Intel® User Forums if you encounter problems or want to provide feedback.

† This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.
Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.