GNU make を使用して、「--jobs」オプションを使用すると、同時にスケジュールされない一連のターゲットを作成できますか?
バックグラウンド:
これをもう少し具体的にするために、次の形式のメイクファイルを検討してください。
p1: ...deps... # no parallelization conflicts (can run at the same time as p*, e*)
...rules...
p2: ...deps... # no parallelization conflicts (can run at the same time as p*, e*)
...rules...
p3: ...deps... # no parallelization conflicts (can run at the same time as p*, e*)
...rules...
e1: ...deps... # cannot run at same time as any other e*
...rules...
e2: ...deps... # cannot run at same time as any other e*
...rules...
e3: ...deps... # cannot run at same time as any other e*
...rules...
私がする必要がある主なことは、e1、e2、および e3 が同時に処理されないようにすることです。これは、リソースが限られている組み込みデバイスで何らかの作業を行うためです。それらの複数のものが同時に実行されている場合、それらはクラッシュします。p1、p2、および p3 は、任意の e* ジョブを含む任意のものと並行して実行できます。
実際のメイクファイルには、約 10 レベルの深さの依存関係ツリーを持つ数千のターゲットがあることに注意してください。そのため、(a) make を連続して実行する必要がなく、(b) の利点を保持する方法があることを願っています。メイクファイルで依存関係ツリーをエンコードします。