|
|
@@ -195,6 +195,10 @@
|
|
|
%ifdef() %if %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
|
|
|
%ifndef() %if %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
|
|
|
|
|
|
+# macros for package option handling
|
|
|
+%option() %{expand:%%{!?%{1}:%%global %{1} %{2}}%%global _options %%{?_options:%%{_options}&}%{1}=%%{%{1}}}
|
|
|
+%options(p:) %(echo "Package Options:"; opts=`echo "%{?_options:%{_options}}"`; if [ ".$opts" = . ]; then echo " (none)"; else IFS="&"; for opt in $opts; do eval `echo $opt | sed -e 's/^\\(.*\\)=\\(.*\\)$/name="\\1"; value="\\2"/'`; echo dummy | awk '{ printf(" %%%%option %%-%{?-p:%{-p*}}s %%s\\n", name, value); }' name="$name" value="$value"; done; fi)
|
|
|
+
|
|
|
# macro-processor add-on for testing external conditions
|
|
|
%l_test(pfd) %(if [ ".%{?-p:yes}" = .yes ]; then %{l_prefix}/bin/rpm -q %1 >/dev/null 2>&1; rc=$?; elif [ ".%{?-f:yes}" = .yes ]; then test -f %1; rc=$?; elif [ ".%{?-d:yes}" = .yes ]; then test -d %1; rc=$?; fi; if [ ".$rc" = .0 ]; then echo "yes"; else echo "no"; fi)
|
|
|
|