Search
Duplicate
🐏

make 응용 - 파일을 플래그로 사용하기

간단소개
Libft 필수!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Makefile
Scrap
태그
makefile
9 more properties
Makefile, make 기초를 먼저 보는 것을 권장합니다.

파일을 플래그로 사용하기

make는 파일이 최신 상태인지 확인할 때 파일이 마지막으로 수정된 시각을 비교합니다.
이 점을 이용해서 파일을 플래그로 사용할 수 있습니다.

예시 - 같은 이름의 target

예시로 make allmake bonus가 같은 이름의 target을 생성하는 경우를 보겠습니다.
all: $(OBJS_MANDATORY) $(CC) -o $(TARGET) $^ bonus: $(OBJS_BONUS) $(CC) -o $(TARGET) $^ .PHONY: all bonus
Makefile
복사
all bonus가 같은 $(TARGET)을 만드는 Makefile 예시
make all을 실행한 후에 make all을 다시 실행하면 아무 일도 일어나지 않길 원할 수 있습니다.
마지막으로 $(TARGET)을 만든 규칙이 all인지 bonus인지 나타내는 플래그를 만들어 보겠습니다.
LAST_ALL이라는 파일이 있으면 $(TARGET)all로 만든 것입니다.
LAST_BONUS이라는 파일이 있으면 $(TARGET)bonus로 만든 것입니다.
규칙을 이렇게 정하면 쉽게 목적을 달성할 수 있습니다.
all: LAST_ALL bonus: LAST_BONUS .PHONY: all bonus LAST_ALL: $(OBJS_MANDATORY) rm -f LAST_BONUS $(CC) -o $(TARGET) $^ touch $@ LAST_BONUS: $(OBJS_BONUS) rm -f LAST_ALL $(CC) -o $(TARGET) $^ touch $@
Makefile
복사
make all 이후 make all을 하면 아무 일도 일어나지 않게 최적화한 Makefile
Makefile을 이렇게 작성하면 마지막으로 $(TARGET)을 만든 규칙이 뭔지에 따라서 동작이 달라집니다.

마무리

파일을 플래그로 사용하는 것은 수많은 응용 방법 중 하나입니다.
파일을 플래그로 사용하기 위해 특별한 문법이 사용된 것도 아닙니다.
make는 단순하지만 강력한 도구입니다! 다양한 작업에 make를 활용할 수 있을 거에요
같이 보면 좋은 글