궁선이 2018. 6. 7. 15:10

자동화 or 테스팅 용도로 많이 사용되는 Makefile 사용법을 포스팅하겠습니다.


1. 이름이 'Makefile' 인 파일을 만든다.

-> Makefile.c, Makefile.txt 가 아닙니다. 그냥 Makefile입니다.

->  ex) touch Makefile


2. 실행

-> 콘솔에서 make 를 칩니다.


3. 내부 문법

-> 최 상단의 매크로, targer부터 실행을 합니다. 만약 dependency가 있다면 dependency를 찾아 재귀 호출을 합니다.

-> 아래 코드를 보시면 CC 는 gcc라 선언했습니다. 이렇게 한다면 긴 커맨드를 짧게 축약할 수 있겠죠.,

-> target의 커맨드부터 실행이 됩니다. 그랜데 dependency가 있네요. dependency를 찾아 다음 줄로 넘어갑니다.

-> dependency1을 찾았습니다. 그럼 이제 커맨드를 실행시키고 해당 dependency1를 불러옵니다.

-> dependency2도 마찬가지 입니다.

-> 마지막 clear는 재귀적으로 호출이 되지 않습니다.

-> Makefile은 특정 target만 호출이 그낭합니다. 예를들어 make target, make clear 이런 식으로 호출이 가능합니다.

-> 이렇게 Makefile로 컴파일, 중간파일들 삭제, 설치까지 전부 해결하기도 합니다.



//Makekfile

CC = gcc
 
target : dependency1 dependency2 
      CC -o target dependency1 dependency2

dependency1 : 
      command

dependency2 :
     command

clear :
     rm -rf  *.exe *.o
     
//예제
run : main
	./main

main : main.o
	gcc -o main main.o

main.o : main.c
	gcc -c -o main.o main.c

clean :
	rm -rf *.o