From owner-svn-src-all@freebsd.org Tue May 9 20:22:00 2017 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 870D1D6512F; Tue, 9 May 2017 20:22:00 +0000 (UTC) (envelope-from bdrewery@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 3A82C1551; Tue, 9 May 2017 20:22:00 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v49KLxmH034155; Tue, 9 May 2017 20:21:59 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v49KLx6r034152; Tue, 9 May 2017 20:21:59 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201705092021.v49KLx6r034152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 9 May 2017 20:21:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r318106 - in head: . share/man/man7 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.23 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: Tue, 09 May 2017 20:22:00 -0000 Author: bdrewery Date: Tue May 9 20:21:58 2017 New Revision: 318106 URL: https://svnweb.freebsd.org/changeset/base/318106 Log: Support -DWORLDFAST to skip all build steps up to 'libraries' and 'everything'. This allows for building the world against the already-created host/sysroot environment. It is not overly useful outside of cases of large-impact changes such as a testing a new compiler. It will allow quickly getting back to an error in the target-phases of the build where a new compiler is being used. Sponsored by: Dell EMC Isilon Modified: head/Makefile.inc1 head/share/man/man7/build.7 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue May 9 20:21:38 2017 (r318105) +++ head/Makefile.inc1 Tue May 9 20:21:58 2017 (r318106) @@ -302,6 +302,11 @@ CLEANDIR= clean cleandepend CLEANDIR= cleandir .endif +.if defined(WORLDFAST) +NO_CLEAN= t +NO_OBJ= t +.endif + .if ${MK_META_MODE} == "yes" # If filemon is used then we can rely on the build being incremental-safe. # The .meta files will also track the build command and rebuild should @@ -831,6 +836,7 @@ everything: .PHONY ${_+_}cd ${.CURDIR}; _PARALLEL_SUBDIR_OK=1 ${WMAKE} all WMAKE_TGTS= +.if !defined(WORLDFAST) WMAKE_TGTS+= _worldtmp _legacy .if empty(SUBDIR_OVERRIDE) WMAKE_TGTS+= _bootstrap-tools @@ -841,7 +847,9 @@ WMAKE_TGTS+= _obj .endif WMAKE_TGTS+= _build-tools _cross-tools WMAKE_TGTS+= _compiler-metadata -WMAKE_TGTS+= _includes _libraries +WMAKE_TGTS+= _includes +.endif +WMAKE_TGTS+= _libraries WMAKE_TGTS+= everything .if defined(LIBCOMPAT) && empty(SUBDIR_OVERRIDE) WMAKE_TGTS+= build${libcompat} Modified: head/share/man/man7/build.7 ============================================================================== --- head/share/man/man7/build.7 Tue May 9 20:21:38 2017 (r318105) +++ head/share/man/man7/build.7 Tue May 9 20:21:58 2017 (r318106) @@ -617,6 +617,16 @@ target. If set, the update process does not update the www tree as part of the .Dq make update target. +.It Va WORLDFAST +If set, the build target +.Cm buildworld +defaults to setting +.Va NO_CLEAN , +.Va NO_OBJ , +and will skip most bootstrap phases. +It will only bootstrap libraries and build all of userland. +This option should be used only when it is known that none of the bootstrap +needs changed and that no new directories have been connected to the build. .El .Pp Builds under directory