Use
.Xr ccache 1
for the build.
No configuration is required except to install the
.Sy devel/ccache ,
.Sy devel/ccache4 ,
or
.Sy devel/sccache
port or package; in the latter case, set
.Sy CCACHE_NAME=sccache .
When using with
.Xr distcc 1 ,
set
.Sy CCACHE_PREFIX=${LOCALBASE}/bin/distcc .
The default cache directory is
.Pa $HOME/.ccache
and can be changed by setting
.Sy CCACHE_DIR .
The
.Sy CCACHE_COMPILERCHECK
option defaults to
.Sy content
when using the in-tree bootstrap compiler,
and
.Sy mtime
when using an external compiler.
The
.Sy CCACHE_CPP2
option is used for Clang but not GCC.
.Pp
Sharing a cache between multiple work directories requires using a layout
similar to
.Pa /some/prefix/src
.Pa /some/prefix/obj
and an environment such as:
.Bd -literal -offset indent
CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj'
.Ed
.Pp
See
.Xr ccache 1
for more configuration options.
