makeでup to dateとか言われたらPHONYを使おう:Tipsメモ

こんにちは。てぃろです。

今回はちょっとはまったので備忘のためにメモしておきます。

up to dateとか言われたら、ディレクトリ名を確認しよう

最近Goでマイクロサービスを書くことがあるので、タスクランナーとしてmakeをよく使うことになりました。そこでmakeコマンドを追加・変更することがありました。

例えば、make dummy というコマンドを書くと以下のようなエラー文が出てきたとします。

make: `dummy' is up to date.

makeコマンドにした文字列と同じ文字列のディレクトリがあったりするとこのように出力されてmakeがうまく動きません。つまり、このようになるときには dummy というディレクトリがあったりします。

要するに、makeで指定した文字列で何を指定してるかわからなくなっちゃうんでしょうね。

PHONYを指定しよう

そこで、これはmakeコマンドだぞ、と指定するためにPHONYを指定してあげます。

PHONYを指定してあげる。

.PHONY: dummy

dummy:
	touch dummy.txt

このようにコマンドの定義の前に.PHONYで書いてあげるとよいです。

最後に

この話は以下でも紹介されていましたし、ググればいくらでも例は出てきますね。それでもパッと出てくるとわからなくてハマっちゃうことが多かったので記憶定着のためにも記事してみました。

詳しくはmakeコマンドを学んでもらうとして、パパっと使うだけならこれくらいの認識でサクッと使えるのではないかなと思います。