#20151201-01 :: C++ :: build cppcsp2-2.0.6 on Mac OS X

Mac OS X 10.11.1 El Capitan

LLVM 7.0.0 (clang-700.1.76)


홈페이지 [다운로드]


cppcsp2-2.0.6을 Mac OS X에서 빌드하려면 수 많은 에러를 만나게 된다.

아래와 같은 방법을 통해 문제를 해결한다.


소스파일을 다운로드 받고 압축을 푼다.

$ cd ~/Downloads

$ tar -vxzf cppcsp2-2.0.6.tar.gz


Makefile 생성을 위해 아래와 같이 스크립트를 실행한다.

$ ./configure


이 상태에서 make를 컴파일 실행하면 에러가 발생한다.


Makefile에 _XOPEN_SOURCE 선언을 추가한다.

$ vi Makefile


   DEFS = … -D_XOPEN_SOURCE


다시 make를 실행해 보지만 또 컴파일 에러가 발생한다.


src/process.h 파일을 수정한다.

$ vi src/process.h


   typedef ucontext Context;       (수정 전)

   typedef ucontext_t Context;    (수정 후)


다시 make 파일을 실행하면 컴파일 에러는 끝나지 않았다.


src/channel_factory.h 파일을 수정한다.

$ vi src/channel_factory.h


:210

deleteAll(o2o);                                                (수정 전)

StandardChannelFactory::deleteAll(o2o);    (수정 후)


이번에는 make를 실행하면 이번에는 링크 에러가 발생한다.


Makefile에서 -lrt 옵션을 제거한다.

$ vi Makefile


   CPPCSP_LINK_LIBS = -ltr -lpthread    (수정 전)

   CPPCSP_LINK_LIBS = -lpthread          (수정 후)


이제 make를 실행하면 성공한다.

make test를 실행하면 유닛테스트 결과를 볼 수 있다.