2017-07-18 5 views
0

ich ein Make Argument haben, die drei Werte haben kann, sagen A, B und C.Was sind die besten Möglichkeiten, mehrere Bedingungen im Makefile zu überprüfen?

ich folgendes in Make-Datei geschrieben:

ifeq ("$(PLATFORM)", "A") 
    echo "PLATFORM A" 
else ifeq("$(PLATFORM)", "B") 
    echo "PLATFORM B" 
else 
    echo "PLATFORM C" 

damit ich nicht alle drei Fälle ausführen kann.

Ich benutze:

make PLATFORM="A" 
make PLATFORM="B" 
make PLATFORM="C" 
make 

ich ähnliche Lösungen in Stack-Überlauf gefunden, aber nichts funktioniert für mich

ich GNU 3,81

+0

Sie sollten zuerst (für sich selbst) definieren, welche Art von Wert PLATFORM wirklich trägt. Natürlich möchten Sie, dass es sich um eine Sammlung von Plattformnamen handelt, nicht um einen einzelnen, aber Ihre programmierten Fälle stimmen nicht mit dieser Definition überein. – Vroomfondel

Antwort

0

Der Fehler in der Make-Datei machen verwende die fehlende space nach ifeq.

Allerdings sehe ich nach besseren Lösungen, die mehr portable

0

Sie sind brauchen mehr Kontext zu schaffen, was Sie erreichen wollen. Ich könnte so etwas wie folgt verwenden:

include platform/$(PLATFORM).mk 

und getrennte Makefiles für jede Plattform im platform Unterverzeichnis.

+0

Hier ist Plattform ein Make-Argument, das ich als Beispiel genommen habe. Plattform ist nicht die wörtliche Plattform. Sie können es durch jede andere Variable ersetzen –

+0

Aber das ist kein Grund für sich, dass die 'include' Direktive nicht funktionieren würde. –

Verwandte Themen