summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2004-08-09 11:38:41 +0000
committerharti <harti@FreeBSD.org>2004-08-09 11:38:41 +0000
commit91ae96e9ab60545b12f373666c26846c1980e13c (patch)
treece06f2df472d64774890fe49af15bc2a9460c586
parentb79aea0b622c5dfdea238c36d7f126a4dc0b42a6 (diff)
downloadFreeBSD-src-91ae96e9ab60545b12f373666c26846c1980e13c.zip
FreeBSD-src-91ae96e9ab60545b12f373666c26846c1980e13c.tar.gz
Make make recurse into sub-directories and sub-makes when given
two -n flags. If only one -n flag is given the old behaviour is retained (POLA). In order to make this working for installworld change the IMAKEENV in this case so that the tools are found (we have no temporary installation environment in this case). Submitted by: ru (IMAKEENV part)
-rw-r--r--Makefile14
-rw-r--r--Makefile.inc149
2 files changed, 34 insertions, 29 deletions
diff --git a/Makefile b/Makefile
index a554e29..51bd582 100644
--- a/Makefile
+++ b/Makefile
@@ -126,7 +126,7 @@ cleanworld:
rm -rf ${BW_CANONICALOBJDIR}/*
.endif
# To be safe in this case, fall back to a 'make cleandir'
- @cd ${.CURDIR}; ${_MAKE} cleandir
+ ${_+_}@cd ${.CURDIR}; ${_MAKE} cleandir
.else
-rm -rf ${.OBJDIR}/*
chflags -R 0 ${.OBJDIR}
@@ -138,7 +138,7 @@ cleanworld:
#
${TGTS}:
- @cd ${.CURDIR}; \
+ ${_+_}@cd ${.CURDIR}; \
${_MAKE} ${.TARGET}
# Set a reasonable default
@@ -165,16 +165,16 @@ world: upgrade_checks
@echo "--------------------------------------------------------------"
@echo ">>> Making 'pre-world' target"
@echo "--------------------------------------------------------------"
- @cd ${.CURDIR}; ${_MAKE} pre-world
+ ${_+_}@cd ${.CURDIR}; ${_MAKE} pre-world
.endif
- @cd ${.CURDIR}; ${_MAKE} buildworld
- @cd ${.CURDIR}; ${_MAKE} -B installworld
+ ${_+_}@cd ${.CURDIR}; ${_MAKE} buildworld
+ ${_+_}@cd ${.CURDIR}; ${_MAKE} -B installworld
.if target(post-world)
@echo
@echo "--------------------------------------------------------------"
@echo ">>> Making 'post-world' target"
@echo "--------------------------------------------------------------"
- @cd ${.CURDIR}; ${_MAKE} post-world
+ ${_+_}@cd ${.CURDIR}; ${_MAKE} post-world
.endif
@echo
@echo "--------------------------------------------------------------"
@@ -232,7 +232,7 @@ make: .PHONY
@echo "--------------------------------------------------------------"
@echo ">>> Building an up-to-date make(1)"
@echo "--------------------------------------------------------------"
- @cd ${.CURDIR}/usr.bin/make; \
+ ${_+_}@cd ${.CURDIR}/usr.bin/make; \
${MMAKE} obj && \
${MMAKE} depend && \
${MMAKE} all && \
diff --git a/Makefile.inc1 b/Makefile.inc1
index eb072a4..055db2e 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -204,8 +204,13 @@ WMAKEENV= ${CROSSENV} \
WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1
# install stage
+.if empty(.MAKEFLAGS:M-n)
IMAKEENV= ${CROSSENV} \
PATH=${STRICTTMPPATH}:${INSTALLTMP}
+.else
+IMAKEENV= ${CROSSENV} \
+ PATH=${TMPPATH}:${INSTALLTMP}
+.endif
IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1
# kernel stage
@@ -272,51 +277,51 @@ _legacy:
@echo "--------------------------------------------------------------"
@echo ">>> stage 1.1: legacy release compatibility shims"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${BMAKE} legacy
+ ${_+_}cd ${.CURDIR}; ${BMAKE} legacy
_bootstrap-tools:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 1.2: bootstrap tools"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${BMAKE} bootstrap-tools
+ ${_+_}cd ${.CURDIR}; ${BMAKE} bootstrap-tools
_cleanobj:
.if !defined(NOCLEAN)
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 2.1: cleaning up the object tree"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${WMAKE} ${CLEANDIR:S/^/par-/}
+ ${_+_}cd ${.CURDIR}; ${WMAKE} ${CLEANDIR:S/^/par-/}
.endif
_obj:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 2.2: rebuilding the object tree"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${WMAKE} par-obj
+ ${_+_}cd ${.CURDIR}; ${WMAKE} par-obj
_build-tools:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 2.3: build tools"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${TMAKE} build-tools
+ ${_+_}cd ${.CURDIR}; ${TMAKE} build-tools
_cross-tools:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 3: cross tools"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${XMAKE} cross-tools
+ ${_+_}cd ${.CURDIR}; ${XMAKE} cross-tools
_includes:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.1: building includes"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${WMAKE} SHARED=symlinks par-includes
+ ${_+_}cd ${.CURDIR}; ${WMAKE} SHARED=symlinks par-includes
_libraries:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.2: building libraries"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; \
+ ${_+_}cd ${.CURDIR}; \
${WMAKE} -DNOFSCHG -DNOHTML -DNOINFO -DNOLINT -DNOMAN -DNOPROFILE \
libraries
_depend:
@@ -324,13 +329,13 @@ _depend:
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.3: make dependencies"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${WMAKE} par-depend
+ ${_+_}cd ${.CURDIR}; ${WMAKE} par-depend
everything:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.4: building everything"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${WMAKE} par-all
+ ${_+_}cd ${.CURDIR}; ${WMAKE} par-all
WMAKE_TGTS=
@@ -452,7 +457,7 @@ distributeworld installworld: installcheck
test true uname wc zic; do \
cp `which $$prog` ${INSTALLTMP}; \
done
- cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}
+ ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}
rm -rf ${INSTALLTMP}
#
@@ -466,18 +471,18 @@ reinstall: ${SPECIAL_INSTALLCHECKS}
@echo "--------------------------------------------------------------"
@echo ">>> Making hierarchy"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 hierarchy
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 hierarchy
@echo
@echo "--------------------------------------------------------------"
@echo ">>> Installing everything"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
redistribute:
@echo "--------------------------------------------------------------"
@echo ">>> Distributing everything"
@echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute
#
# buildkernel and installkernel
@@ -672,7 +677,7 @@ update:
#
legacy:
.for _tool in tools/build
- @${ECHODIR} "===> ${_tool}"; \
+ ${_+_}@${ECHODIR} "===> ${_tool}"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy includes; \
@@ -747,7 +752,7 @@ bootstrap-tools:
${_crunchgen} \
${_gensnmptree} \
${_kbdcontrol}
- @${ECHODIR} "===> ${_tool}"; \
+ ${_+_}@${ECHODIR} "===> ${_tool}"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ depend; \
@@ -786,14 +791,14 @@ build-tools:
usr.bin/awk \
lib/libmagic \
usr.sbin/sysinstall
- @${ECHODIR} "===> ${_tool}"; \
+ ${_+_}@${ECHODIR} "===> ${_tool}"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ build-tools
.endfor
.for _tool in \
${_kerberos5_tools}
- @${ECHODIR} "===> ${_tool}"; \
+ ${_+_}@${ECHODIR} "===> ${_tool}"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ depend; \
@@ -837,7 +842,7 @@ cross-tools:
${_crunchide} \
${_elf2exe} \
${_kgzip}
- @${ECHODIR} "===> ${_tool}"; \
+ ${_+_}@${ECHODIR} "===> ${_tool}"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ depend; \
@@ -930,7 +935,7 @@ _generic_libs+= usr.sbin/pcvt/keycap
.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs}
${_lib}__L: .PHONY
.if exists(${.CURDIR}/${_lib})
- @${ECHODIR} "===> ${_lib}"; \
+ ${_+_}@${ECHODIR} "===> ${_lib}"; \
cd ${.CURDIR}/${_lib}; \
${MAKE} DIRPRFX=${_lib}/ depend; \
${MAKE} DIRPRFX=${_lib}/ all; \
@@ -942,7 +947,7 @@ ${_lib}__L: .PHONY
# static PAM library, and dynamic PAM library before dynamic PAM
# modules.
lib/libpam__L: .PHONY
- @${ECHODIR} "===> lib/libpam"; \
+ ${_+_}@${ECHODIR} "===> lib/libpam"; \
cd ${.CURDIR}/lib/libpam; \
${MAKE} DIRPRFX=lib/libpam/ depend; \
${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \
@@ -955,7 +960,7 @@ _generic_libs: ${_generic_libs:S/$/__L/}
.for __target in all clean cleandepend cleandir depend includes obj
.for entry in ${SUBDIR}
${entry}.${__target}__D: .PHONY
- @if test -d ${.CURDIR}/${entry}.${MACHINE_ARCH}; then \
+ ${_+_}@if test -d ${.CURDIR}/${entry}.${MACHINE_ARCH}; then \
${ECHODIR} "===> ${DIRPRFX}${entry}.${MACHINE_ARCH}"; \
edir=${entry}.${MACHINE_ARCH}; \
cd ${.CURDIR}/$${edir}; \
OpenPOWER on IntegriCloud