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.
Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.