.SUFFIXES : .o .c .s # 여기서 사용할 확장자를 명시 .c.o : $(CC) $(CFLAGS) -c $< .s.o : $(AS) $(ASFLAGS) -o $@ $<
확장자 규칙에서만 사용가능한 내부 매크로
$< : 필요 항목 $* : 필요 항목의 이름에서 확장자를 제외한 부분
library 의 사용
libops(interact.o) # libops 라이브러리 안에 포함된 interact.o 화일만 지정 ${LIB}(interact.o) libops((_parse)) # interact.o 안에 있는 _parse 모듈만 지정
라이브러리 안에 있는 둘 이상의 파일에 대해 각각 다른 명령을 사용할 경우 - 이중 콜론 사용
libops :: interact.c ${CC} O c DENTRY interact.c ar r $@ interact.o rm f interact.o libops :: sched.c ${CC} O c DRECRD sched.c 주저리 주저리..
null 확장자
.c : # .c 파일로부터 확장자가 없는 이름의 화일을 만든다 $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
규칙 무효화
기본 확장자 규칙이 작동하지 않도록 할 때:
.c.a : true # 명령이 있어야 하므로 true (1) 을 사용한다