Hi, Recently I have introduced two new features into the build. These apply to anything using /usr/share/mk including buildworld, buildkernel, universe, etc.
- The first is WITH_FAST_DEPEND. Please see the commit for its full description, benefits and discussion. It saves 16-30% in build times without gimmicks or risk. It avoids running the preprocessor twice in the build and only runs it during compilation. This is a feature that's 14 years overdue. https://svnweb.freebsd.org/changeset/base/290433 There was a problem with the GCC build, but that has been fixed. I intend to enable this *by default* for the src buildworld/etc... build in a few weeks. I do need to schedule a ports exp-run with this as well to see if anything outside of the src tree is broken by it, which I very much doubt. If you have a downstream fork of FreeBSD, please import r290433 and r290629 and give me feedback on any issues you encounter. There is 1 gotcha that I realized. People running 'make depend' manually may actually want to see a .depend file generated without having to compile first. I may add support for that somehow but am not sure yet. It may be a 'make mkdep' target. - The second is WITH_CCACHE_BUILD. This replaces the previous suggestion of modifying CC and CXX in /etc/make.conf. This is purposely chosen to match the ports name. It can save up to 65% build times when combined with WITH_FAST_DEPEND. This fixes all known issues with buildworld+ccache. There is a rare problem that can occur with header detection that is documented in the ccache manpage in the DIRECT MODE section. **It is only useful for frequent builders who do not use -DNO_CLEAN and want a reliable incremental build. It is not useful for people who build infrequently.** See commit for further details and stats. I do not intend to ever support enabling this by default. I just intend to update the devel/ccache pkg-message to suggest using it once it is known to work for all. https://svnweb.freebsd.org/changeset/base/290526 Thanks! Bryan Drewery
Description: OpenPGP digital signature