Heino Tiedemann <rotkaps_spam_trap(at)gmx.de> wrote:
> Oliver Fromme <olli(at)lurza.secnetix.de> wrote:
> > Heino Tiedemann <rotkaps_spam_trap(at)gmx.de> wrote:
> > > ,----
> > > | -m
> > > | --make-args Specify arguments to append to each make(1) com-
> > > | mand line.
> > > |
> > > | -M
> > > | --make-env Specify arguments to prepend to each make(1) com-
> > > | mand line.
> > > `----
> > >
> > > Die manpage spricht einla von append und einmal von prepend. Wie wirkt
> > > sich was aus? Wie sähen die zugehörigen make aufrufe aus?
> >
> > Disclaimer: Ich benutze portupgrade nicht, aber der obigen
> > Beschreibung nach sähe es so aus:
> >
> > # ... -m foo=bar -M baz=hurz
> > ..
> > baz=hurz /usr/bin/make ... foo=bar
>
> Und was macht das genau für einen unterschied?
¨hm, wenn Dir das nicht klar ist, solltest Du vielleicht
mal ein UNIX-Anfänger-Buch lesen. Ohne Dir damit nahe-
treten zu wollen. :-)
baz=hurz Programm
hat exakt denselben Effekt wie:
(export baz=hurz; Programm)
Sprich: Das Programm wird mit der angegebenen Variablen
im Environment aufgerufen. Das Environment der aufrufenden
Shell bleibt unbeeinflußt.
Dagegen wird bei
Programm foo=bar
einfach nur der String foo=bar als Argument übergeben. Was
das Programm damit anfängt, bleibt ihm überlasssen, und im
Normalfall ist das in der zugehörigen manpage dokumentiert.
So auch im Falle von make(1). <-- Wink mit Zaunpfahl
Im Falle von make kann man mit einem Argument der Form
foo=bar eine make-Variable setzen. Dies ist etwas anderes
als eine Environment-Variable, allerdings wird, wenn in
einem Makefile eine Variable verwendet wird, die nicht als
make-Variable definitiert wurde, per Default ein Fallback
auf eine Environment-Variable gleichen Namens gemacht.
In der Praxis ist es also meistens wurscht, ob man dem make
eine Variable im Environment oder per Argument übergibt.
Es gibt aber auch Ausnahmen.
Wie gesagt: make(1) lesen.
> Anders gefragt, welchen sll ich nehmen, Angenommen:
>
> Port: xemacs
> Argumente: WITH_GTK
>
> portupgrade -m '-DWITH_GTK' -f xemacs
Wie ich in der vorherigen Mail ausgeführt habe, führt das
zu:
make -DWITH_GTK
> O D E R
>
> portupgrade -M '-DWITH_GTK' -f xemacs
Und das führt zu:
-DWITH_GTK make
Eins von den beiden sollte Dir nun spanisch vorkommen. ;-)
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. (On the statement print "42 monkeys" + "1 snake":) By the way, both perl and Python get this wrong. Perl gives 43 and Python gives "42 monkeys1 snake", when the answer is clearly "41 monkeys and 1 fat snake". -- Jim Fulton To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 30 Nov 2005 - 09:00:27 CET