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>
