Ich benutze GNU make, und einschließlich einer 3rd-Party-Bibliothek in einem Projekt, das ein Build-System hat, das berserk geht, wenn CFLAGS
in der Umgebung definiert ist, wenn es aufgerufen wird. Ich möchte CFLAGS
aus anderen Gründen in meiner Umgebung definiert haben. Die Build-Bibliothek wird von einem anderen Make-Datei aufgerufen wird, so dass ich beispiels sagen .:Ist es möglich, eine Umgebungsvariable in einem Makefile "zu deaktivieren"?
3rdparty: $(MAKE) -f Makefile.3rdparty
Aber ich möchte sicher sein, dass CFLAGS
ungesetzt ist, wenn ich auf der 3rd-Party-Makefile aufrufen machen. Die nächste Sache, die ich finden kann, ist zu sagen:
CFLAGS:=
Aber das läßt noch CFLAGS
Satz in der Umgebung, es ist nur eine leere Zeichenfolge. Neben etwas zu tun, scheußlich wie wenn man sagt:
3rdparty: bash -c "unset CFLAGS; $(MAKE) -f Makefile.3rdparty"
Gibt es eine einfache Art und Weise zu „entschärft“ die CFLAGS
Variable aus meiner primären Make-Datei, so dass es nicht vorhanden ist, überhaupt in dem Umgebung, wenn die Third-Party-Bibliothek aufgerufen wird?
Es tut! Ich wusste nichts über das Keyword "unexport", jetzt tue ich es. Vielen Dank! –
@JayWalker, bitte markieren Sie diese Antwort als akzeptiert, wenn Sie zufrieden sind. –