]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
META_MODE: Avoid changed build command every build.
authorbdrewery <bdrewery@FreeBSD.org>
Tue, 12 Apr 2016 02:45:19 +0000 (02:45 +0000)
committerbdrewery <bdrewery@FreeBSD.org>
Tue, 12 Apr 2016 02:45:19 +0000 (02:45 +0000)
commitcc8f2f0f61904cfd59a93ed1e43223f31316935b
treee7a65bc926e11475715fbe5f22cc46e474cdc06a
parent7dfefb4ad04aecb6eadead5e200a940b1d8631af
META_MODE: Avoid changed build command every build.

Because the file is generated with -f using another Makefile, 2
different Makefiles are trying to handle the .meta file for the
target.  The obvious .NOMETA_CMP or .NOMETA on the ${MAKE} targets
don't work as they are very limited in scope in bmake.  Using
.PHONY fixes the problem and ensures that the ${MAKE} command
is always ran to check if it is outdated in the sub-make.

An example of the problem in gnu/lib/libgcc (with make -dM):
  /usr/obj/root/git/freebsd/gnu/lib/libgcc/tm.h.meta: 2: a build command has changed
  TARGET_CPU_DEFAULT=""  HEADERS="options.h i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos-undef.h elfos.h freebsd-native.h freebsd-spec.h freebsd.h i386/x86-64.h i386/freebsd.h i386/freebsd64.h defaults.h"  DEFINES=""  /bin/sh /root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc/mkconfig.sh tm.h
  vs
  (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=/root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=/root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
  Skipping meta for tm.h: .NOMETA
  (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=/root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=/root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
  `tm.h' is up to date.

Sponsored by: EMC / Isilon Storage Division
gnu/lib/csu/Makefile
gnu/lib/libgcc/Makefile
gnu/lib/libgcov/Makefile