[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