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

Bryan Drewery bdrewery at freebsd.org
Sat Aug 4 14:42:55 UTC 2012

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?

Bryan Drewery
bdrewery at freenode/EFNet

More information about the freebsd-ports mailing list