글 수 369
make에는 사용자 정의 매크로 외에도, 미리 정의된 내부 매크로가 있다. 다음은 내부 매크로를 정리하였다. 다음은 정의된 내부 매크로이다.
내부 매크로 | 의 미 |
$@ | 현재의 목표 파일(Target) 이름 |
$* | 확장자가 없는 현재의 목표 파일(Target) 이름 |
$< | 현재 목표 파일보다 최근에 갱신된 파일 |
$? | 현재 대상보다 최근에 변경된 필수 조건 파일 이름 |
$^ | 현재 모든 필수 조건 파일들 |
make 예제 3
다음과 같이 이전 makefile의 내용을 내부 매크로를 이용하여 수정한다.
makefile < makefile 작성> |
1: OBJ=main_test.o func1.o func2.o 2: test : $(OBJ) 3: cc -o $@ $^ 4: main_test.o : io.h main_test.c 5: cc -c $< 6: func1.o : io.h func1.c 7: cc -c $*.c 8: func2.o: io.h func2.c 9: cc -c $*.c 10: clean: 11: rm $(OBJ) |
매크로가 잘 동작되는지 실행하여 본다.
$ make
cc -c main_test.c
cc -c func1.c
cc -c func2.c
cc -o test main_test.o func1.o func2.o