zwingen, um die Voraussetzungen zu schaffen, in Makefiles

Habe ich einen Dritten makefile, und ich würde gerne eines der Ziele (T1) nicht gebaut werden, bis eine andere, custom target (T2) wird erst gebaut. Normalerweise würde dies erreicht werden, indem Sie T2 als Voraussetzung für einen T1. ABER, T1 verwendet die $^ in einem seiner Regeln.. so, durch hinzufügen der Voraussetzung, dass ich am Ende brechen die build - ... Was ich habe ist dieses:

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

Ist es ein guter Weg, um sicherzustellen, dass T2 vor T1? (Hinweis: das Beispiel oben ist wirklich vereinfacht, indem ein bit. T1 ist eigentlich die vmlinux target innerhalb des Linux-kernel-makefile, so umschreiben es ist nicht nur schwierig, es macht den code nicht portabel. Ich kann auch gar nicht laufen, T2, vor dem Aufruf auf den kernel durch einige andere Abhängigkeiten).

InformationsquelleAutor John | 2013-01-10
Schreibe einen Kommentar