From 2abeba9d7ad7d2f38a639779c51a154b315e1f65 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Fri, 3 Nov 2017 23:22:03 +0000 Subject: [PATCH] Follow-up r318105: Don't use NO_OBJ at top-level, use NO_OBJWALK. NO_OBJ has a very specific meaning in sub-directories in that no object directory will be made. If a user wanted to skip the 'make obj' phase then passing -DNO_OBJ would break all sub-directories from building properly. Using NO_OBJ internally also causes issue with NO_OBJ handling being added in share/mk/bsd.init.mk soon. Sponsored by: Dell EMC Isilon --- Makefile.inc1 | 30 +++++++++++++++--------------- share/man/man7/build.7 | 6 +++--- sys/conf/kern.pre.mk | 6 +++--- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 64bf191d0d4d..0ee35a41d71b 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -301,7 +301,7 @@ CLEANDIR= cleandir .if defined(WORLDFAST) NO_CLEAN= t -NO_OBJ= t +NO_OBJWALK= t .endif .if ${MK_META_MODE} == "yes" @@ -312,11 +312,11 @@ NO_OBJ= t NO_CLEAN= t .endif .endif -.if defined(NO_OBJ) || ${MK_AUTO_OBJ} == "yes" -NO_OBJ= t +.if defined(NO_OBJWALK) || ${MK_AUTO_OBJ} == "yes" +NO_OBJWALK= t NO_KERNELOBJ= t .endif -.if !defined(NO_OBJ) +.if !defined(NO_OBJWALK) _obj= obj .endif @@ -942,7 +942,7 @@ WMAKE_TGTS+= _sanity_check _worldtmp _legacy WMAKE_TGTS+= _bootstrap-tools .endif WMAKE_TGTS+= _cleanobj -.if !defined(NO_OBJ) +.if !defined(NO_OBJWALK) WMAKE_TGTS+= _obj .endif WMAKE_TGTS+= _build-tools _cross-tools @@ -1804,7 +1804,7 @@ legacy: .PHONY .for _tool in tools/build ${_elftoolchain_libs} ${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,all,install)"; \ cd ${.CURDIR}/${_tool}; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP}/legacy includes; \ ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no all; \ ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no \ @@ -1950,7 +1950,7 @@ bootstrap-tools: .PHONY ${_bt}-${_tool}: .PHONY .MAKE ${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \ cd ${.CURDIR}/${_tool}; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ ${MAKE} DIRPRFX=${_tool}/ all; \ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP}/legacy install @@ -2001,7 +2001,7 @@ build-tools_${_tool}: .PHONY ${_+_}@${ECHODIR} "===> ${_tool} (${_bt_clean:D${_bt_clean},}obj,build-tools)"; \ cd ${.CURDIR}/${_tool}; \ if [ -n "${_bt_clean}" ]; then ${MAKE} DIRPRFX=${_tool}/ ${_bt_clean}; fi; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ ${MAKE} DIRPRFX=${_tool}/ build-tools build-tools: build-tools_${_tool} .endfor @@ -2086,7 +2086,7 @@ cross-tools: .MAKE .PHONY ${_usb_tools} ${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \ cd ${.CURDIR}/${_tool}; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \ ${MAKE} DIRPRFX=${_tool}/ all; \ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP} install .endfor @@ -2227,7 +2227,7 @@ native-xtools: .PHONY # needed build tools are built. ${_+_}cd ${.CURDIR}; ${NXBTMAKE} _includes MK_CLANG=no MK_GCC=no ${_+_}cd ${.CURDIR}; ${NXBTMAKE} _libraries MK_CLANG=no MK_GCC=no -.if !defined(NO_OBJ) +.if !defined(NO_OBJWALK) ${_+_}cd ${.CURDIR}; ${NXBMAKE} SUBDIR_OVERRIDE="${NXBDIRS:M*}" _obj .endif ${_+_}cd ${.CURDIR}; ${NXBMAKE} SUBDIR_OVERRIDE="${NXBDIRS:M*}" \ @@ -2504,7 +2504,7 @@ ${_lib}__PL: .PHONY .MAKE .if exists(${.CURDIR}/${_lib}) ${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \ cd ${.CURDIR}/${_lib}; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; fi; \ ${MAKE} MK_TESTS=no MK_PROFILE=no -DNO_PIC \ DIRPRFX=${_lib}/ all; \ ${MAKE} MK_TESTS=no MK_PROFILE=no -DNO_PIC \ @@ -2517,7 +2517,7 @@ ${_lib}__L: .PHONY .MAKE .if exists(${.CURDIR}/${_lib}) ${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \ cd ${.CURDIR}/${_lib}; \ - if [ -z "${NO_OBJ}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; fi; \ ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ all; \ ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ install .endif @@ -2855,7 +2855,7 @@ _xb-bootstrap-tools: .PHONY ${_yacc} ${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \ cd ${.CURDIR}/${_tool}; \ - if [ -z "${NO_OBJ}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ obj; fi; \ ${CDMAKE} DIRPRFX=${_tool}/ all; \ ${CDMAKE} DIRPRFX=${_tool}/ DESTDIR=${CDTMP} install .endfor @@ -2877,7 +2877,7 @@ _xb-cross-tools: .PHONY .for _tool in ${XDEVDIRS} ${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,all)"; \ cd ${.CURDIR}/${_tool}; \ - if [ -z "${NO_OBJ}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ obj; fi; \ + if [ -z "${NO_OBJWALK}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ obj; fi; \ ${CDMAKE} DIRPRFX=${_tool}/ all .endfor @@ -2912,7 +2912,7 @@ _xi-cross-tools: .PHONY .endfor _xi-includes: .PHONY -.if !defined(NO_OBJ) +.if !defined(NO_OBJWALK) ${_+_}cd ${.CURDIR}; ${CD2MAKE} -f Makefile.inc1 _obj \ DESTDIR=${XDDESTDIR} .endif diff --git a/share/man/man7/build.7 b/share/man/man7/build.7 index b24a3d52bd92..aabae96fa7ab 100644 --- a/share/man/man7/build.7 +++ b/share/man/man7/build.7 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 26, 2017 +.Dd November 3, 2017 .Dt BUILD 7 .Os .Sh NAME @@ -683,7 +683,7 @@ documentation as part of the target. .It Va NO_LIBS If set, the libraries phase will be skipped. -.It Va NO_OBJ +.It Va NO_OBJWALK If set, no object directories will be created. This should only be used if object directories were created in a previous build and no new directories are connected. @@ -700,7 +700,7 @@ If set, the build target .Cm buildworld defaults to setting .Va NO_CLEAN , -.Va NO_OBJ , +.Va NO_OBJWALK , 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 diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index cd525e5b4dea..da318c02a22d 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -24,11 +24,11 @@ _srcconf_included_: .MAKE.MODE+= curdirOk=yes .endif -.if defined(NO_OBJ) || ${MK_AUTO_OBJ} == "yes" -NO_OBJ= t +.if defined(NO_OBJWALK) || ${MK_AUTO_OBJ} == "yes" +NO_OBJWALK= t NO_MODULES_OBJ= t .endif -.if !defined(NO_OBJ) +.if !defined(NO_OBJWALK) _obj= obj .endif