차례
- Chapter 1: 빌드 시스템?
- Chapter 2: Makefile 기초
- Chapter 3: 소스 목록 관리를 조금 편리하게
- Chapter 4: 라이브러리와 실행 파일의 분리
- Chapter 5: 디버그 버전과 릴리즈 버전 빌드
- Chapter 6: 빌드모드 별 결과물 관리
- Chapter 7: 빌드 디렉토리 구성
- Chapter 8: make 재귀 호출에 의한 배치 빌드
- Chapter 9: 공유 라이브러리 지원
예제 파일 다운로드 및 실행
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