%define compilers gcc g++ cc c++ gcc296 g++296 gcc32 c++32 g++32 gcc34 c++34 g++34 g++-libstdc++-so_7 avr-gcc avr-c++ avr-g++ arm-gp2x-linux-gcc arm-gp2x-linux-c++ arm-gp2x-linux-g++ %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++, libstdc++so7-devel, avr-gcc, avr-gcc-c++, arm-gp2x-linux-gcc, arm-gp2x-linux-gcc-c++ %define abs2rel() perl -MFile::Spec -e 'print File::Spec->abs2rel(@ARGV)' %1 %2 %{expand: %%define relccache %(%abs2rel %{_bindir}/ccache %{_libdir}/ccache)} Name: ccache Version: 2.4 Release: 15%{?dist} Summary: C/C++ compiler cache Group: Development/Tools License: GPLv2+ URL: http://ccache.samba.org/ Source0: http://samba.org/ftp/ccache/%{name}-%{version}.tar.gz Source1: %{name}.sh.in Source2: %{name}.csh.in Patch0: %{name}-html-links.patch Patch1: %{name}-2.4-coverage-231462.patch Patch2: %{name}-2.4-hardlink-doc.patch Patch3: %{name}-2.4-noHOME-315441.patch Patch4: http://darkircop.org/ccache/ccache-2.4-md.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl(File::Spec) Requires(triggerin): coreutils Requires(triggerpostun): coreutils %description ccache is a compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the -E compiler switch and a hash to detect when a compilation can be satisfied from cache. This often results in a 5 to 10 times speedup in common compilations. %prep %setup -q %patch0 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch4 -p1 sed -e 's|@LIBDIR@|%{_libdir}|g' -e 's|@CACHEDIR@|%{_var}/cache/ccache|g' \ %{SOURCE1} > %{name}.sh sed -e 's|@LIBDIR@|%{_libdir}|g' -e 's|@CACHEDIR@|%{_var}/cache/ccache|g' \ %{SOURCE2} > %{name}.csh %build %configure make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT %{name}-%{version}.compilers 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 %clean rm -fr $RPM_BUILD_ROOT %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,-) %doc COPYING README web/*.html %config(noreplace) %{_sysconfdir}/profile.d/%{name}.*sh %{_bindir}/ccache %dir %{_libdir}/ccache/ %attr(2770,root,ccache) %dir %{_var}/cache/ccache/ %{_mandir}/man1/ccache.1* %changelog * Fri Jul 24 2009 Fedora Release Engineering - 2.4-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Mon Feb 23 2009 Fedora Release Engineering - 2.4-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Mar 19 2008 Ville Skyttä - 2.4-13 - Apply patch to fix path to saved dependency files (#438201). * Sat Feb 9 2008 Ville Skyttä - 2.4-12 - Rebuild. * Tue Oct 2 2007 Ville Skyttä - 2.4-11 - Apply upstream fix for problems when $HOME is not set (#315441). * Wed Aug 22 2007 Ville Skyttä - Fix URL to upstream tarball. * Sun Aug 19 2007 Ville Skyttä - 2.4-10 - License: GPLv2+ - Make compiler symlinks relative. - Make profile.d scripts noreplace. * Mon Jul 30 2007 Ville Skyttä - 2.4-9 - Use shared cache dir for users in the ccache group by default (#247760, based on Andy Shevchenko's work). - Fix outdated hardlink info in cache sharing docs. - Add auto-symlink support for avr-gcc(-c++) and arm-gp2x-linux-gcc(-c++). - Make triggers always exit with a zero exit status. * Thu Mar 15 2007 Ville Skyttä - 2.4-8 - Bypass cache with --coverage, -fprofile-arcs and -ftest-coverage (upstream CVS and Matt Fago, #231462). * Fri Nov 10 2006 Ville Skyttä - 2.4-7 - Require coreutils for triggers (#215030). * Wed Aug 9 2006 Ville Skyttä - 2.4-6 - Add auto-symlink support for compat-gcc-34(-c++). - Untabify, escape macros in changelog. * Tue May 16 2006 Ville Skyttä - 2.4-5 - Add auto-symlink support for g++-libstdc++-so_7. * Sat Nov 26 2005 Ville Skyttä - 2.4-4 - Drop "bin" from compiler symlink path. - Make profile.d snippets non-executable (#35714). * Sun May 1 2005 Ville Skyttä - 2.4-3 - Auto-symlink update: add compat-gcc-32 and compat-gcc-32-c++, drop bunch of no longer relevant compilers. * Fri Apr 7 2005 Michael Schwendt - 2.4-2 - rebuilt * Sun Sep 26 2004 Ville Skyttä - 0:2.4-0.fdr.1 - Update to 2.4. - Add symlinking support for gcc4 and gcc4-c++. - Move the ccache executable to %%{_bindir}. - Include more docs. * Fri Jun 25 2004 Ville Skyttä - 0:2.3-0.fdr.5 - Add support for gcc33 and g++33. * Thu Jun 10 2004 Ville Skyttä - 0:2.3-0.fdr.4 - Fix hardcoded lib path in profile.d scriptlets (bug 1558). * Mon May 3 2004 Ville Skyttä - 0:2.3-0.fdr.3 - Add support for gcc34 and g++34, and %%{_target_cpu}-%%{_vendor}-%%{_target_os}-* variants. * Thu Nov 13 2003 Ville Skyttä - 0:2.3-0.fdr.2 - Add overriding symlinks for gcc-ssa and g++-ssa (bug 963). * Tue Nov 11 2003 Ville Skyttä - 0:2.3-0.fdr.1 - Update to 2.3. - Implement triggers to keep list of "aliased" compilers up to date on the fly. - Add gcc32 and a bunch of legacy packages to the list of overridden compilers. * Sat Aug 2 2003 Ville Skyttä - 0:2.2-0.fdr.6 - Add c++ to the list of overridden compilers (bug 548). - Own everything including dirs under %%{_libdir}/ccache (bug 529). - %%{buildroot} -> $RPM_BUILD_ROOT. - Fix man page permissions. - Use %%{?_smp_mflags}. - Other cosmetic specfile tweaks. * Fri Mar 29 2003 Warren Togami 2.2-0.fdr.5 - Epoch: 0 - Remove /usr/lib/ccache/sbin from PATH * Fri Mar 28 2003 Warren Togami 2.2-0.fdr.4 - Add BuildRequires: autoconf >= 0:2.52 - Add Requires: gcc, gcc-c++ (minimal expectation of compilers) * Fri Mar 28 2003 Warren Togami 2.2-0.fdr.3 - No longer use %%ghost, symlinks always exist * Thu Mar 27 2003 Warren Togami 2.2-0.fdr.2 - Move symlinks to /usr/lib/ccache/bin - Use /etc/profile.d/ccache.* scripts to add it to PATH As long as it is before /usr/bin it is good. * Thu Mar 27 2003 Warren Togami 2.2-0.fdr.1 - Move symlinks to /bin since it seems to be at the beginning of PATH of all users before /usr/bin, the location of the real compiler. - Package symlinks rather than create and remove during %%post and %%postun * Thu Feb 20 2003 Warren Togami 2.2-4.fedora.1 - Fedora * Thu Feb 20 2003 Samir M. Nassar 2.2-3.redconcepts - Added symlinks to g++ - Removed symlink removal in post * Thu Feb 20 2003 Samir M. Nassar 2.2-2.redconcepts - Cleans symlinks if present to make upgrades easier * Thu Feb 20 2003 Samir M. Nassar 2.2-1.redconcepts - Upgraded to ccache 2.2 * Tue Feb 04 2003 Samir M. Nassar 2.1.1-4.redconcepts - Using %%post to create the soft symlinks - Using %%postun to remove the soft symlinks - Thanks to Che for the help - Packaged as user * Sun Jan 19 2003 Samir M. Nassar 2.1.1-3.redconcepts - make a soft symlink between ccache and gcc - make a soft symlink between ccache and cc * Thu Jan 16 2003 Samir M. Nassar 2.1.1-2.redconcepts - Normalized spec file. * Wed Jan 15 2003 Samir M, Nassar 2.1.1-1.redconcepts - Using ccache 2.2.1 sources - Changed release to redconcepts for consistency * Wed Oct 22 2002 Samir M. Nassar 1.9-1.rcn - Initial RedConcepts.NET (rcn) build for Red Hat Linux 8.0