Monday, March 23, 2009

ACE for Cygwin

versions: Cygwin CYGWIN_NT-5.1
ACE 5.5.1
g++ 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)

(cmake is available by cygwin project)

Before making ACE

  1. Get and decompress tar ball (e.g. /work/ACE_wrappers).
  2. Set an environment variable;
 export $ACE_ROOT=/work/ACE_wrappers
  1. Create some symbolic links;
 cd $ACE_ROOT/include/makeinclude
ln -s platform_cygwin32.GNU platform_macros.GNU
cd $ACE_ROOT/ace
ln -s config-cywin32.h config.h

Setting include path

Compiling ACE generates many errors by default of cygwin. It is because the preprocessor of g++ on cygwin behaved in a strange way. It regards the lines "signal.h" or so on in /usr/include/*.h files as the same name files in ACE.

Solution: To avoid this errors, you should export an environment variable like:

 export CPLUS_INCLUDE_PATH=/usr/include:/usr/local/include:$CPLUS_INCLUDE_PATH

and

 make

Then you can compile ACE without any errors. This issue is not declaired at the official homepage of ACE/TAO.

Local Installation

To install ACE to your cygwin,

 cp -r $ACE_ROOT/ace /usr/local/include
cp $ACE_ROOT/lib/* /usr/local/lib

To tell your cygwin where is the ACE dynamic libraries,

 export PATH=/usr/local/lib:$PATH"

cygwin cannot search the libraries without setting PATH variable properly. It's a specification of cygwin.


Additional step to test ACE:

 cd $ACE_ROOT/tests
make
perl run_test.pl

No comments: