<aside> 💡 Makefile, make 기초 글을 먼저 보면 좋습니다.

</aside>

TL; DR:

SRCS에 소스 파일이, OBJ_DIR에 임시 폴더명이 있다고 가정합니다.

.PHONY: norm
norm: $(SRCS:.c=.norm_flag)
%.norm_flag: %.c
	-norminette $< && touch $@

.PHONY: clean_norm_flags
clean: clean_norm_flags
clean_norm_flags:
	rm -f $(SRCS:.c=.norm_flag)
.PHONY: norm
norm: $(patsubst ./%.c,$(OBJ_DIR)/%.norm_flag,$(SRCS))
$(OBJ_DIR)/%.norm_flag: %.c
	-norminette $< && touch $@

Makefile에 이 코드를 추가하면 make norm수정됐거나 검사에 실패한 파일만 다시 검사합니다.

장점

make는 정말 단순하지만 강력한 도구입니다.

make를 통해 검사한다는 것만으로 아래 두가지 장점을 더 얻을 수 있습니다.

  1. make의 증분 빌드 기능을 활용해 이미 검사한 파일은 다시 검사하지 않습니다.
  2. (GNU make의 경우에는) -j 옵션을 활용해 norm 검사를 병렬로 수행할 수 있습니다.

동작 원리

원리는 정말 간단합니다.

추가로, -norminette $< && touch $@-는 실패해도 무시하라는 의미입니다.

응용

이를 응용해 norminette 뿐 아니라 eslint 등 다른 툴에 대해서도 적용할 수 있습니다!