Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jan 2018 01:06:05 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r327663 - in stable/11: . share/man/man7
Message-ID:  <201801070106.w07165K0056253@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sun Jan  7 01:06:04 2018
New Revision: 327663
URL: https://svnweb.freebsd.org/changeset/base/327663

Log:
  MFC r327439:
  
  Allow use of .WAIT in the LOCAL_DIRS and LOCAL_LIB_DIRS lists.
  
  A comment in Makefile.inc1 has long stated that LOCAL_DIRS are built last,
  after the base system.  Incremental improvements in parallel building over
  the years have led to LOCAL_DIRS being built in parallel with base system
  directories.  This change allows the .WAIT directive to appear in LOCAL_DIRS
  and LOCAL_LIB_DIRS lists to give the user some control over parallel
  building of local additions.
  
  Differential Revision:	https://reviews.freebsd.org/D13622

Modified:
  stable/11/Makefile.inc1
  stable/11/share/man/man7/build.7
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/Makefile.inc1
==============================================================================
--- stable/11/Makefile.inc1	Sun Jan  7 00:44:22 2018	(r327662)
+++ stable/11/Makefile.inc1	Sun Jan  7 01:06:04 2018	(r327663)
@@ -260,10 +260,11 @@ SUBDIR+=	tests
 SUBDIR+=contrib/ofed
 .endif
 
-# Local directories are last, since it is nice to at least get the base
-# system rebuilt before you do them.
+# Local directories are built in parallel with the base system directories.
+# Users may insert a .WAIT directive at the beginning or elsewhere within
+# the LOCAL_DIRS and LOCAL_LIB_DIRS lists as needed.
 .for _DIR in ${LOCAL_DIRS}
-.if exists(${.CURDIR}/${_DIR}/Makefile)
+.if ${_DIR} == ".WAIT" || exists(${.CURDIR}/${_DIR}/Makefile)
 SUBDIR+=	${_DIR}
 .endif
 .endfor
@@ -274,7 +275,7 @@ SUBDIR+=	${_DIR}
 _REDUNDANT_LIB_DIRS+=    ${LOCAL_LIB_DIRS:M${_DIR}*}
 .endfor
 .for _DIR in ${LOCAL_LIB_DIRS}
-.if empty(_REDUNDANT_LIB_DIRS:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile)
+.if ${_DIR} == ".WAIT" || (empty(_REDUNDANT_LIB_DIRS:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile))
 SUBDIR+=	${_DIR}
 .endif
 .endfor
@@ -2146,7 +2147,7 @@ lib/liblzma__L: lib/libthr__L
 
 _generic_libs=	${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ${_ofed_lib}
 .for _DIR in ${LOCAL_LIB_DIRS}
-.if exists(${.CURDIR}/${_DIR}/Makefile) && empty(_generic_libs:M${_DIR})
+.if ${_DIR} == ".WAIT"  || (empty(_generic_libs:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile))
 _generic_libs+= ${_DIR}
 .endif
 .endfor

Modified: stable/11/share/man/man7/build.7
==============================================================================
--- stable/11/share/man/man7/build.7	Sun Jan  7 00:44:22 2018	(r327662)
+++ stable/11/share/man/man7/build.7	Sun Jan  7 01:06:04 2018	(r327663)
@@ -441,6 +441,15 @@ If set, this variable supplies a list of additional di
 the root of the source tree to build as part of the
 .Cm everything
 target.
+The directories are built in parallel with each other,
+and with the base system directories.
+Insert a
+.Va .WAIT
+directive at the beginning of the
+.Va LOCAL_DIRS
+list to ensure all base system directories are built first.
+.Va .WAIT
+may also be used as needed elsewhere within the list.
 .It Va LOCAL_ITOOLS
 If set, this variable supplies a list of additional tools that are used by the
 .Cm installworld
@@ -452,6 +461,15 @@ If set, this variable supplies a list of additional di
 the root of the source tree to build as part of the
 .Cm libraries
 target.
+The directories are built in parallel with each other,
+and with the base system libraries.
+Insert a
+.Va .WAIT
+directive at the beginning of the
+.Va LOCAL_DIRS
+list to ensure all base system libraries are built first.
+.Va .WAIT
+may also be used as needed elsewhere within the list.
 .It Va LOCAL_MTREE
 If set, this variable supplies a list of additional mtrees relative to the
 root of the source tree to use as part of the



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801070106.w07165K0056253>