[CFT] [bsd.port.mk] ports ccache build support

Kimmo Paasiala kpaasial at gmail.com
Sat Aug 4 15:03:37 UTC 2012

On Sat, Aug 4, 2012 at 5:42 PM, Bryan Drewery <bdrewery at freebsd.org> wrote:
> On 8/4/2012 8:16 AM, RW wrote:
>> On Fri, 03 Aug 2012 20:05:54 -0500
>> Bryan Drewery wrote:
>>> Hi,
>>> ports/169579 is currently tracking this.
>>> This patch adds ccache support to ports (off by default). Other
>>> patches have changed $CC to use ccache, which results in having a
>>> space in $CC. This breaks many ports such as boost and libtool ports.
>>> This patch however utilizes the symlinks in
>>> /usr/local/libexec/ccache/{cc,gcc,etc...} by prefixing that directory
>>> into $PATH in the $MAKE_ENV.
>> But if you've read the ccache documentation you probably already have
>> that directory in PATH anyway. Does this patch provide a significant
>> advantage?
> That requires needless customization. The purpose here is easy, safe and
> native support.
> The included ccache-howto-freebsd.txt with devel/ccache is quite long
> for something that is straight forward.
> I've seen many incorrect guides that suggest changing $CC. There's forum
> posts and sysutils/bsdadminscripts that do this. This leads to broken
> builds and needing to define which ports support ccache via $CC and
> which do not.
>>> The cache directory CCACHE_DIR defaults to /usr/obj/ccache
>>> ...
>>> To use ccache(1) from the command line to configure the size or view
>>> stats: CCACHE_DIR=/usr/obj/ccache ccache -s
>> Having a default ccache directory in the makefile that's different from
>> the default documented in the ccache man page seems needlessly
>> confusing to me.
> The default being $HOME/.ccache makes even less sense for port building.
>> And see hier(7) and section  25.7.6 of the handbook for
>> why /usr/obj/ccache is a poor choice.
> I think /usr/obj makes sense. There is /var/cache now, but /var is
> typically a smaller partition.
> Do you have a better suggestion?

Based on what I've read on the subject I'd say it's better to leave
/usr/obj to just for stuff from /usr/src. I vote for /var/cache/ccache
as the default ccache directory.


More information about the freebsd-ports mailing list