Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jun 2016 20:05:26 -0700
From:      "Simon J. Gerraty" <sjg@juniper.net>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        Bryan Drewery <bdrewery@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, <sjg@juniper.net>
Subject:   Re: mergemaster internally using make [for example] vs. WITH_META_MODE?
Message-ID:  <35353.1465700726@kaos.jnpr.net>
In-Reply-To: <7C577F5B-545C-4D70-A78E-A19E35A24592@dsl-only.net>
References:  <7C577F5B-545C-4D70-A78E-A19E35A24592@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Mark Millard <markmi@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



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