私は次のことをしようとしています。foo-bin
1つの入力ファイルを受け取り、2つの出力ファイルを生成するプログラムがあります。このための単純なMakefileルールは次のようになります。
file-a.out file-b.out: input.in
foo-bin input.in file-a.out file-b.out
ただし、これはmake
、両方のターゲットが同時に生成されることを決して意味しません。これはmake
シリアルで実行する場合は問題ありませんが、make -j16
同じようにクレイジーにしようとすると問題が発生する可能性があります。
問題は、そのような場合に適切なMakefileルールを作成する方法があるかどうかです。明らかに、それはDAGを生成しますが、どういうわけか、GNU makeマニュアルは、このケースの処理方法を指定していません。
同じコードを2回実行し、1つの結果のみを生成することは問題外です。計算に時間がかかるためです(数時間と考えてください)。データファイルの一部のみを処理する方法を知らないGNUPLOTへの入力として頻繁に使用されるため、1つのファイルのみを出力することもかなり困難です。