中間ファイルを消さない

パターンマッチなどでレシピを書いた場合、そのファイルは重要でないとみなされる(ぽい)。 そのようなファイルが別のファイルを作るための中間ファイルとして作成された場合、ビルド後に削除されてしまう。

それを防ぐためには、

.SECONDARY:

というダミーターゲットを定義しておく。上の一行をどっかに書いとけば良い

ディレクトリを依存に指定するときは注意

例えば、productsの下に生成物を作るような場合、productsがなくてエラーになるのを防ぐために

products/hoge: products
	...

products:
	mkdir -p $@

とかって書くと、products/hogeが作成されるとproductsディレクトリの変更時刻が更新されてしまって、常にproducts/hogeのレシピが実行されてしまう。