こんにちは。てぃろです。
今回はちょっとはまったので備忘のためにメモしておきます。
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コマンドを学んでもらうとして、パパっと使うだけならこれくらいの認識でサクッと使えるのではないかなと思います。