torutkのブログ

ソフトウェア・エンジニアのブログ

ACE+TAOのビルド(Windows Cygwin編)

ACE 5.4.7/TAO 1.4.7が最新版です。
http://www.cs.wustl.edu/~schmidt/ACE.html
http://www.cs.wustl.edu/~schmidt/TAO.html

ACEのビルド

Windows上でCygwinを使ってACE+TAOをビルドします。
ACE+TAO+CIAOをワークディレクトリに展開し、環境変数ACE_ROOTを設定します。

 ACE_wrappers$ export ACE_ROOT=`pwd`

ACEをビルドします。2つファイルを作成します。
ACE_wrappers/ace/config.h

// -*- C++ -*-
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H

#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-cygwin32.h"

#endif /* ACE_CONFIG_H */

ACE_wrappers/include/makeinclude/platform_macros.GNU

include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU

ACEをビルドします。ビルドオプションとして、最適化有り、デバッグ無し、静的リンクライブラリの作成有りを指定しています。ここでは最低限のlibACEだけを生成しています。

 ACE_wrappers$ cd ace
 ace$ make optimize=1 debug=0 static_libs=1
     :
 ace$ ls lib*
 libACE.a  libACE.dll  libACE.dll.a
 ace$
gperfのビルド

TAOのIDLコンパイラがgperfコマンドを使用するのでビルドしておきます。

 ace$ cd ../apps/gperf/src
 src$ make optimize=1 debug=0 static_libs=1
    :
 src$ ls *exe
 gperf.exe
 src$

**TAOのビルド
環境変数TAO_ROOTを設定します。
>||
 ACE_wrappers$ export TAO_ROOT=$ACE_ROOT/TAO

ACEのライブラリをリンクするために、環境変数PATHを設定します。

 ACE_wrappers$ PATH=$ACE_ROOT:$PATH

TAOをビルドします。ここでは、CORBAのm最低限の部分だけとして、TAOコア、IDLコンパイラ、ネーミングサービスをビルドします。

TAOコアのビルド
 ACE_wrappers$ cd TAO/tao
 tao$ make optimize=1 debug=0 static_libs=1
     :
 tao$ 

生成されたライブラリファイルはかなり大量です。拡張子 .a/.dll/.dll.aを
省略したファイル名の部分の一覧を以下に記します。

libTAO                   libTAO_BiDirGIOP       libTAO_CodecFactory
libTAO_Codeset           libTAO_Domain          libTAO_DynamicAny
libTAO_DynamicInterface  libTAO_IFR_Client      libTAO_IORInterceptor
libTAO_IORManip          libTAO_IORTable        libTAO_ImR_Client
libTAO_Messaging         libTAO_ObjRefTemplate  libTAO_PI
libTAO_PI_Server         libTAO_PortableServer  libTAO_RTCORBA
libTAO_RTPortableServer  libTAO_RTScheduler     libTAO_SmartProxies
libTAO_Strategies        libTAO_TypeCodeFactory libTAO_Utils
libTAO_ValueType 
TAO IDLコンパイラのビルド
 tao$ cd ../TAO_IDL
 TAO_IDL$ make optimize=1 debug=0 static_libs=1
     :
 TAO_IDL$ 

IDLコンパイラ・コマンドおよびIDLコンパイラ・ライブラリが生成されます。

 TAO_IDL$ ls lib*
 libTAO_IDL_BE.a    libTAO_IDL_BE.dll.a  libTAO_IDL_FE.dll
 libTAO_IDL_BE.dll  libTAO_IDL_FE.a      libTAO_IDL_FE.dll.a
 TAO_IDL$ ls *exe
 tao_idl.exe
 TAO_IDL$
NamingServiceのビルド
 TAO$ cd orbsvcs
 orbsvcs$ make TAO_ORBSVCS=Naming optimize=1 debug=0 static_libs=1
    :
 CosTypedEventCommC.h:50:27: CosEventCommC.h: No such file or directory

なんかエラーが発生しています。