nowe makra warunkowe --with/--without

Jakub Bogusz qboosh w prioris.mini.pw.edu.pl
Nie, 23 Wrz 2001, 11:22:37 CEST


On Sun, Sep 23, 2001 at 10:19:36AM +0200, Filip Kaliński wrote:
> On Sat, 22 Sep 2001 22:14:46 +0200
> Jakub Bogusz <qboosh w prioris.mini.pw.edu.pl> wrote:
> > Właśnie sprawdziłem to, co do czego miałem wątpliwości na spotkaniu.
> > 
> > %{?bcond: }  i  %{!?bcond: }  sprawdzają, czy makro jest zdefiniowane,
> > a nie jaką ma wartość.
> > 
> > Czyli jeżeli mamy gdzieś np.:
> > LDFLAGS="-lcośtam %{?ssl:-lssl -lcrypto}"
> > %configure %{!?ssl:--without-ssl}
> > 
> > To niezależnie czy będzie definicja ssl=0 czy ssl=1, pierwszy warunek
> > będzie spełniony ("-lssl -lcrypto" wejdzie do LDFLAGS), drugi nie
> > (nie będzie dodane --without-ssl).
> > Przeciwna sytuacja będzie tylko jeżeli makro ssl _w ogóle_ nie będzie
> > zdefiniowane.
[...]
> > Dalej "rpm -bp sst.spec" daje odpowiedź "no",
> > "rpm -bp sst.spec --define bcond=1" daje "yes",
> > "rpm -bp sst.spec --define bcond=0" daje także "yes".
> > 
> > Przy czymś takim zostaje tylko używanie:
> > %if %{ssl}
> > cośtam
> > %else
> > cośinnego
> > %endif
> > ...a nie zawsze jest to wygodne... (w testowym przykładzie akurat tak)
> 
> Niekoniecznie, przecież jeśli założymy, że rpm ... -with <sth> definiuje
> <sth>, a rpm ... -without <sth> nie robi _nic_ , to otrzymamy to czego
> chcieliśmy, będzie można uzywać %{<sth>:...}.

Tak. Ale co z wartościami domyślnymi?
Jeżeli wartością domyślną będzie zmienna niezdefiowana - OK; ale to jest
właśnie sytuacja jaką mamy teraz.
Jeżeli wartością domyślną będzie zmienna zdefiniowana (na początku
speca?) to nie bardzo widzę, jak ją zmienić. %undefine w specu działa,
ale by musiało być po %define (ciekawe - rpm nie ma opcji --undefine).


-- 
Jakub Bogusz
http://prioris.mini.pw.edu.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl