From 21996824a36c3d5abcb5edf038348c73787e35ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sun, 5 Dec 2010 14:56:11 +0200 Subject: [PATCH] Update compiler executable lists, make their package triggers more targeted. --- ccache.spec | 99 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/ccache.spec b/ccache.spec index c490b36..717f0a6 100644 --- a/ccache.spec +++ b/ccache.spec @@ -1,8 +1,15 @@ -%define compilers gcc g++ cc c++ gcc296 g++296 gcc32 c++32 g++32 gcc34 c++34 g++34 gcc44 g++44 g++-libstdc++-so_7 avr-gcc avr-c++ avr-g++ arm-gp2x-linux-gcc arm-gp2x-linux-c++ arm-gp2x-linux-g++ msp430-gcc -%define pkgs gcc, gcc-c++, compat-gcc, compat-gcc-c++, compat-gcc-32, compat-gcc-32-c++, gcc34, gcc34-c++, compat-gcc-34, compat-gcc-34-c++, gcc44, gcc44-c++, libstdc++so7-devel, avr-gcc, avr-gcc-c++, arm-gp2x-linux-gcc, arm-gp2x-linux-gcc-c++, msp430-gcc +%ifarch x86_64 +%global archs %{ix86} x86_64 +%else +%ifarch %{ix86} +%global archs %{ix86} +%else +%global archs %{_target_cpu} +%endif +%endif %define abs2rel() perl -MFile::Spec -e 'print File::Spec->abs2rel(@ARGV)' %1 %2 -%{expand: %%define relccache %(%abs2rel %{_bindir}/ccache %{_libdir}/ccache)} +%global relccache %(%abs2rel %{_bindir}/ccache %{_libdir}/ccache) Name: ccache Version: 3.1.3 @@ -45,19 +52,33 @@ make %{?_smp_mflags} %install -rm -rf $RPM_BUILD_ROOT %{name}-%{version}.compilers +rm -rf $RPM_BUILD_ROOT + make install DESTDIR=$RPM_BUILD_ROOT + install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d install -pm 644 %{name}.sh %{name}.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d -install -dm 755 $RPM_BUILD_ROOT%{_libdir}/ccache -for name in %{compilers} ; do - for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do - ln -s %{relccache} $RPM_BUILD_ROOT%{_libdir}/ccache/$c - echo "%ghost %{_libdir}/ccache/$c" >> %{name}-%{version}.compilers - done -done + install -dm 770 $RPM_BUILD_ROOT%{_var}/cache/ccache +# %%ghost files for ownership, keep in sync with triggers +install -dm 755 $RPM_BUILD_ROOT%{_libdir}/ccache +for n in cc gcc g++ c++ ; do + ln -s %{relccache} $RPM_BUILD_ROOT%{_libdir}/ccache/$n + for p in avr- arm-gp2x-linux- msp430- ; do + ln -s %{relccache} $RPM_BUILD_ROOT%{_libdir}/ccache/$p$n + done + for s in 32 34 4 44 ; do + ln -s %{relccache} $RPM_BUILD_ROOT%{_libdir}/ccache/$n$s + done + for a in %{archs} ; do + ln -s %{relccache} \ + $RPM_BUILD_ROOT%{_libdir}/ccache/$a-%{_vendor}-%{_target_os}-$n + done +done +find $RPM_BUILD_ROOT%{_libdir}/ccache -type l | \ + sed -e "s|^$RPM_BUILD_ROOT|%%ghost |" > %{name}-%{version}.compilers + %check make check @@ -67,25 +88,46 @@ make check rm -fr $RPM_BUILD_ROOT +%define ccache_trigger(p:) \ +%triggerin -- %{-p*}\ +for n in %* ; do\ + [ ! -x %{_bindir}/$n ] || ln -sf %{relccache} %{_libdir}/ccache/$n\ + for a in %{archs} ; do\ + [ ! -x %{_bindir}/$a-%{_vendor}-%{_target_os}-$n ] || \\\ + ln -sf %{relccache} %{_libdir}/ccache/$a-%{_vendor}-%{_target_os}-$n\ + done\ +done\ +:\ +%triggerpostun -- %{-p*}\ +for n in %* ; do\ + [ -x %{_bindir}/$n ] || rm -f %{_libdir}/ccache/$n\ + for a in %{archs} ; do\ + [ -x %{_bindir}/$a-%{_vendor}-%{_target_os}-$n ] || \\\ + rm -f %{_libdir}/ccache/$a-%{_vendor}-%{_target_os}-$n\ + done\ +done\ +:\ +%{nil} + +%ccache_trigger -p arm-gp2x-linux-gcc arm-gp2x-linux-cc arm-gp2x-linux-gcc +%ccache_trigger -p arm-gp2x-linux-gcc-c++ arm-gp2x-linux-c++ arm-gp2x-linux-g++ +%ccache_trigger -p avr-gcc avr-cc avr-gcc +%ccache_trigger -p avr-gcc-c++ avr-c++ avr-g++ +%ccache_trigger -p compat-gcc-32 cc32 gcc32 +%ccache_trigger -p compat-gcc-32-c++ c++32 g++32 +%ccache_trigger -p compat-gcc-34 cc34 gcc34 +%ccache_trigger -p compat-gcc-34-c++ c++34 g++34 +%ccache_trigger -p gcc cc gcc +%ccache_trigger -p gcc-c++ c++ g++ +%ccache_trigger -p gcc4 cc4 gcc4 +%ccache_trigger -p gcc4-c++ c++4 g++4 +%ccache_trigger -p gcc44 cc4 gcc44 +%ccache_trigger -p gcc44-c++ c++44 g++44 +%ccache_trigger -p msp430-gcc msp430-cc msp430-gcc + %pre getent group ccache >/dev/null || groupadd -r ccache || : -%triggerin -- %{pkgs} -for name in %{compilers} ; do - for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do - [ ! -x %{_bindir}/$c ] || ln -sf %{relccache} %{_libdir}/ccache/$c - done -done -: - -%triggerpostun -- %{pkgs} -for name in %{compilers} ; do - for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do - [ -x %{_bindir}/$c ] || rm -f %{_libdir}/ccache/$c - done -done -: - %files -f %{name}-%{version}.compilers %defattr(-,root,root,-) @@ -98,6 +140,9 @@ done %changelog +* Sun Dec 5 2010 Ville Skyttä +- Update compiler executable lists, make their package triggers more targeted. + * Sun Nov 28 2010 Ville Skyttä - 3.1.3-1 - Update to 3.1.3, fixes #657857.