2006/03/21

The ADAPTIVE Communication Environment (ACE)

The ADAPTIVE Communication Environment (ACE)
최근에는 ACE class library를 활용한 개발이 활발히 이루어지고 있는데, 아마도 개발이 편리하게 해주는 클래스들이라는 점과, 상당히 오랜 기간, 오랜 사람들로 하여금 안정화되었다는 점, 실제로 꽤 많은 미션 크리티컬 영역에서도 사용되고 있다는 점이 높이 평가된듯 하다.

이 ACE를 솔라리스10 에서 컴파일해서 사용하려고 하면, 몇가지 방법이 있다.

[download source]
일단, 정상적인 화일을 다운받는다. 이상하게 들릴지 모르겠지만, 위의 링크에서 ACExxx.zip 과 ACExxx.tar.gz는 약간 다르다. 앞으로는 고쳐질지 모르겠지만, zip 화일은 텍스트 끝마다 ^M이 붙어있어서 솔라리스에서 컴파일할때 에러가 발생한다. #inlcude, #define과 같은 라인에서 에러 발생. 따라서, 솔라리스에서 빌드하고자 한다면, tar.gz 포맷 화일을 다운받는다. 아마도, zip 버젼은 윈도우즈에서 작성한듯 하다.

[ How to build #1 ]
$ACE_ROOT/include/makeinclude/platform_macros.GNU를 sunos5_sunc++.GNU에 링크를 하고, $ACE_ROOT에서 gmake를 실행하면 된다. gmake는 /usr/sfw/bin에 있으므로 미리 PATH에 /usr/sfw/bin이 적용되어 있는지 확인하도록 한다.

[ How to build #2]
대개의 표준 리눅스 빌드판처럼 configure를 이용해서 새로이 빌드 환경을 구성해서 컴파일할 수도 있다.
썬컴파일러만 있는 경우(/opt/SUNWspro/bin)에 $ACE_ROOT 서브디렉토리로 solaris10-amd64와 같이 컴파일된 바이너리를 오브젝트용 디렉토리를 만든다.
cd $ACE_ROOT/solaris10-amd64
../configure --prefix=/usr/local CC=cc CXX=CC
와 같이 실행한후 make, dmake, gmake 아무거나 사용해서 빌드를 시작한다. CPU가 많은 시스템에서는 dmake 사용을 권고한다. (프로세서 분산 컴파일을 한다. 특히, 썬의 T1000/T2000에서는 dmake 필히 사용)

주의할 점은 위처럼 기본 구성을 하는 경우, ACE는 SSL 사용을 기본으로 enable한다는 점이다. 솔라리스에는 openssl이 기본으로 안들어있으므로, 사전에 다운로드 해놓아야 한다는점이다. 만약 SSL을 사용하지 않을 예정이면, --disable-ssl을 configure시 추가해서 지정해서 구성한다.

[performance]
cpu가 하나만 있는 시스템에서는 멀티스레드를 사용하는 것이 성능을 저하시킨다. 따라서, 이경우에는 멀티스레드를 죽이는 것이 좋다.