make명령어는 하나의 프로젝트를 효율적으로 관리하기위해서 사용한다.
Makefile 또는 makefile을 생성하여 그안에 다음과 같은 구조로 구성하여 사용한다.
makefile은 target Dependency command로 구성이 된다.
구조
target : dependency1 dependency2 dependency3 ....
<TAB> command
target : 목표
dependecy : 목표를 위해서 필요한 연관된 파일들
command : 명령문
중요한것은 command를 치기전에 반드시 <TAB>키를 입력하여야한다.
<예제>
number를 위한 목표를 수행하기위해 연관된 one.o two.o main.o 파일이있다.
그리고 number라는 목표를 이루기위해 gcc -o number one.o two.o main.o라는 명령을 수행한다.
각 target마다 연관된 파일과 수행하는 명령이 다르다.
<실행 결과>
make라는 명령을 입력하면 제일 위에있는 number target을 찾아가게 되고 연관된 파일을 보고 one.o two.o main.o 파일의 여부를 확인후 없다면 makefile안의 target을 살펴본다. 그래서 현재 make 라는 명령을 입력하게 되면 number , one.o , two.o , main.o 의 타겟이 실행된다.
그리고 make clean 명령을 입력하게 되면 clean target에 있는 명령이 실행되어 위와 같은 결과를 보여주게 된다.
<치환>
make 파일에서 $(변수명) 을 하면 해당 변수가 가지고 있는 값으로 치환이 된다.
위에서 봣던 예제와 같은 기능을 하는 Makefile을 만들어 보았다.
CC , TARGETS , SOURCES , OBJECTS , CFLAGS , INCLUDE 라는 변수에 각각의 다른 값을 넣었고 치환 할때에 $(변수명)을 사용하여 치환을 하였다.
all : $(TARGETS) target문을 보면 밑에 해당 $(TARGETS)을 실행하는 명령문 입니다.
'보안공부 > Linux' 카테고리의 다른 글
File I/O (0) | 2016.04.11 |
---|---|
정적,동적 라이브러리 생성 (0) | 2016.04.04 |
gcc 컴파일 (0) | 2016.04.04 |
학교수업(스마트모바일설계) (0) | 2016.03.28 |
strip ( 심볼제거 (0) | 2016.03.28 |