Условия для EL/SUSE, влияющие на все распределения

У меня есть файл спецификаций для FFmpeg, который нацелен на EL, Fedora, Mageia и SUSE. Из-за версий NASM, доступных для более старых дистрибутивов EL/SUSE, мой файл спецификаций должен выборочно отключать ASM для дистрибутивов, у которых нет новой доступной версии NASM.

./configure --prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" --incdir="%_includedir/ffmpeg" --extra-cflags="%optflags" --optflags="%optflags" --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect \
%if 0%{?el5}%{?el6} || 0%{?suse_version} < 1315
--disable-yasm /
%endif
--disable-programs --disable-avdevice --disable-avformat --disable-swresample --disable-swscale --disable-postproc --disable-avfilter

проблема в том, что ASM отключается на каждом дистрибутиве, включая версии SUSE, более новые, чем 1315. Как сделать так, чтобы условия влияли только на те дистрибутивы, для которых они предназначены?

2 ответа

Решение
./configure --prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" --incdir="%_includedir/ffmpeg" --extra-cflags="%optflags" --optflags="%optflags" --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect \
%if 0%{?el5}%{?el6} || 0%{?suse_version} && (0%{?suse_version} == 0 || 0%{?suse_version} < 1315)
--disable-yasm \
%endif
--disable-programs --disable-avdevice --disable-avformat --disable-swresample --disable-swscale --disable-postproc --disable-avfilter

IIRC, он делает простое сравнение строк, а не числовые, а строку 0 < 1 всегда верно.

Попробуйте защитить это с:

%{?suse_version}0 < 13150

или же

0%{?suse_version} < 01315

вместо.

Другие вопросы по тегам