GNU Make > PHONY ターゲット
ターゲット名と同名のファイルが存在した時に
実際のファイルではない擬似ターゲット名であることを
明示的に宣言するためのものが、.PHONYターゲット
$ ls -lというMakefileを実行すると
合計 4
-rw-r--r-- 1 satoshi satoshi 27 2009-09-02 21:57 Makefile
-rw-r--r-- 1 satoshi satoshi 0 2009-09-02 21:57 foo
$ cat Makefile
foo:
echo "foo"
$ makeとなってしまう。fooはファイル名ではなく、
make: `foo' は更新済みです
実際のファイルではない擬似ターゲット名であることを
明示的に宣言するためのものが、.PHONYターゲット
$ cat Makefileこれで意図した動作になりました。
.PHONY: foo
foo:
echo "foo"
$ ls -l
合計 4
-rw-r--r-- 1 satoshi satoshi 27 2009-09-02 21:57 Makefile
-rw-r--r-- 1 satoshi satoshi 0 2009-09-02 21:57 foo
$ make
echo foo
foo