Makefile は、中間ファイルを介して別のファイルからファイルを生成し、中間ファイルを自動的に削除します。
.INTERMEDIATE $(B_FILES)
%.b : %.a
a_to_b $<
%.c : %.b
b_to_c $<
all: $(A_FILES)
上記は簡単な例です。.c ファイルを生成し、中間の .b ファイルを削除します。具体的に作成された場合、中間 .b ファイルを生成して保持することができます。
$ make my_file.b
ただし、中間ファイルを生成するルールを追加すると、次のようになります。
b_files: $(B_FILES)
すべての中間ファイルを作成することは可能です:
$ make b_files
ただし、.b ファイルは中間ファイルとしてリストされているため、make は作成後にそれらを削除します。この特定のターゲットが使用されているときに make がそれらを削除しないようにすることは可能ですか?
答えは b_files ルールで .INTERMEDIATE を再定義する必要があると思いますが、特定のルール内でターゲットを再定義できるかどうかはわかりません。