Make 기반 빌드 시스템

차례

예제 파일 다운로드 및 실행

make (버전 3.80 이상), gcc 및 mercurial이 설치된 리눅스에서는, 해당 포스트에서 다룬 내용의 예제 Makefile 및 소스 파일들을 다운로드 받아서 직접 실행해 보실 수 있습니다.

처음으로 다운로드 받을 때에는 hg clone을 사용합니다.

$ hg clone http://hg.code.sf.net/p/make-based-build-system/code mbbs

추후 글이 추가되거나 수정되면서, 관련 예제  파일들이 변경된 내용을 업데이트 하고 싶을 때에는, hg pull 명령어를 사용해서 타이핑 횟수를 줄일 수 있습니다.

$ hg pull -u

예제 파일들을 다운로드 받은 이후에는, 해당 Chapter 디렉토리로 이동해서 make의 -f 옵션으로 실행할 Makefile 이름을 지정해서 해당 Makefile로 make를 실행할 수 있습니다. 예를 들어 Chapater3 의 예제 3.4 를 실행하시려면 다음과 같이 하면 됩니다.

$ cd Chapter3
$ make -f Makefile4
$ make -f Makefile4 clean depend all

Chapter7 부터는 빌드 디렉토리 구조가 정해진 관계로, 빌드하기 전에 $PROJ_ROOT 환경 변수가 올바르게 이루어져 있어야 하기 때문에, 다음과 같이 해 주셔야 합니다. ($PROJ_ROOT 가 설정되지 않은 상태에서 빌드를 실행하면, 빌드에 필요한 공용 include 파일을 찾지 못하겠다는 에러 메지시자 나옵니다.)

$ cd Chapter7
$ export PROJ_ROOT=`pwd`
...

Chapter9 부터는 공유 라이브러리가 지원됩니다. 공유 라이브러리를 링킹한 응용 프로그램을 실행할 때에는, 실행 전에 해당 공유 라이브러리가 지정된 디렉토리를 LD_LIBRARY_PATH 환경 변수를 지정해야 합니다. 만약 디버그용(make 실행 시 RELEASE=1 없이 실행)으로 빌드한 경우라면 다음과 같이 설정해 줍니다. (릴리즈용을 실행하는 경우에는 Debug 대신 Release 로 설정해 줍니다.)

$ export LD_LIBRARY_PATH=$PROJ_ROOT/Out/Library/Debug