Ich versuche ein nicht-rekursives make-Build-System in meinem aktuellen Projekt zu implementieren. Was ich damit zu tun habe, sind Variablenbereiche. Zielspezifische Variablen passen nicht zu meinen Bedürfnissen, da Variablen oft Ziele und keine Voraussetzungen definieren. Was ich brauche, ist:
Makefile1:
%Vor%Makefile2:
%Vor%Und die gewünschte Ausgabe ist 'original_value'.
Gibt es irgendwelche Strategien, um es real zu machen?
EDIT: Die einzige Lösung, die ich im Moment kam, ist, mich zu erzwingen und zu organisieren, um alle Includes am Ende jedes einzelnen Makefiles zu platzieren und die direkte Variablenzuweisung zu verwenden: =
Eine Strategie ist die altmodische Lösung für Variablennamen-Kollisionen, wenn Sie nur globale Variablen haben: Fügen Sie Ihren Variablennamen ein Präfix in einer Form von namespaces von arm-man hinzu.
Makefile1:
%Vor%Makefile2:
%Vor%Hey presto, mit einer Konvention wie dieser ist es, als ob jedes Makefile seine eigenen lokalen Variablen hat (oder zumindest seine eigenen Variablen in einem Namespace, die nicht mit anderen Makefiles kollidieren).