Re: portupgrde: make-args oder make-env?

From: Heino Tiedemann <rotkaps_spam_trap(at)gmx.de>
Date: Wed, 30 Nov 2005 20:01:29 +0100

Oliver Fromme <olli(at)lurza.secnetix.de> wrote:

> 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. :-)

Schon Okay.

Ich weiss ja - ausserhalb von make - durchaus, was Umgebungsvariablen
und was Prozessparameter sind.

Nur in diesem speziellen Fall (portupgrade/make) scheint es mir
irgendwie aufs gleiche hinaus zu laufen (Und das war mein anliegen).

> 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.

Is klar. mein liebstes Beispiel

LANG= man <irgendwas>

(die deutschen manpages sind oft nicht vollständig)

> Dagegen wird bei
>
> Programm foo=bar
>
> einfach nur der String foo=bar als Argument übergeben.

Auch klar.

Xfach bei cdrecord benutzt: cdrecord dev=1,0,0 -eject

> 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

Make scheint Umgebungsvariablen und Parameter aber auf die gleiche
weise zu verwurschten.

> 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.

Danke. ich hatte - mejrt oder weniger - das richtige geahnt.

> In der Praxis ist es also meistens wurscht, ob man dem make
> eine Variable im Environment oder per Argument übergibt.

D A N K E!

> Es gibt aber auch Ausnahmen.

Ich bin gespannt! Welche?

> > 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. ;-)

ja, aber

WITH_GTL=yes make install kommt recht gut, denke ich :-)

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 30 Nov 2005 - 20:46:25 CET

search this site