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
[EMAIL PROTECTED]: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.
[EMAIL PROTECTED]: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
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)