nowe makra warunkowe --with/--without
Filip Kaliński
fk181140 w students.mimuw.edu.pl
Nie, 23 Wrz 2001, 10:19:36 CEST
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.
>
> Testowy spec:
>
> #v+
> Name: sst
> Summary: sst
> Group: sst
> Version: 1
> Release: 1
> License: sst
>
> %description
>
> %prep
> echo "test %{?bcond:yes}%{!?bcond:no}"
> #v-
>
> 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>:...}.
--
Filip Kaliński <f.kalinski w students.mimuw.edu.pl>
Więcej informacji o liście dyskusyjnej pld-devel-pl