%define compilers gcc g++ cc c++ gcc296 g++296 gcc32 c++32 g++32 gcc34 c++34 g++34 g++-libstdc++-so_7 %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 Name: ccache Version: 2.4 Release: 8%{?dist} Summary: C/C++ compiler cache Group: Development/Tools License: GPL URL: http://ccache.samba.org/ Source0: http://ccache.samba.org/ftp/ccache/%{name}-%{version}.tar.gz Patch0: %{name}-html-links.patch Patch1: %{name}-2.4-coverage-231462.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 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 %build %configure %{__make} %{?_smp_mflags} cat < %{name}.sh if ! echo "\$PATH" | grep -q %{_libdir}/ccache ; then PATH="%{_libdir}/ccache:\$PATH" fi EOF cat < %{name}.csh if ( "\$path" !~ *%{_libdir}/ccache* ) then set path = ( %{_libdir}/ccache \$path ) endif EOF %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 %{_bindir}/ccache $RPM_BUILD_ROOT%{_libdir}/ccache/$c echo "%ghost %{_libdir}/ccache/$c" >> %{name}-%{version}.compilers done done %clean rm -fr $RPM_BUILD_ROOT %triggerin -- %{pkgs} for name in %{compilers} ; do for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do [ ! -x %{_bindir}/$c ] || ln -sf %{_bindir}/ccache %{_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 %{_sysconfdir}/profile.d/%{name}.*sh %{_bindir}/ccache %dir %{_libdir}/ccache/ %{_mandir}/man1/ccache.1* %changelog * 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