nowe makra warunkowe --with/--without
Jakub Bogusz
qboosh w prioris.mini.pw.edu.pl
Sob, 22 Wrz 2001, 22:14:46 CEST
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)
--
Jakub Bogusz
http://prioris.mini.pw.edu.pl/~qboosh/
Więcej informacji o liście dyskusyjnej pld-devel-pl