From owner-svn-src-all@freebsd.org Sat Nov 14 03:24:50 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF0ACA2EBB5; Sat, 14 Nov 2015 03:24:50 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA24A1C0C; Sat, 14 Nov 2015 03:24:50 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tAE3OnEh039540; Sat, 14 Nov 2015 03:24:49 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tAE3Omno039525; Sat, 14 Nov 2015 03:24:48 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201511140324.tAE3Omno039525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Sat, 14 Nov 2015 03:24:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r290816 - in head: . include share/mk tools/build/options usr.bin/xlint/llib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Nov 2015 03:24:51 -0000 Author: sjg Date: Sat Nov 14 03:24:48 2015 New Revision: 290816 URL: https://svnweb.freebsd.org/changeset/base/290816 Log: Rename META_MODE option to DIRDEPS_BUILD This allows META_FILES option to be renamed META_MODE. Also add META_COOKIE_TOUCH for use in targets that can benefit from a cookie when in meta mode. Differential Revision: https://reviews.freebsd.org/D4153 Reviewed by: bdrewery Added: head/tools/build/options/WITH_DIRDEPS_BUILD - copied unchanged from r290801, head/tools/build/options/WITH_META_MODE Replaced: head/tools/build/options/WITH_META_MODE - copied, changed from r290801, head/tools/build/options/WITH_META_FILES Deleted: head/tools/build/options/WITH_META_FILES Modified: head/Makefile head/include/Makefile head/share/mk/bsd.dep.mk head/share/mk/bsd.subdir.mk head/share/mk/local.meta.sys.mk head/share/mk/local.sys.mk head/share/mk/sys.mk head/tools/build/options/WITH_DIRDEPS_CACHE head/tools/build/options/WITH_STAGING head/tools/build/options/WITH_SYSROOT head/usr.bin/xlint/llib/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Sat Nov 14 03:22:59 2015 (r290815) +++ head/Makefile Sat Nov 14 03:24:48 2015 (r290816) @@ -106,7 +106,7 @@ # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. -.if defined(MK_META_MODE) && ${MK_META_MODE} == "yes" && !make(showconfig) +.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig) # targets/Makefile plays the role of top-level .include "targets/Makefile" .else @@ -498,15 +498,15 @@ buildLINT: # This makefile does not run in meta mode .MAKE.MODE= normal # Normally the things we run from here don't either. -# Using -DWITH_META_FILES +# Using -DWITH_META_MODE # we can buildworld with meta files created which are useful # for debugging, but without any of the rest of a meta mode build. -MK_META_MODE= no +MK_DIRDEPS_BUILD= no MK_STAGING= no # tell meta.autodep.mk to not even think about updating anything. UPDATE_DEPENDFILE= NO .if !make(showconfig) -.export MK_META_MODE MK_STAGING UPDATE_DEPENDFILE +.export MK_DIRDEPS_BUILD MK_STAGING UPDATE_DEPENDFILE .endif .if make(universe) @@ -516,4 +516,4 @@ MAKE_JOB_ERROR_TOKEN= no .endif .endif # bmake -.endif # META_MODE +.endif # DIRDEPS_BUILD Modified: head/include/Makefile ============================================================================== --- head/include/Makefile Sat Nov 14 03:22:59 2015 (r290815) +++ head/include/Makefile Sat Nov 14 03:24:48 2015 (r290816) @@ -166,7 +166,7 @@ compat: mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \ -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ -p ${DESTDIR}${INCLUDEDIR} > /dev/null -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.TARGET} .endif @@ -255,7 +255,7 @@ copies: cd ${.CURDIR}/../sys/teken; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 teken.h \ ${DESTDIR}${INCLUDEDIR}/teken -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.OBJDIR}/${.TARGET} .endif @@ -372,7 +372,7 @@ symlinks: ln -fs ../../../sys/rpc/$$h \ ${DESTDIR}${INCLUDEDIR}/rpc; \ done -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" @touch ${.OBJDIR}/${.TARGET} .endif Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Sat Nov 14 03:22:59 2015 (r290815) +++ head/share/mk/bsd.dep.mk Sat Nov 14 03:24:48 2015 (r290816) @@ -163,7 +163,7 @@ beforedepend: ${DHDRS} beforebuild: ${DHDRS} .endif -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" .include # this depend: bypasses that below # the dependency helps when bootstrapping Modified: head/share/mk/bsd.subdir.mk ============================================================================== --- head/share/mk/bsd.subdir.mk Sat Nov 14 03:22:59 2015 (r290815) +++ head/share/mk/bsd.subdir.mk Sat Nov 14 03:24:48 2015 (r290816) @@ -49,7 +49,7 @@ STANDALONE_SUBDIR_TARGETS?= obj checkdpa .include .if !defined(NEED_SUBDIR) -.if ${.MAKE.LEVEL} == 0 && ${MK_META_MODE} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*)) +.if ${.MAKE.LEVEL} == 0 && ${MK_DIRDEPS_BUILD} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*)) .include # ignore this _SUBDIR: Modified: head/share/mk/local.meta.sys.mk ============================================================================== --- head/share/mk/local.meta.sys.mk Sat Nov 14 03:22:59 2015 (r290815) +++ head/share/mk/local.meta.sys.mk Sat Nov 14 03:24:48 2015 (r290816) @@ -2,7 +2,7 @@ # local configuration specific to meta mode # XXX some of this should be in meta.sys.mk -# we assume that MK_META_MODE=yes +# we assume that MK_DIRDEPS_BUILD=yes # we need this until there is an alternative MK_INSTALL_AS_USER= yes Modified: head/share/mk/local.sys.mk ============================================================================== --- head/share/mk/local.sys.mk Sat Nov 14 03:22:59 2015 (r290815) +++ head/share/mk/local.sys.mk Sat Nov 14 03:24:48 2015 (r290816) @@ -1,6 +1,6 @@ # $FreeBSD$ -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" MAKE_PRINT_VAR_ON_ERROR+= \ .CURDIR \ .MAKE \ @@ -23,3 +23,15 @@ MAKE_PRINT_VAR_ON_ERROR += .MAKE.MAKEFIL .endif .include "src.sys.mk" + +.if ${.MAKE.MODE:Unormal:Mmeta*} != "" +# we can afford to use cookies to prevent some targets +# re-running needlessly +META_COOKIE_TOUCH= touch ${COOKIE.${.TARGET}:U${.OBJDIR}/${.TARGET}} +# some targets need to be .PHONY - but not in meta mode +META_NOPHONY= +.else +META_COOKIE_TOUCH= +META_NOPHONY= .PHONY +.endif + Modified: head/share/mk/sys.mk ============================================================================== --- head/share/mk/sys.mk Sat Nov 14 03:22:59 2015 (r290815) +++ head/share/mk/sys.mk Sat Nov 14 03:24:48 2015 (r290816) @@ -20,14 +20,14 @@ MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n3 # Some options we need now __DEFAULT_NO_OPTIONS= \ DIRDEPS_CACHE \ + DIRDEPS_BUILD \ META_MODE \ - META_FILES \ __DEFAULT_DEPENDENT_OPTIONS= \ - AUTO_OBJ/META_MODE \ - STAGING/META_MODE \ - SYSROOT/META_MODE + AUTO_OBJ/DIRDEPS_BUILD \ + STAGING/DIRDEPS_BUILD \ + SYSROOT/DIRDEPS_BUILD __ENV_ONLY_OPTIONS:= \ ${__DEFAULT_NO_OPTIONS} \ @@ -43,9 +43,9 @@ __ENV_ONLY_OPTIONS:= \ .include -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" .sinclude -.elif ${MK_META_FILES} == "yes" && defined(.MAKEFLAGS) +.elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS) .if ${.MAKEFLAGS:M-B} == "" .MAKE.MODE= meta verbose .endif Copied: head/tools/build/options/WITH_DIRDEPS_BUILD (from r290801, head/tools/build/options/WITH_META_MODE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITH_DIRDEPS_BUILD Sat Nov 14 03:24:48 2015 (r290816, copy of r290801, head/tools/build/options/WITH_META_MODE) @@ -0,0 +1,37 @@ +.\" $FreeBSD$ +Enable building in meta mode. +This is an experimental build feature. +For details see +http://www.crufty.net/sjg/docs/freebsd-meta-mode.htm. +.Pp +The build is driven by dirdeps.mk using +.Va DIRDEPS +stored in +Makefile.depend files found in each directory. +.Pp +The build can be started from anywhere, and behaves the same. +The initial instance of +.Xr make 1 +recursively reads +.Va DIRDEPS +from Makefile.depend +computing a graph of tree dependencies from the current origin. +Setting +.Va NO_DIRDEPS +will skip checking dirdep dependencies and will only build in the current +directory. +.Pp +As each target is made +.Xr make 1 +produces a meta file which is used to capture (and compare) +the command line, +as well as any command output. +If +.Xr filemon 4 +is available the meta file will also capture a record of files +used to produce the target by tracking syscalls. +.Pp +The build will hide commands ran unless +.Va NO_SILENT +is defined. +.Pp Modified: head/tools/build/options/WITH_DIRDEPS_CACHE ============================================================================== --- head/tools/build/options/WITH_DIRDEPS_CACHE Sat Nov 14 03:22:59 2015 (r290815) +++ head/tools/build/options/WITH_DIRDEPS_CACHE Sat Nov 14 03:24:48 2015 (r290816) @@ -2,4 +2,4 @@ Cache result of dirdeps.mk which can save significant time for subsequent builds. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Copied and modified: head/tools/build/options/WITH_META_MODE (from r290801, head/tools/build/options/WITH_META_FILES) ============================================================================== --- head/tools/build/options/WITH_META_FILES Fri Nov 13 20:25:30 2015 (r290801, copy source) +++ head/tools/build/options/WITH_META_MODE Sat Nov 14 03:24:48 2015 (r290816) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Create meta files during non META_MODE build. +Create meta files when not doing DIRDEPS_BUILD. The meta files can be useful for debugging. Modified: head/tools/build/options/WITH_STAGING ============================================================================== --- head/tools/build/options/WITH_STAGING Sat Nov 14 03:22:59 2015 (r290815) +++ head/tools/build/options/WITH_STAGING Sat Nov 14 03:24:48 2015 (r290816) @@ -4,4 +4,4 @@ This can be best thought of as auto-inst .Va DESTDIR with some extra meta data to ensure dependencies can be tracked. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Modified: head/tools/build/options/WITH_SYSROOT ============================================================================== --- head/tools/build/options/WITH_SYSROOT Sat Nov 14 03:22:59 2015 (r290815) +++ head/tools/build/options/WITH_SYSROOT Sat Nov 14 03:24:48 2015 (r290816) @@ -1,4 +1,4 @@ .\" $FreeBSD$ Enable use of sysroot during build. Depends on -.Va WITH_META_MODE . +.Va WITH_DIRDEPS_BUILD . Modified: head/usr.bin/xlint/llib/Makefile ============================================================================== --- head/usr.bin/xlint/llib/Makefile Sat Nov 14 03:22:59 2015 (r290815) +++ head/usr.bin/xlint/llib/Makefile Sat Nov 14 03:24:48 2015 (r290816) @@ -16,6 +16,6 @@ llib-lstdc.ln: llib-lstdc .include -.if ${MK_META_MODE} == "yes" +.if ${MK_DIRDEPS_BUILD} == "yes" LINTFLAGS+= -I${STAGE_INCLUDEDIR} .endif