nico1999
Goto Top

Variable in Makefile durch Shell Command

Guten Tag,

ich habe ein Makefile namens $(ANDROID_BUILD_TOP)/vendor/beanstalk/config/common.mk, in das ich genau eine einzige Variable namens USE_SU aus einem anderen Makefile namens $(ANDROID_BUILD_TOP)/device/*/$(BS_BUILD)/BoardConfig.mk, das mehrere Variablen besitzt, importieren möchte. Include würde nicht gehen, weil ja dadurch das gesamte andere Makefile (BoardConfig.mk) "eingebunden" werden würde.
ANDROID_BUILD_TOP und BS_BUILD sind für beide Makefiles ansprechbar, somit können die Pfade auch korrekt erkannt werden. Ich dachte mir jetzt ich kann in das common.mk file eine Zeile schreiben die ungefähr so aussieht:
USE_SU := $(shell "irgendein shell command, eventuell mit grep, der aus dem BoardConfig.mk File die USE_SU Variable ausliest")
Das gewünschte Ergebnis wäre dann, dass die USE_SU Variable, wirklich nur die USE_SU Variable, aus der BoardConfig.mk auch in der common.mk Datei verfügbar wäre. Da die BoardConfig.mk von Nutzer zu Nutzer anders aussehen kann, kann ich auch leider nicht festlegen, dass sich die USE_SU Zeile in einer festen Zeile befindet. Außerdem soll USE_SU in der common.mk Datei am Ende nicht so aussehen "USE_SU := USE_SU := true", sondern nur "USE_SU := true". Je nachdem, wie es in der BoardConfig.mk Datei definiert ist, kann die Variable auch "USE_SU := false" heißen oder auch überhaupt nicht vorhanden sein. Wenn diese Zeile mit USE_SU nicht existiert, wäre das aber an sich nicht sehr schlimm, denn später wird in der common.mk Datei nur gecheckt, ob USE_SU := true ist oder nicht. USE_SU darf dabei sogar leer sein und es gibt trotzdem keinen Error. Ich wäre dankbar über einen Shell Command oder vielleicht sogar irgendeine andere Lösung, die mein gewünschtes Ziel erfüllt.

Vielen, vielen Dank schon mal!

Content-Key: 334162

Url: https://administrator.de/contentid/334162

Printed on: April 25, 2024 at 04:04 o'clock

Mitglied: 132895
Solution 132895 Apr 05, 2017 updated at 16:03:39 (UTC)
Goto Top
mit grep und cut
USE_SU := $(shell cat anderebuild.mk | grep '^USE_SU' | cut -d' ' -f3)  
oder mit sed
USE_SU := $(shell sed -rne 's/^USE_SU\s*:=\s*(.*)/\1/ip' anderebuild.mk)   
hauruck
Member: nico1999
nico1999 Apr 05, 2017 at 16:31:47 (UTC)
Goto Top
Ich bin sehr positiv überrascht, wie schnell ich hier eine gute Antwort bekommen habe. Funktioniert perfekt. Vielen Dank!