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