Author: bdrewery
Date: Tue Apr 12 02:45:19 2016
New Revision: 297842
URL: https://svnweb.freebsd.org/changeset/base/297842

Log:
  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

Modified:
  head/gnu/lib/csu/Makefile
  head/gnu/lib/libgcc/Makefile
  head/gnu/lib/libgcov/Makefile

Modified: head/gnu/lib/csu/Makefile
==============================================================================
--- head/gnu/lib/csu/Makefile   Tue Apr 12 02:01:16 2016        (r297841)
+++ head/gnu/lib/csu/Makefile   Tue Apr 12 02:45:19 2016        (r297842)
@@ -71,7 +71,7 @@ crtendS.o:    ${ENDSRC}
                -c -o ${.TARGET} ${.ALLSRC:N*.h}
 
 CLEANFILES+=   tm.h tconfig.h options.h optionlist cs-tconfig.h cs-tm.h
-tm.h tconfig.h options.h: ${CCDIR}/cc_tools/Makefile
+tm.h tconfig.h options.h: ${CCDIR}/cc_tools/Makefile .PHONY
        (cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} 
${.TARGET})
 
 .include <bsd.lib.mk>

Modified: head/gnu/lib/libgcc/Makefile
==============================================================================
--- head/gnu/lib/libgcc/Makefile        Tue Apr 12 02:01:16 2016        
(r297841)
+++ head/gnu/lib/libgcc/Makefile        Tue Apr 12 02:45:19 2016        
(r297842)
@@ -343,7 +343,7 @@ ${_src:R:S/$/.So/}: ${_src} ${COMMONHDRS
 #
 # Generated headers
 #
-${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
+${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
        (cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} 
${.TARGET})
 
 CLEANFILES += ${COMMONHDRS}

Modified: head/gnu/lib/libgcov/Makefile
==============================================================================
--- head/gnu/lib/libgcov/Makefile       Tue Apr 12 02:01:16 2016        
(r297841)
+++ head/gnu/lib/libgcov/Makefile       Tue Apr 12 02:45:19 2016        
(r297842)
@@ -45,7 +45,7 @@ CC_S =        ${CC} -c ${CFLAGS} ${PICFLAG} -DS
 COMMONHDRS=    tm.h tconfig.h gcov-iov.h options.h
 CLEANFILES+=   ${COMMONHDRS} cs-tm.h cs-tconfig.h options.h optionlist
 
-${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
+${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
        (cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} 
${.TARGET})
 
 ${OBJS} beforedepend: ${COMMONHDRS}
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to