타겟절 : 의존성
(tab)명령어
all : all 옵션이 없는 경우 제일 첫 번째 Target만 실행 시키고 종료한다.
CC = gcc
"" = "" : 변수를 선언하는 방법이다. 반복적으로 사용하는 부분을 변수 처리를 해주면 간단하게 줄여 사용할 수 있다. 변수를 사용할 때는 $를 붙여서 사용해준다.
${TARGET} : ${OBJS}
${CC} -c -o $@ $<
cc -o 출력파일명 필요한파일명
이었는데 이렇게 하면 바로 실행파일을 만들게 되니까 c옵션을 줘서 cc -c -o 출력파일명 필요한 파일명
으로 오브젝트 파일을 빌드해줘야 한다.
$@ : 현재 타겟의 이름
$^ : 의존 파일 목록
.c.o :
${CC} -c -o $@ $<
--> %.o : %.c
.c.o : .c파일들을 .o로 모두 바꿔주겠다. --> 요즘은 %.c %.o 이런식의 표현으로 쓴다고 한다.
https://stackoverflow.com/questions/9233447/what-is-the-makefile-target-c-o-for
$< : 의존 파일 목록의 첫 번째 파일에 대응된다. (하나만 대응 되게 되는 것임)