まったりするmatayu

ツイートにゴミがついた感じのブログ

フォニイ 星街すいせい

www.youtube.com

とても格好いい。phonyという単語は「偽の、インチキの」という意味を持っている。

ところでフォニイといえばMakefileのPHONYを思い出したのでMakefileのPHONYとは何かを書いてみる。

qiita.com

Makefileにはtargetという概念があり、これは暗黙的にtarget名と同じ名前のファイルを生成することを指す。例えば以下のようにtarget cleanをMakefileで定義したとする。

clean: 
    echo 'hello'

これはmake cleanで実行可能であるが、もしすでにclean.oなどの名前がcleanのファイルが存在すると、targetはすでにcleanのファイルは作成されているとして実行されない。ここで使用するのが.PHONYである。以下のように.PHONY: cleanと記述することで、target cleanがファイルの生成をしないことを明示する事が可能でありこの場合はmake cleanでtarget cleanが実行される。

.PHONY: clean
clean:
    echo 'hello'