log4cxx 빌드하기

예전에 포스팅 했던 것 처럼, log4cxx라는 log4j 프로젝트의 하위 프로젝트로 존재하는 C++ 용의 로깅 라이브러리가 있다. 다음의 내용은 이 라이브러리의 현재 HEAD 리비젼인 611128 (2008-01-10 15:26:45 +0900)을 빌드하는 과정의 이야기이다. 좀 길어서 두 개로 나눠서 정리했다.

빌드환경은,

  • Microsoft Visual Studio 2005
  • Windows XP w/ SP2 32bit edition
  • Subversion 1.6 (Win32)
  • Apache Ant 1.7.0
  • Java SDK 1.6.0_03

에서 여기에 서술되지 않은 툴들을 설치하면서 진행된다.

일단 목표는 다음과 같은 빌드 파일을 만들어내는 일이다.

  • VS 2005 에서 제대로 빌드 될 것
  • wchar_t 지원
  • Debug 빌드 뿐아니라 Release 빌드의 설정도 포함

이 요구사항을 만족시키려면 아마도 간단한 script 정도는 추가해야한다고 가정하면서 진행했다. 이제 진행과정.

1. log4cxx HEAD revision 체크아웃

svn head revision을 구해온다.

D:\log4cxx> svn checkout http://svn.apache.org/repos/asf/logging/log4cxx/trunk apache-log4cxx

2. Ant 를 설치한다

이미 설치된 관계로 뛰어넘은 부분이지만, 설치되지 않았다면 http://ant.apache.org/ 에서 Ant 유틸리티를 받아서 설치하고 (물론 실행경로;PATH 환경변수도 수정해준다) JRE도 적당히 받아서 설치해주자 (이번엔 JDK도 있어서 건너 뛰었다).

Ant 만으로는 log4cxx를 만들어낼 수 없다. http://ant-contrib.sourceforge.net/ 에 가서 ant-contrib 과 cc-task를 받아서 설치하자. (설치 경로는 ant가 설치된 곳\lib\ 밑이면 된다; 아니면 java class path를 적당히 손봐줘도 된다)

3. 기타 라이브러리 확인

APR;apache portable runtime과 APRUtil 두 가지가 필요하다. 인터넷 연결이 존재한다면 보통 자동으로 다운로드 되지만 그렇지 않은 경우 미리 받아둬야 한다. http://apr.apache.org/ 에 가면 찾을 수 있다.

4. VC++ 2008 project 생성

> D:\log4cxx\apache-log4cxx>ant build-projects-vc8

D:\log4cxx\apache-log4cxx\msvc8 이란 디렉토리에 생성된 .vcproj 들을 확인할 수 있다. 그렇지만 프로젝트 파일들 뿐이므로 바로 빌드 하기는 귀찮은 일이니 solution 파일을 만들어보자. 일단 프로젝트 파일들을 확인해보면, 일단 가장 중요한(?) 셋이

  • apr.vcproj – APR 을 위한 프로젝트
  • aprutil.vcproj – APRUtil 을 위한 프로젝트
  • log4cxx.vcproj – log4cxx 를 만들기 위한 프로젝트

그리고 테스트 목적의 실행 파일들이,

  • cppunit.vcproj – C++ unittest 프레임웍
  • log4cxx-standalone-test.vcproj – 이 밑의 프로젝트들은 문자 그대로 해당하는 테스트를 위한 것
  • log4cxx-test.vcproj
  • performance.vcproj
  • console.vcproj
  • stream.vcproj
  • trivial.vcproj

들어있다. 이 것들은 잠시 신경을 끄고(…) 원래의 목적에 맞게 빌드되려면 헤더 경로같은게 아예 하드 코딩으로 절대경로가 되어있는 관계로,

  • Header 파일 경로 (절대경로 → 상대경로)
  • Library 파일 경로 / Object code 생성 위치 (이것도 적당히 MSVC++ 컨벤션으로)
  • 몇 가지 프리프로세서 옵션

등을 설정해줘야 한다. 이 과정은 다음 포스팅에 정리해보겠다[…].