Просмотр исходного кода

provide brand-new extensions: %option and %options macros

Ralf S. Engelschall 23 лет назад
Родитель
Сommit
ad3214f5b7
2 измененных файлов с 6 добавлено и 2 удалено
  1. 2 2
      openpkg/openpkg.spec
  2. 4 0
      openpkg/rpmmacros

+ 2 - 2
openpkg/openpkg.spec

@@ -39,8 +39,8 @@
 #   o any cc(1)
 
 #   the package version and release
-%define       V_openpkg 20021218
-%define       R_openpkg 20021218
+%define       V_openpkg 20021230
+%define       R_openpkg 20021230
 
 #   the used software versions
 %define       V_rpm     4.0.2

+ 4 - 0
openpkg/rpmmacros

@@ -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)