make
여러 개의 파일로 구성된 소프트웨어를 개발하는 도구
make 기능
수정된 파일들을 필요에 따라 다시 컴파일
소스 파일들의 컴파일 순서를 결정
컴파일한 소프트웨어를 원하는 디렉토리에 설치
메뉴얼 페이지를 작성
make 사용법
실행방법
Makefile이 있는 디렉토리에서 'make'를 실행
옵션
-k : 컴파일 과정에서 에러가 발생해도 무시하고 계속 진행
-n : 작업할 내용을 화면에 출력
-f : makefile 대신 사용할 파일을 지정
파라미터
target
타겟명이 파라미터로 지정되면 지정된 타겟을 생성한다.
타겟 명이 지정되지 않으면 makefild에 나열된 타겟들 중에서 첫 번째 타겟을 생성한다.
기본적으로 all 타겟을 첫 번째 타겟으로 설정하고 다른 타겟들은 all target을 만들기 위한 의존 타겟들로 정의 나열
rule
최종 응용 프로그램을 구성하는 각 파일들이 프로그램 소스파일들과 어떻게 관련되어 있는지를 설명
prerequisites
타겟을 만들 때 필요한 파일들의 리스트
Recipe
prerequisites 를 사용하여 타겟을 만드는 방법을 기술
정의 방법
# simple Makefilemyapp: main.o 2.o 3.omain.o: main.c a.h2.o: 2.c a.h b.h3.o: 3.c b.h c.h
Macro
문법
MACRONAME = value,
사용법
{MACRONAME}
Automatic Variable
$@ : 현재 타겟 이름
$* : 확장자를 제거한 타겟 이름
$< : 첫번째 prerequisites 이름
$^ : 전체 prerequisites 리스트
$? : 현재 타겟 생성 이후에 수정된 prerequisites 리스트
OBJS = hello.o hello_msg1 hello_msg2 hello_msg3hello:$(OBJS)hello.o:hello.chello_msg1.o:hello_msg1.chello_msg2.o:hello_msg2.c
Internal Macro
명령어 앞에 추가되는 특수 문자
'-' : 명령어 실행시 발생하는 에러 무시
'@' : 명렁어 실행 전에 화면에 명령어를 출력하지 않음
Phony Target
Phony Target 이란 타게시름이 실제 파일이름이 아닌 타겟을 말한다.
Phony target 지정 방법은 명시적으로 특수 타겟인 ".PHONY"을 사용하여 명시적으로 지정한다.
사용 이유
같은 이름의 파일과 충돌하는 것을 피하기 위한 목적
Make가 phony target을 위한 rule 탐색을 하지 않기에 성능 향상 목적
clean:
'-'를 이용하여 main.o 2.o 3.o를 에러를 무시하고 rm 을 수행
$ make clean
쉘에서 make clean을 주어 makefile 에 정의한 Phony Target을 지정
'Operator System > Linux' 카테고리의 다른 글
쉘 프로그래밍 간단한 문법 (0) | 2017.10.26 |
---|---|
프로세스와 생성방법 (0) | 2017.10.26 |
파일 (0) | 2017.10.26 |
Compile과 라이브러리 (0) | 2017.10.26 |
환경변수 (0) | 2017.10.26 |