[Linux] make: ‘test’ is up to date
$ make test make: `test' is up to date.
Linux에서 작업을 하면서 Makefile을 많이 사용하게 되는데, 사용하다가 위와 같이 수행되지 않는 경우가 발생했다. 아래는 수행하려는 Makefile 내부 코드다.
test: @echo "Run Test" cd test; \
원인
해당 Makefile 위치에 수행하고자 하는 명령어와 동일한 directory가 존재해서 발생하는 것이였다. make
명령은 동일한 위치에 해당 directory가 존재하는지 확인하는 과정에서 발생한 것이였다.
Solution 1
test: dummy @echo "Run Test" cd test; \ dummy:
위와 같이 dummy
타겟을 추가하면 해결된다.
Solution 2
이런 문제가 발생하기 때문에 Makefile에선 다음과 같은 방법을 제공한다.
.PHONY : test test: @echo "Run Test" cd test; \
.PHONY
를 통해 타겟을 표시하면 해당 타겟을 수행 할 때는 directory를 확인하지 않는다.
Reference
- https://kldp.org/node/76289