Re: mergemaster internally using make [for example] vs. WITH_META_MODE?

From: Simon J. Gerraty <sjg_at_juniper.net>
Date: Sat, 11 Jun 2016 20:05:26 -0700
Mark Millard <markmi_at_dsl-only.net> wrote:
> > # grep -i make /usr/sbin/mergemaster | more
> . . .
> > MM_MAKE="make ${ARCHSTRING} -m ${SOURCEDIR}/share/mk"
> >         ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs >/dev/null
> >       ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs >/dev/null &&
> >       ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc >/dev/null &&
> >       ${MM_MAKE} everything SUBDIR_OVERRIDE=etc >/dev/null &&
> >       ${MM_MAKE} DESTDIR=${TEMPROOT} distribution >/dev/null;} ||
> . . .
> 
> If one is using WITH_META_MODE= for buildworld, buidlkernel,
> installkernel, installworld what is appropriate for scripts or other
> uses of make for other makefile-targets?

I cannot speak to your specific example, but yes in general there are
cases where you want a sub-make to not run in meta mode.

Using 'make -B' is usually sufficient.
Eg.

$ make -C bin/cat -V .MAKE.MODE
[Creating objdir /tank/home/sjg/work/FreeBSD/current/obj/i386.i386/bin/cat...]
missing-meta=yes missing-filemon=yes meta verbose silent=yes
$
$ make -C bin/cat -B -V .MAKE.MODE
compat
$

If you have a makefile that should *never* run in meta mode but you
don't necessarily want to run in compat mode you can put:

.MAKE.MODE= normal

in the makefile
 
> Are there explicit mixes of using WITH_META_MODE= for some makefile
> targets and not using WITH_META_MODE= for other makefile targets that
> need to be avoided? Does one need to force some scripts to use [or not
> use] WITH_META_MODE= for their "internal" make usage?

The most common case where you want to use -B or otherwise supress meta
mode, is when you are using 'make -V' to print the value of some
variable.

--sjg
Received on Sun Jun 12 2016 - 01:45:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:05 UTC