Author: arichardson
Date: Mon Aug 20 10:39:53 2018
New Revision: 338098
URL: https://svnweb.freebsd.org/changeset/base/338098

Log:
  Don't create directories in ${WORLDTMP}/legacy with mtree
  
  This has two advantages:
  1) We no longer create lots of empty directories that are not needed
  2) This is a requirement for building on non-FreeBSD hosts since mtree will
  only exist after the bootstrap-tools phase there.
  
  Aproved By:   jhb (mentor)
  Differential Revision: https://reviews.freebsd.org/D16773

Modified:
  head/Makefile.inc1
  head/tools/build/Makefile

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1  Mon Aug 20 10:39:48 2018        (r338097)
+++ head/Makefile.inc1  Mon Aug 20 10:39:53 2018        (r338098)
@@ -968,29 +968,10 @@ _worldtmp: .PHONY
 .endif # !defined(NO_CLEAN)
        @mkdir -p ${WORLDTMP}
        @touch ${WORLDTMP}/${.TARGET}
-
-.for _dir in \
-    lib lib/casper lib/geom usr legacy/bin legacy/usr
-       mkdir -p ${WORLDTMP}/${_dir}
-.endfor
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
-           -p ${WORLDTMP}/legacy/usr >/dev/null
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
-           -p ${WORLDTMP}/legacy/usr/include >/dev/null
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
-           -p ${WORLDTMP}/usr >/dev/null
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
-           -p ${WORLDTMP}/usr/include >/dev/null
-       ln -sf ${.CURDIR}/sys ${WORLDTMP}
-.if ${MK_DEBUG_FILES} != "no"
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
-           -p ${WORLDTMP}/legacy/usr/lib >/dev/null
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
-           -p ${WORLDTMP}/usr/lib >/dev/null
-.endif
-.for _mtree in ${LOCAL_MTREE}
-       ${WORLDTMP_MTREE} -f ${.CURDIR}/${_mtree} -p ${WORLDTMP} > /dev/null
-.endfor
+# We can't use mtree to create the worldtmp directories since it may not be
+# available on the target system (this happens e.g. when building on 
non-FreeBSD)
+       cd ${.CURDIR}/tools/build; \
+           ${MAKE} DIRPRFX=tools/build/ DESTDIR=${WORLDTMP}/legacy installdirs
 _legacy:
        @echo
        @echo "--------------------------------------------------------------"
@@ -1003,6 +984,19 @@ _bootstrap-tools:
        @echo ">>> stage 1.2: bootstrap tools"
        @echo "--------------------------------------------------------------"
        ${_+_}cd ${.CURDIR}; ${BMAKE} bootstrap-tools
+       mkdir -p ${WORLDTMP}/usr ${WORLDTMP}/lib/casper ${WORLDTMP}/lib/geom
+       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
+           -p ${WORLDTMP}/usr >/dev/null
+       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
+           -p ${WORLDTMP}/usr/include >/dev/null
+       ln -sf ${.CURDIR}/sys ${WORLDTMP}
+.if ${MK_DEBUG_FILES} != "no"
+       ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
+           -p ${WORLDTMP}/usr/lib >/dev/null
+.endif
+.for _mtree in ${LOCAL_MTREE}
+       ${WORLDTMP_MTREE} -f ${.CURDIR}/${_mtree} -p ${WORLDTMP} > /dev/null
+.endfor
 _cleanobj:
 .if !defined(NO_CLEAN)
        @echo

Modified: head/tools/build/Makefile
==============================================================================
--- head/tools/build/Makefile   Mon Aug 20 10:39:48 2018        (r338097)
+++ head/tools/build/Makefile   Mon Aug 20 10:39:53 2018        (r338098)
@@ -59,4 +59,17 @@ SUBDIR=              cross-build
 # Needed to build config (since it uses libnv)
 SYSINCS+=      ${SRCTOP}/sys/sys/nv.h ${SRCTOP}/sys/sys/cnv.h
 
+
+# Create all the directories that are needed during the legacy, bootstrap-tools
+# and cross-tools stages. We do this here using mkdir since mtree may not exist
+# yet (this happens if we are crossbuilding from Linux/Mac).
+installdirs:
+.for _dir in bin sbin usr/bin usr/sbin usr/lib usr/include lib/geom lib/casper
+       mkdir -p "${DESTDIR}/${_dir}"
+.endfor
+
+.for _group in ${INCSGROUPS:NINCS}
+       mkdir -p "${DESTDIR}/${${_group}DIR}"
+.endfor
+
 .include <bsd.lib.mk>
_______________________________________________
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