現在、コンパイル以外の目的で使用している Makefile があります。中間ファイルを削除する代わりに、それらを保持したいのですが、それらをgzipしてから、後でMakefileに中間ファイルが存在することを検出させ、それを再計算する代わりに、単純に解凍します。
ターゲットtarget.txtが、それ自体がprereq.txtに依存する、intermediate.txt という中間ファイルに依存しているとします。次のようなものです:
target.txt: intermediate.txt
intermediate.txt: prereq.txt
デフォルトでは、Make は中間ファイルを削除しますが、これを無効にすることができます。ただし、 intermediate.txtの計算には時間がかかるため、自動削除を無効にします。しかし、ファイルmiddle.txtも非常に大きい場合はどうでしょう。ファイルを再計算する代わりに、既存の zip ファイルを Make で解凍したいので、gunzip middle.txt.gzを実行します。
私が尋ねていると思うより大きな質問は、2 つの異なる依存関係に基づいて、ターゲットを作成する 2 つの方法があるということです。前提条件が存在するルールを Make に実行させ、他のルールを無視してもらいたいのですが、圧縮されたバージョンを削除して、中間の前提条件のタイムスタンプが新しい場合にのみ再計算してください。誰か提案はありますか?