freebsd-dev/share/mk
Alex Richardson 74f6548619 Only compute the X_COMPILER_*/X_LINKER_* variables when needed
When building CheriBSD we have to set XLD/XCC/XCFLAGS on the command line.
This triggers the $XCC != $CC case in bsd.compiler.mk (and the same for LD
in bsd.linker.mk) which causes it to call ${XCC} --version and
${XLD} --version (plus various awk+sed+echo calls) in every subdirectory.
For incremental builds and stages that only walk the source tree this is
often the majority of the time spent in that directory.

By only computing the value of the X_COMPILER_*/X_LINKER_* variables if
_WANT_TOOLCHAIN_CROSS_VARS is set we can reduce the number of cc/ld calls
to once per build stage instead of once per recursive make.

With this change (and no changes to the sources) the `make includes` stage
now takes 28 seconds at -j1 instead of 86 seconds.

Approved By:	brooks (mentor)
Differential Revision: https://reviews.freebsd.org/D17046
2018-10-23 06:31:25 +00:00
..
atf.test.mk Feex a cuple of small typos 2018-07-27 10:44:38 +00:00
auto.obj.mk Ensure .OBJDIR has known value 2017-11-04 21:02:26 +00:00
bsd.arch.inc.mk
bsd.clang-analyze.mk Add some missed OBJS_SRCS_FILTER from r323637. 2017-11-10 08:00:09 +00:00
bsd.compiler.mk Only compute the X_COMPILER_*/X_LINKER_* variables when needed 2018-10-23 06:31:25 +00:00
bsd.confs.mk Add beforeinstallconfig to bsd.confs.mk to enable running commands prior to 2018-08-28 22:22:06 +00:00
bsd.cpu.mk Enable 'C'-compressed ISA extension. 2018-09-03 14:43:16 +00:00
bsd.crunchgen.mk rescue: Restore 'make depend' call to fix WITH_META_MODE after r334008. 2018-05-24 18:49:19 +00:00
bsd.dep.mk Created static libc PIC/no-SSP library to be used by rtld. 2018-05-09 10:28:24 +00:00
bsd.dirs.mk DIRS: Rework how duplicated dirs are installed. 2018-09-17 22:15:12 +00:00
bsd.doc.mk Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
bsd.dtb.mk Use known SRCTOP if possible to determine SYSDIR. 2018-04-12 20:48:17 +00:00
bsd.endian.mk Add -b/-l options to localedef(1) to specify output endianness and use 2018-10-20 20:51:05 +00:00
bsd.files.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
bsd.incs.mk Reapply r295227: Stop hiding link install commands. 2017-11-06 19:33:50 +00:00
bsd.info.mk Revert r301079. 2016-06-03 19:25:36 +00:00
bsd.init.mk Reduce exec and fstat overhead for non-build targets. 2018-06-20 17:20:39 +00:00
bsd.kmod.mk Use known SRCTOP if possible to determine SYSDIR. 2018-04-12 20:48:17 +00:00
bsd.lib.mk Introduce src.conf knob to build userland with retpoline 2018-10-21 00:27:59 +00:00
bsd.libnames.mk libbe(3): Add to bsd.libnames.mk 2018-08-11 04:07:00 +00:00
bsd.linker.mk Only compute the X_COMPILER_*/X_LINKER_* variables when needed 2018-10-23 06:31:25 +00:00
bsd.links.mk Reapply r295227: Stop hiding link install commands. 2017-11-06 19:33:50 +00:00
bsd.man.mk Correct link metadata created when installing with -DNO_ROOT. 2018-06-29 16:07:56 +00:00
bsd.mkopt.mk Appy := to dependent opts once value determined. 2015-06-22 19:01:09 +00:00
bsd.nls.mk Move all of the directory path into the DIR part of the component and make the 2018-05-31 13:26:12 +00:00
bsd.obj.mk AUTO_OBJ: Don't create nested OBJDIRS with print-dir or make -n. 2017-12-06 21:00:41 +00:00
bsd.opts.mk Introduce src.conf knob to build userland with retpoline 2018-10-21 00:27:59 +00:00
bsd.own.mk Correct default path of kernel modules. 2018-08-09 16:42:13 +00:00
bsd.port.mk Avoid sub-shell for realpath(1) for bmake by using its built-in :tA. 2015-09-03 17:01:58 +00:00
bsd.port.options.mk
bsd.port.post.mk
bsd.port.pre.mk
bsd.port.subdir.mk Avoid sub-shell for realpath(1) for bmake by using its built-in :tA. 2015-09-03 17:01:58 +00:00
bsd.prog.mk Introduce src.conf knob to build userland with retpoline 2018-10-21 00:27:59 +00:00
bsd.progs.mk PROGS: Don't redundantly process DIRS. 2018-09-17 22:15:06 +00:00
bsd.README Add the initial DIRS infrastructure for creating directories with the 2018-07-23 16:11:03 +00:00
bsd.snmpmod.mk Update bsnmp to version 1.13. This does not bring user-visible changes. 2018-07-03 08:44:40 +00:00
bsd.subdir.mk installdirs can be a recursive/standalone target. 2018-09-17 22:15:09 +00:00
bsd.suffixes-posix.mk Extract suffix rules into bsd.suffixes[-posix].mk. 2016-10-12 00:42:46 +00:00
bsd.suffixes.mk CCACHE_BUILD: Don't try using ccache for compile-linking .c files. 2018-06-27 16:58:07 +00:00
bsd.symver.mk
bsd.sys.mk DIRS: installdirs should also be .PHONY 2018-09-17 22:14:53 +00:00
bsd.test.mk Feex a cuple of small typos 2018-07-27 10:44:38 +00:00
dirdeps-options.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
dirdeps.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
gendirdeps.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
host-target.mk Import latest host-target.mk 1.11 from contrib/bmake/mk 2016-01-25 18:43:21 +00:00
install-new.mk DIRDEPS_BUILD: Install new Makefile.depend files atomically. 2015-12-04 03:17:07 +00:00
local.autodep.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
local.dirdeps.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
local.gendirdeps.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
local.init.mk Define .MAKE.MODE to normal to avoid the need for :U later. 2016-01-19 22:41:44 +00:00
local.meta.sys.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
local.sys.env.mk AUTO_OBJ: Hide 'creating dirs' output with 'make -s'. 2017-11-08 16:03:58 +00:00
local.sys.mk Follow-up r320061: Need to respect make.conf/env LIBDIR overrides. 2017-06-19 18:08:02 +00:00
Makefile Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
meta2deps.py Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
meta2deps.sh Update meta* from bmake-20161212 2016-12-23 02:57:00 +00:00
meta.autodep.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
meta.stage.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
meta.subdir.mk Import latest meta.subdir.mk 1.11 from contrib/bmake/mk 2016-01-25 18:34:15 +00:00
meta.sys.mk Update dirdeps.mk et al to latest 2018-08-02 21:33:45 +00:00
netbsd-tests.test.mk Fix LDADD/DPADD that should be LIBADD. 2015-12-04 03:17:47 +00:00
plain.test.mk Feex a cuple of small typos 2018-07-27 10:44:38 +00:00
src.init.mk The 'buildenv' target can safely be ran with '+'. 2015-11-06 21:49:17 +00:00
src.libnames.mk Add libssl to libldns for DANE. 2018-10-12 05:27:58 +00:00
src.opts.mk Use BROKEN_OPTIONS for NVME, HYPERV, CXGBETOOL and MLX5TOOL instead of 2018-10-21 06:52:10 +00:00
src.sys.env.mk Ignore MAKEOBJDIRPREFIX from src-env.conf in sub-makes. 2018-03-03 23:23:01 +00:00
src.sys.mk Enable AUTO_OBJ by default if the OBJDIR is writable, only for in-tree builds. 2017-11-02 18:09:07 +00:00
src.sys.obj.mk tinderbox: Only build clang/lld once if needed. 2018-06-27 16:58:10 +00:00
stage-install.sh
suite.test.mk MFhead@r325422 2017-11-05 04:08:00 +00:00
sys.dependfile.mk Merge bmake-20160307 2016-03-11 01:35:39 +00:00
sys.mk Reduce exec and fstat overhead for non-build targets. 2018-06-20 17:20:39 +00:00
tap.test.mk Feex a cuple of small typos 2018-07-27 10:44:38 +00:00
version_gen.awk share and pc-sysinstall: adoption of SPDX licensing ID tags. 2017-11-27 15:28:26 +00:00