공부하지 않으면 절대 유추할 수 없는 기호들을 쓰는 ㅈ같은 c 빌드 툴
make execution file by makefile
meta
gcc source file name can be placed anywhere except between option and operand
options
$ make config /* 설정 작업을 한다 */ $ make dep /* 화일 의존성을 검사한다 */ $ make clean /* 만든 화일들을 지우고 깨긋한 상태로 만든다 */ $ make zImage /* zImage(압축커널)를 만든다 */ $ make zlilo /* 커널을 만들고 LILO를 설정한다 */ $ make bzImage /* bzImage(비대압축커널)를 만든다 */ $ make modules /* 커널 모듈을 만든다 */ $ make modules_install /* 커널 모듈을 인스톨한다 */
suffix rule
$< 입력 일을 의미합니다. 콜론의 오른쪽에 오는 패턴을 치환합니다.
$@ 출력 파일을 의미합니다. 콜론의 왼쪽에 오는 패턴을 치환합니다.
$* 입력 파일에서 꼬리말(.c, .s 등)을 떼넨 화일명을 나타냅니다.
pattern rule
make file
목표: 목표를 만드는데 필요한 구성요소들...
목표를 달성하기 위한 명령 1
목표를 달성하기 위한 명령 2
conventions
$ make -f Makefile.platform : convention
CC: 컴파일러
CFLAGS: 컴파일 옵션
OBJS: 중간 산물 Object 파일 목록
TARGET: 빌드 대상(실행 파일) 이름
LDFLAGS: 링커 옵션
LDLIBS: 링크 라이브러리
ex. ${CFLAGS}