[devel] ccache support in gcc-common

Alexander Bokovoy =?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Вт Сен 23 12:50:35 MSD 2003


On Tue, Sep 23, 2003 at 12:28:32PM +0400, Dmitry V. Levin wrote:
> > > Если так, то это можно было бы сделать, не дожидаясь изменения макросов в
> > > rpm-build.  Кстати, что конкретно там надо будет поменять?
> > Знаешь, убери оттуда вообще поддержку ccache. Я положу макросы в 
> > /etc/rpm/macros.d/ccache в пакет с ccache, так будет проще всего и,
> > очевидно, правильнее.
> 
> $ fgrep -i ccache /usr/lib/rpm/i586-alt-linux/macros
>         unset CCACHE_CC CCACHE_CXX CCACHE_DIR ||:\
>         %{?__ccache_cc:export CCACHE_CC=\"%__ccache_cc\"}\
>         %{?__ccache_cxx:export CCACHE_CXX=\"%__ccache_cxx\"}\
>         %{?__ccache_dir:export CCACHE_DIR=\"%__ccache_dir\"}\
> 
> Это они все?
Да, это они все.

> Как ты их сможешь переопределить, если это все из определения макроса
> %___build_pre?
Добавь туда какой-нибудь %___build_pre_extender и механизм добавления в
него строчек, тогда любой макро-файл сможет их расширять. Можно сделать
даже просто макрос вроде
	%build_add_variable_expand var1 var2
который будет разворачивать полученный список пар (var1, var2)_1, ..., (var1, var2)_n
в последовательность
	unset var2_1 ... var2_n ||:\
	%{?var1_1:export var2_1=\"%var1_1\"}\
	....
	%{?var1_n:export var2_n=\"%var1_n\"}\

Тогда в /etc/rpm/macros.d/ccache я просто напишу
%build_add_variable_expand __ccache_use GCC_USE_CCACHE
%build_add_variable_expand __ccache_dir CCACHE_DIR

А пользователь сможет включать/выключать использование ccache у себя в
.rpmmacros, например, так:

%__ccache_use 1
%__ccache_dir $HOME/.ccache

Естественно, что в этот же механизм простановки переменных смогут
встраиваться и другие приложения, если потребуется.
-- 
/ Alexander Bokovoy
---
taxidermist, n.:
	A man who mounts animals.



Подробная информация о списке рассылки Devel