make는 rule에 정의될 recipe를 추론할 수 있다. 


.. 원문을 매끄럽게 번역 하기가 참 어렵다.


make는 우리가 굳이 recipe에 뻔한 내용을 적지 않아도 recipe 내용을 스스로 추론하여 처리할 수 있다고 한다. 


간단한 makefile로 예를 들어보자.


main.o : main.c 

gcc -c main.c -o main.o 


위와같은 target을 작성 후 make를 수행한다고 가정했을 때 


gcc -c main.c -o main.o 는 매우 보편적인 컴파일 명령이기 때문에 target과 prerequisite의 명칭만 보고도 make는 해당 명령어를 충분히 유추해 낼 수있다. 

이렇게 유추하기 쉬운 명령은 굳이 명시하지 않아도 make는 알아서 recipe를 만들어 처리하게 된다. 


해서, 


hello : main.o

gcc -o hello main.o

main.o : main.c


위와 같이 간단하게 target : prerequisite 만 명시해서 make를 수행할 수 있다. 


단, goal이 되는 hello는 직접 recipe를 명시 해야한다. 



위의 예에서 target main.o는 

$(CC) -c -o main.o main.c 를 알아서 수행하게 된다. 


makefile에 recipe가 비어있다면 묵시적 룰을 사용하고 있는 것이다. 


'정리 > Make' 카테고리의 다른 글

[MAKE] Secondary Expansion  (0) 2018.12.17
[make] makefile 이 없는경우 ?  (0) 2018.12.03
[make] makefile의 명칭  (0) 2018.12.03
Posted by $Zero
: