Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Feb 2023 12:15:34 -0800
From:      "Simon J. Gerraty" <sjg@juniper.net>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        Bryan Drewery <bdrewery@FreeBSD.org>, Current FreeBSD <freebsd-current@FreeBSD.org>, Peter <pmc@citylink.dinoex.sub.org>, <sjg@juniper.net>
Subject:   Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)
Message-ID:  <42586.1677183334@kaos.jnpr.net>
In-Reply-To: <242BB478-B2FE-4BCC-A56E-098F3FEB3EE1@yahoo.com>
References:  <B74790D9-FBC2-4818-BEAF-34E5B705C460@yahoo.com> <3345EBA5-A09C-4E3F-B94D-39F57F56BDBB@yahoo.com> <DB0C7B41-2101-4C5C-BFC8-3C95CC0B9F6F@yahoo.com> <73088.1611797582@kaos.jnpr.net> <CB7040D0-3BF4-496F-A54F-87E5378016E0@yahoo.com> <F6BF110D-7855-4A10-A53F-52B34282234F@yahoo.com> <10819.1677108389@kaos.jnpr.net> <76FA98EF-6184-4D7E-A01F-0EE8117D0D10@yahoo.com> <29887.1677115125@kaos.jnpr.net> <27790339-240F-4C97-97C7-38AFD8DE03D5@yahoo.com> <7FB6F619-6E71-4075-8A6C-573564371DD5@yahoo.com> <2655.1677134606@kaos.jnpr.net> <242BB478-B2FE-4BCC-A56E-098F3FEB3EE1@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mark Millard <marklmi@yahoo.com> wrote:
> The contribution to the list is currently generated via
> use of:
> =

> .if ${.MAKE.LEVEL} =3D=3D 0

Why is this guarded by .MAKE.LEVEL 0?
.MAKE.META.IGNORE_* should be largely irrelevant at level 0
which in the DIRDEPS_BUILD is reserved for orchestration.
Even in the legacy build, level 0 would be just the top-level makefiles
and anything dealing with meta files would be expected to be level 1 or
greater. =


> .for ignore_legacy_tool in awk cap_mkdb cat cp crunchgen crunchide dd eg=
rep env file2c gencat grep gzip jot lex lb ln m4 mkcsmapper mktemp mv patc=
h realpath rm sed sh touch truncate uudecode uuencode xargs
> .MAKE.META.IGNORE_PATHS+=3D ${MAKEOBJDIR}/tmp/legacy/usr/sbin/${ignore_l=
egacy_tool}
> .endfor
> .for ignore_other_tool in ctfconvert objcopy nm
> .MAKE.META.IGNORE_PATHS+=3D ${MAKEOBJDIR}/tmp/usr/bin/${ignore_other_too=
l}
> .endfor
> .MAKE.META.IGNORE_PATHS:=3D ${.MAKE.META.IGNORE_PATHS}
> .endif
> =

> The :=3D use is how I avoided needing to worry about late binding
> substitutions for my additions (independent of the internals of
> make's specific .MAKE.META.IGNORE_PATHS handling).

Depending on value of MAKEOBJDIR the above may not work at all.
The default is

share/mk/src.sys.obj.mk:_default_makeobjdir=3D $${.CURDIR:S,^$${SRCTOP},$$=
{OBJTOP},}

In which case the above would not be correct.

> For reference:
> =

> # more ~/sys-build-scripts.amd64-host/make-main-amd64-nodbg-clang.amd64-=
host.sh
> kldload -n filemon && \
> cd /usr/main-src/ && \
> mkdir -p /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/ && \
> script /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript=
-make-amd64-nodbg-clang-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
> env __MAKE_CONF=3D"/usr/home/root/src.configs/make.conf" SRCCONF=3D"/dev=
/null" SRC_ENV_CONF=3D"/usr/home/root/src.configs/src.conf.amd64-nodbg-cla=
ng.amd64-host" \
> WITH_META_MODE=3Dyes \
> MAKEOBJDIRPREFIX=3D"/usr/obj/BUILDs/main-amd64-nodbg-clang" \
> make $*
> =

> =

> =3D=3D=3D
> Mark Millard
> marklmi at yahoo.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42586.1677183334>