make의 타겟을 건너뛸 수 있는 방법이 있나요?

make의 타겟을 건너뛸 수 있는 방법이 있나요?

소프트웨어가 올바르게 컴파일되고 실행되도록 패치를 추가하려고 하는데, 안타깝게도 변경 사항을 추가하기 위해 계속해서 성가신 코드 스타일 확인 오류가 발생합니다. 이 단계를 건너뛸 수 있는 방법이 있나요?

답변1

makefile이 다음과 같은 경우:

code-style-check: source.c
        tool-you-dont-have

myprogram: code-style-check source.c
        compile source.c -o myprogram

그런 다음 tool-you-dont-have다음이라는 파일을 생성하여 이 실행을 피할 수 있습니다 code-style-check.

touch code-style-check

code-style-checkMake는 그것이 현재보다 최신인지 확인 source.c하고 다시 빌드하려고 시도하지 않을 것입니다.

code-style-check선언된 가짜 대상이 사용되는 경우 이 방법은 작동하지 않습니다 .PHONY: code-style-check. 가짜 대상은 파일 이름이 아닙니다.

종속성 이 있는 경우 code-style-check다시 빌드할지 여부를 결정할 때 더 이상 중요하지 않습니다 myprogram. 위의 예에서는 code-style-check종속성이 없으므로 이는 중요하지 않습니다.myprogram

가짜 대상에서도 작동하는 GNU make의 또 다른 솔루션은 다음을 실행하는 것입니다.

make -o code-style-check …

이 옵션은 make에게 이미 존재하는 파일보다 오래된 파일을 -o고려하고 ( 이미 존재하는 파일보다 최신 파일을 만드는 것과는 반대로) 다시 빌드하려고 시도하지 않도록 지시합니다. 다시 한번 말하지만, 종속성도 필요한 경우에는 빌드되지 않습니다.code-style-checktouchcode-style-checkmyprogram

관련 정보