Linux,  Programming

[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

Leave a Reply

Your email address will not be published. Required fields are marked *