Makefileを書くときに気をつけること
make中間ファイルを消さない
パターンマッチなどでレシピを書いた場合、そのファイルは重要でないとみなされる(ぽい)。 そのようなファイルが別のファイルを作るための中間ファイルとして作成された場合、ビルド後に削除されてしまう。
それを防ぐためには、
.SECONDARY:
というダミーターゲットを定義しておく。上の一行をどっかに書いとけば良い
ディレクトリを依存に指定するときは注意
例えば、products
の下に生成物を作るような場合、products
がなくてエラーになるのを防ぐために
products/hoge: products
...
products:
mkdir -p $@
とかって書くと、products/hoge
が作成されるとproducts
ディレクトリの変更時刻が更新されてしまって、常にproducts/hoge
のレシピが実行されてしまう。