Update compiler executable lists, make their package triggers more targeted.

This commit is contained in:
Ville Skyttä 2010-12-05 14:56:11 +02:00
parent d54c7baca2
commit 21996824a3
1 changed files with 72 additions and 27 deletions

View File

@ -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ä <ville.skytta@iki.fi>
- Update compiler executable lists, make their package triggers more targeted.
* Sun Nov 28 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.1.3-1
- Update to 3.1.3, fixes #657857.