[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

make importiert nicht shell-Umgebungsvariablen



Hi,

beim Erstellen und Testen diverser Makefiles auf meinem System (testing/unstable) ist mir
aufgefallen, dass die Umgebungsvariablen der Shell (Bash 3.1) nicht importiert werden, was
ja normalerweise der Fall sein sollte, oder? Das Test-Makefile (make-Version 3.81)

os:
	echo $(OSTYPE)

liefert dann

andre@orca:newton 192>make --warn-undefined-variables
makefile:2: Warnung: undefinierte Variable »OSTYPE«
echo

und somit nur eine schicke Leerzeile, obwohle die Variable laut "set" definiert ist.
andre@orca:newton 193> set |grep OSTYPE
46:OSTYPE=linux-gnu

Insgesamt ist mir folgendens aufgefallen:
Wenn ich Variablen in meiner .bashrc eintrage, so sind sie dann auch im Makefile verfügbar
(das enprach ca. der Ausgabe von "printenv")
Variablen, die "set" anzeigt (wie z. B. OSTYPE), nicht aber "printenv", stehen nicht zur
Verfügung. Deswegen also meine Fragen:

1) Welche Variablen genau spuckt printenv aus?
2) Welche Variablen im teilweisen Gegensatz dazu spuckt "set" aus?
3) Wo genau werden denn bloß die ganzen (Standard)-Variablen gesetzt, die mir "set"
ausgibt, ein grep -R in /etc    liefert mir weder OSTYPE, HOSTNAME, HOSTTYPE usw., weder
in /etc/profile, /etc/skel noch sonst wo.
3)Welche Umgebungsvariablen liest make denn nun genau aus?

Irgendwas in dem ganzen Variablen-Definier-und-Gebrauch-Durcheinander habe ich wohl falsch
verstanden, aber was?

Vielen Dank und viele Grüße,
Andre






Reply to: