]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.macros
- include %{_smp_mflags} for __make/__scons/__waf/__cmake
[packages/rpm.git] / rpm.macros
index 8602f5ce14765ceaca251a1d8043b3647858ffbf..406e16d2702840d31e1c6c0ecde000edc7521f54 100644 (file)
@@ -9,16 +9,25 @@
 %kgcc_package  gcc
 
 # compiler version
-%cc_version            %{expand:%%global cc_version %(%{__cc} -dumpversion || echo ERROR)}%cc_version
+%cc_version    %{expand:%%global cc_version %(%{__cc} -dumpversion || echo ERROR)}%cc_version
 %cxx_version   %{expand:%%global cxx_version %(%{__cxx} -dumpversion || echo ERROR)}%cxx_version
 
-%__rm                  /bin/rm --interactive=never
+%__rm          /bin/rm --interactive=never
 
 # Build system path macros.
-#
-%__autoconf            autoconf %{?debug:-Wall}
-%__automake            automake -a -c -f --foreign
-%__autopoint           autopoint --force
+%__autoconf    autoconf %{?debug:-Wall}
+%__automake    automake -a -c -f --foreign
+%__autopoint   autopoint --force
+
+# add parallel build flags: -jN
+%__make                make %{?_smp_mflags}
+%__scons       scons %{?_smp_mflags}
+%__waf         waf %{?_smp_mflags}
+%__cmake       cmake %{?_smp_mflags}
+
+%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
+       && RPM_BUILD_NCPUS=$(/usr/bin/getconf _NPROCESSORS_ONLN); \\\
+       [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$(($RPM_BUILD_NCPUS * 2))")
 
 %__gettextize { \
        if grep -qs 'AM_GNU_GETTEXT.*external' configure.{ac,in} ; then \
 #      and that both p and q are package names (i.e. no version/release).
 %_dependency_whiteout  %{nil}
 
-%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
-       && RPM_BUILD_NCPUS=$(/usr/bin/getconf _NPROCESSORS_ONLN); \\\
-       [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$(($RPM_BUILD_NCPUS * 2))")
-
 #-----------------------------------------------------------------
 #
 # (re)definition of %{rpm*flags} with %filterout_* support
 # redefine %_preserve_env in following manner:
 #
 #      # ADDITIONAL_VAR is required because [a good reason here]
-#      %{expand:%%define _preserve_env %_preserve_env ADDITIONAL_VAR}
+#      %define _preserve_env %_preserve_env_base ADDITIONAL_VAR
 
-%_preserve_env PATH HOME TMP TMPDIR
+%_preserve_env_base    PATH HOME TMP TMPDIR
+%_preserve_env %_preserve_env_base
 
-%_clean_env            env -i %(awk 'BEGIN {
+%_clean_env            env -i %(awk -vq="'" -vqq="\\"'\\"" -vq2q="'\\"'" 'BEGIN {
        split("%{?_preserve_env:%_preserve_env}", P);
        for (i in P) {
                p = P[i];
                if (ENVIRON[p]) {
-                       val = ENVIRON[p];
-                       gsub(/[\\\\"$`]/, "\\\\\\&", val);
-                       printf("\\"" p "=" val "\\" ");
+                       split( ENVIRON[p], V, "" );
+                       val = p "=";
+                       for ( j = 1; j in V; j++ ) {
+                               v = V[j];
+                               if ( v == q )
+                                       v = qq;
+                               else if ( v == "\\"" )
+                                       v = q2q;
+                               else if ( v == "\\\\" )
+                                       v = "\\\\\\\\";
+                               else
+                                       gsub( "[^a-zA-Z0-9/:._-]", "\\"&\\"", v );
+                               val = val "" v;
+                       }
+                       printf( val " " );
                }
        }
 }')
@@ -287,7 +305,7 @@ CXXFLAGS="%{rpmcxxflags}" \
 %__unsermake /usr/share/unsermake/unsermake
 
 # Current date
-%date          %(LC_ALL="C" date +"%a %b %d %Y")
+%date          %(LC_ALL=C date +"%a %b %d %Y")
 
 # Example files, programs, scripts...
 %_examplesdir  /usr/src/examples
@@ -301,8 +319,6 @@ CXXFLAGS="%{rpmcxxflags}" \
 # If non-empty "debug" macro defined, add "dbg" suffix to release number
 %_rpmfilename          %%{NAME}-%%{VERSION}-%%{RELEASE}%{?debug:dbg}.%%{ARCH}.rpm
 
-# Requires name = version-release
-%requires_releq()              %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %{N} = %|E?{%{E}:}|%{V}-%{R}\\n' | grep -v 'is not')
 
 %releq_kernel                  %{expand:%%global releq_kernel %(R=$(LC_ALL=C rpm -q --qf '%{N} = %|E?{%{E}:}|%{V}-%{R}' -f %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | grep -v 'is not' | sed -e 's:-headers::;s:-config::'); echo ${R:-ERROR})}%releq_kernel
 %releq_kernel_up               %{expand:%%global releq_kernel_up %(R=$(LC_ALL=C rpm -q --qf '%{N}-up = %|E?{%{E}:}|%{V}-%{R}' -f %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | grep -v 'is not' | sed -e 's:-headers::;s:-config::'); echo ${R:-ERROR})}%releq_kernel_up
@@ -311,9 +327,12 @@ CXXFLAGS="%{rpmcxxflags}" \
 %requires_releq_kernel_up(s:)  Requires%{-s:(%{-s*})}: %releq_kernel_up
 %requires_releq_kernel_smp(s:) Requires%{-s:(%{-s*})}: %releq_kernel_smp
 
-# XXX: why epoch 0 is stripped?
-%requires_eq()         %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %{N} = %|E?{%{E}:}|%{V}\\n' | sed -e 's/ 0:/ /' | grep -v 'is not')
-%requires_eq_to() %(LC_ALL="C" rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}' %2 | grep -v "is not")
+# Requires name = version-release
+%requires_releq()      %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to -r %1 %1}}}
+# Requires: name = version
+%requires_eq()         %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to %1 %1}}}
+# Requires: name = version (version based on querying package %2)
+%requires_eq_to(r)     %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}}
 
 %apache_modules_api %{expand:%%global apache_modules_api %(awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' /usr/include/apache/ap_mmn.h 2>/dev/null || echo ERROR)}%apache_modules_api
 
@@ -795,6 +814,25 @@ fi \
 # Software written in Python language require Python with main version
 %pyrequires_eq() Requires:     %1
 
+# Python 3.x
+# python main version
+%__python3                     python3.0
+%py3_ver                       %{expand:%%global py3_ver %(%{__python3} -c "import sys; print(sys.version[:3])" 2>/dev/null || echo ERROR)}%py3_ver
+
+# directories
+%py3_prefix            %{expand:%%global py3_prefix %(%{__python3} -c "import sys; print(sys.prefix)" 2>/dev/null || echo ERROR)}%py3_prefix
+%py3_libdir            %{py3_prefix}/%{_lib}/python%{py3_ver}
+%py3_scriptdir %{py3_prefix}/share/python%{py3_ver}
+%py3_incdir            /usr/include/python%{py3_ver}
+%py3_sitedir           %{py3_libdir}/site-packages
+%py3_sitescriptdir %{py3_scriptdir}/site-packages
+%py3_dyndir            %{py3_libdir}/lib-dynload
+
+# pure python modules compilation
+%py3_comp              %{__python3} -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
+
+%py3_ocomp             %{__python3} -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('$RPM_BUILD_ROOT'):])"
+
 # Hardlink binary identical .pyc and .pyo files
 %__spec_install_post_py_hardlink {\
 %{!?no_install_post_py_hardlink: __spec_install_post_py_hardlink() { \
@@ -821,6 +859,12 @@ for d in %{py_sitescriptdir} %{py_sitedir} %*; do \
 done \
 %{nil}
 
+%py3_postclean() \
+for d in %{py3_sitescriptdir} %{py3_sitedir} %*; do \
+ [ ! -d "$RPM_BUILD_ROOT$d" ] || find "$RPM_BUILD_ROOT$d" -name '*.py' -print0 | xargs -0r -l512 rm;\
+done \
+%{nil}
+
 # depmod macro
 %depmod() { \
 umask 022; \
@@ -1416,6 +1460,7 @@ compile %{*}\
 %define KernelD $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}                     \
 %define ModprobeD $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{_kernel_ver} \
                                                                                                                                        \
+__install_kernel_modules() {                                                                           \
 local cfgs='%{?with_dist_kernel:%{?with_smp: smp}%{?with_up: up}}%{!?with_dist_kernel: nondist}' \
                                                                                                                                        \
 for MODULE in {%{-m*},}; do                                                                                    \
@@ -1430,6 +1475,8 @@ for MODULE in {%{-m*},}; do                                                                                       \
                        >> %{ModprobeD}$suf/%{-n*}.conf}                                                \
        done                                                                                                                    \
 done                                                                                                                           \
+}                                                                                                                                      \
+__install_kernel_modules                                                                                       \
 %{nil}
 
 # patchset macros
This page took 0.064443 seconds and 4 git commands to generate.