antlrパーサーの出力ファイルを生成するmakefileルールがあります。
XLexer.c XLexer.h XParser.c XParser.h X.tokens: X.g
$(ANTLR) $(ANTLRFLAGS) X.g
これは正常に機能し、Xgが変更されたときに、結果のすべてのファイルを期待どおりに再構築します。しかし、-jフラグを指定して並列makeを実行すると、上記のルールはファイルごとに1回実行されるため、この場合、antlr呼び出しは5回並列に実行されます。
このタイプのルールを実行する方法はありますが、コマンドを1回だけ実行しますか?.NOPARALLEL:ルールについては知っていますが、それでは目的が果たせません。ロックファイルを使用して、複数の実行がすでに実行されている場合に複数の実行を終了させようとしましたが、成功しませんでした。