サード パーティの makefile があり、カスタム ターゲット (T2) が最初にビルドされるまで、ターゲット (T1) の 1 つをビルドしないようにしたいと考えています。通常、これは T2 を T1 の前提条件にすることによって達成されます。しかし、T1 はそのルールの 1 つで $^ を使用します。そのため、前提条件を追加することで、ビルドを壊すことになります...私が持っているものは次のとおりです。
T1: x y z T2
$(MAKE) -j $^;
# fails because T2 should not be passed to the make!!!
.PHONY: T2
T2:
#do some linking and prep for T1
T2 が T1 の前に実行されるようにする良い方法はありますか? (注: 上記の例は、実際には少し単純化されています。T1 は、実際には Linux カーネル makefile 内の vmlinux ターゲットであるため、書き直すのは難しいだけでなく、コードの移植性がなくなります。また、T2 を実行する前に T2 を実行することはできません。他の依存関係のために、カーネルで make を呼び出します)。