Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.

Reviewed by:	emaste, hselasky (partial), brooks (brief)
Discussed on:	arch@
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D5742
This commit is contained in:
Bryan Drewery 2016-03-30 23:50:23 +00:00
parent 4f1c85df14
commit 497e80911e
27 changed files with 42 additions and 298 deletions

View File

@ -124,7 +124,7 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
installworld kernel-toolchain libraries lint maninstall \
obj objlink rerelease showconfig tags toolchain update \
_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
_build-tools _cross-tools _includes _libraries _depend \
_build-tools _cross-tools _includes _libraries \
build32 distribute32 install32 build32 distribute32 install32 \
builddtb xdev xdev-build xdev-install \
xdev-links native-xtools installconfig \

View File

@ -7,10 +7,9 @@
# -DDB_FROM_SRC use the user/group databases in src/etc instead of
# the system database when installing.
# -DNO_SHARE do not go into share subdir
# -DKERNFAST define NO_KERNEL{CONFIG,CLEAN,DEPEND,OBJ}
# -DKERNFAST define NO_KERNEL{CONFIG,CLEAN,OBJ}
# -DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel
# -DNO_KERNELCLEAN do not run ${MAKE} clean in ${MAKE} buildkernel
# -DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel
# -DNO_KERNELOBJ do not run ${MAKE} obj in ${MAKE} buildkernel
# -DNO_PORTSUPDATE do not update ports in ${MAKE} update
# -DNO_ROOT install without using root privilege
@ -145,16 +144,6 @@ CLEANDIR= clean cleandepend
CLEANDIR= cleandir
.endif
# FAST_DEPEND can skip depend tree-walks.
.if ${MK_FAST_DEPEND} == "yes"
NO_DEPEND= t
NO_KERNELDEPEND=t
.endif
# Ensure shell checks later have a value.
.if defined(NO_DEPEND)
NO_DEPEND= t
.endif
LOCAL_TOOL_DIRS?=
PACKAGEDIR?= ${DESTDIR}/${DISTDIR}
@ -406,7 +395,6 @@ X${BINUTIL}?= ${${BINUTIL}}
.endif
.endfor
CROSSENV+= CC="${XCC} ${XCFLAGS}" CXX="${XCXX} ${XCFLAGS} ${XCXXFLAGS}" \
DEPFLAGS="${DEPFLAGS}" \
CPP="${XCPP} ${XCFLAGS}" \
AS="${XAS}" AR="${XAR}" LD="${XLD}" NM=${XNM} \
OBJDUMP=${XOBJDUMP} OBJCOPY="${XOBJCOPY}" \
@ -438,10 +426,6 @@ XCFLAGS+= -isystem ${WORLDTMP}/usr/include
# Force using libc++ for external GCC.
XCXXFLAGS+= -isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \
-nostdinc++ -L${WORLDTMP}/../lib/libc++
# XXX: DEPFLAGS is a workaround for not properly passing CXXFLAGS to sub-makes
# due to CXX="${XCXX} ${XCXXFLAGS}". bsd.dep.mk does use CXXFLAGS when
# building C++ files so this can come out if passing CXXFLAGS down is fixed.
DEPFLAGS+= -I${WORLDTMP}/usr/include/c++/v1
.else
TARGET_ABI?= unknown
TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd11.0
@ -635,16 +619,10 @@ _libraries:
${_+_}cd ${.CURDIR}; \
${WMAKE} -DNO_FSCHG MK_HTML=no -DNO_LINT MK_MAN=no \
MK_PROFILE=no MK_TESTS=no MK_TESTS_SUPPORT=${MK_TESTS} libraries
_depend:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.3: make dependencies"
@echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; ${WMAKE} depend
everything:
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 4.4: building everything"
@echo ">>> stage 4.3: building everything"
@echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; _PARALLEL_SUBDIR_OK=1 ${WMAKE} all
@ -655,9 +633,6 @@ WMAKE_TGTS+= _bootstrap-tools
.endif
WMAKE_TGTS+= _cleanobj _obj _build-tools _cross-tools
WMAKE_TGTS+= _includes _libraries
.if !defined(NO_DEPEND)
WMAKE_TGTS+= _depend
.endif
WMAKE_TGTS+= everything
.if defined(LIBCOMPAT) && empty(SUBDIR_OVERRIDE)
WMAKE_TGTS+= build${libcompat}
@ -700,7 +675,7 @@ buildenv: .PHONY
@cd ${BUILDENV_DIR} && env ${WMAKEENV} BUILDENV=1 ${BUILDENV_SHELL} \
|| true
TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild${libcompat}}
TOOLCHAIN_TGTS= ${WMAKE_TGTS:Neverything:Nbuild${libcompat}}
toolchain: ${TOOLCHAIN_TGTS}
kernel-toolchain: ${TOOLCHAIN_TGTS:N_includes:N_libraries}
@ -997,7 +972,6 @@ distrib-dirs distribution: .MAKE .PHONY
.if defined(KERNFAST)
NO_KERNELCLEAN= t
NO_KERNELCONFIG= t
NO_KERNELDEPEND= t
NO_KERNELOBJ= t
# Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah
.if !defined(KERNCONF) && ${KERNFAST} != "1"
@ -1079,16 +1053,9 @@ buildkernel: .MAKE .PHONY
@echo ">>> stage 2.3: build tools"
@echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; ${KTMAKE} kernel-tools
.if !defined(NO_KERNELDEPEND)
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 3.1: making dependencies"
@echo "--------------------------------------------------------------"
${_+_}cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} depend -DNO_MODULES_OBJ
.endif
@echo
@echo "--------------------------------------------------------------"
@echo ">>> stage 3.2: building everything"
@echo ">>> stage 3.1: building everything"
@echo "--------------------------------------------------------------"
${_+_}cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} all -DNO_MODULES_OBJ
@echo "--------------------------------------------------------------"
@ -1287,11 +1254,10 @@ legacy:
false
.endif
.for _tool in tools/build ${_elftoolchain_libs}
${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy includes; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} DIRPRFX=${_tool}/ depend; fi; \
${MAKE} DIRPRFX=${_tool}/ all; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy install
.endfor
@ -1447,10 +1413,9 @@ bootstrap-tools: .PHONY
${_vtfontcvt} \
usr.bin/localedef
${_bt}-${_tool}: .PHONY .MAKE
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} DIRPRFX=${_tool}/ depend; fi; \
${MAKE} DIRPRFX=${_tool}/ all; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy install
@ -1496,10 +1461,9 @@ build-tools: build-tools_${_tool}
.for _tool in \
${_gcc_tools}
build-tools_${_tool}: .PHONY
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,all)"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} DIRPRFX=${_tool}/ depend; fi; \
${MAKE} DIRPRFX=${_tool}/ all
build-tools: build-tools_${_tool}
.endfor
@ -1580,10 +1544,9 @@ cross-tools: .MAKE .PHONY
${_btxld} \
${_crunchide} \
${_usb_tools}
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} DIRPRFX=${_tool}/ depend; fi; \
${MAKE} DIRPRFX=${_tool}/ all; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX} install
.endfor
@ -1612,10 +1575,9 @@ NXBMAKE= ${NXBENV} ${MAKE} \
native-xtools: .PHONY
.if ${MK_GCC_BOOTSTRAP} != "no"
mkdir -p ${OBJTREE}/gperf_for_gcc/usr/bin
${_+_}@${ECHODIR} "===> ${_gperf} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_gperf} (obj,all,install)"; \
cd ${.CURDIR}/${_gperf}; \
${NXBMAKE} DIRPRFX=${_gperf}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${NXBMAKE} DIRPRFX=${_gperf}/ depend; fi; \
${NXBMAKE} DIRPRFX=${_gperf}/ all; \
${NXBMAKE} DIRPRFX=${_gperf}/ DESTDIR=${OBJTREE}/gperf_for_gcc install
.endif
@ -1687,10 +1649,9 @@ native-xtools: .PHONY
usr.bin/xz \
usr.bin/yacc \
usr.sbin/chown
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${NXBMAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${NXBMAKE} DIRPRFX=${_tool}/ depend; fi; \
${NXBMAKE} DIRPRFX=${_tool}/ all; \
${NXBMAKE} DIRPRFX=${_tool}/ DESTDIR=${NXBDESTDIR} install
.endfor
@ -1926,10 +1887,9 @@ gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncursesw__L
.for _lib in ${_prereq_libs}
${_lib}__PL: .PHONY .MAKE
.if exists(${.CURDIR}/${_lib})
${_+_}@${ECHODIR} "===> ${_lib} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \
cd ${.CURDIR}/${_lib}; \
${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ depend; fi; \
${MAKE} MK_TESTS=no MK_PROFILE=no -DNO_PIC \
DIRPRFX=${_lib}/ all; \
${MAKE} MK_TESTS=no MK_PROFILE=no -DNO_PIC \
@ -1940,10 +1900,9 @@ ${_lib}__PL: .PHONY .MAKE
.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs}
${_lib}__L: .PHONY .MAKE
.if exists(${.CURDIR}/${_lib})
${_+_}@${ECHODIR} "===> ${_lib} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \
cd ${.CURDIR}/${_lib}; \
${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ depend; fi; \
${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ all; \
${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ install
.endif
@ -1953,10 +1912,9 @@ ${_lib}__L: .PHONY .MAKE
# static PAM library, and dynamic PAM library before dynamic PAM
# modules.
lib/libpam__L: .PHONY .MAKE
${_+_}@${ECHODIR} "===> lib/libpam (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> lib/libpam (obj,all,install)"; \
cd ${.CURDIR}/lib/libpam; \
${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ depend; fi; \
${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ \
-D_NO_LIBPAM_SO_YET all; \
${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ \
@ -2251,10 +2209,9 @@ _xb-bootstrap-tools: .PHONY
.for _tool in \
${_clang_tblgen} \
${_gperf}
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${CDMAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ depend; fi; \
${CDMAKE} DIRPRFX=${_tool}/ all; \
${CDMAKE} DIRPRFX=${_tool}/ DESTDIR=${CDTMP} install
.endfor
@ -2271,10 +2228,9 @@ _xb-cross-tools: .PHONY
${_clang_libs} \
${_clang} \
${_cc}
${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,depend,all)"; \
${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,all)"; \
cd ${.CURDIR}/${_tool}; \
${CDMAKE} DIRPRFX=${_tool}/ obj; \
if [ -z "${NO_DEPEND}" ]; then ${CDMAKE} DIRPRFX=${_tool}/ depend; fi; \
${CDMAKE} DIRPRFX=${_tool}/ all
.endfor

View File

@ -148,7 +148,7 @@ build${libcompat}: .PHONY
${_+_}cd ${.CURDIR}; \
${LIBCOMPATWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
.if ${libcompat} == "32"
.for _t in obj depend all
.for _t in obj all
${_+_}cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIBCOMPATWMAKE} \
-DNO_FSCHG DIRPRFX=libexec/rtld-elf/ ${_t}
${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIBCOMPATWMAKE} \

View File

@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW:
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20160330:
The FAST_DEPEND build option has been removed and its functionality is
now the one true way. The old mkdep(1) style of 'make depend' has
been removed. See 20160311 for further details.
20160317:
Resource range types have grown from unsigned long to uintmax_t. All
drivers, and anything using libdevinfo, need to be recompiled.

View File

@ -22,7 +22,6 @@ CFLAGS+= -fno-inline-functions -fno-exceptions \
CFLAGS+= -I${GCCLIB}/include -I${GCCDIR}/config -I${GCCDIR} -I. \
-I${CCDIR}/cc_tools
CRTS_CFLAGS= -DCRTSTUFFS_O -DSHARED ${PICFLAG}
MKDEP= -DCRT_BEGIN
.if ${TARGET_CPUARCH} == "arm"
CFLAGS+= -DTARGET_ARM_EABI

View File

@ -14,7 +14,6 @@ kerberize:
cd ${.CURDIR}/../${entry}; \
${MAKE} cleandir; \
${MAKE} obj; \
${MAKE} depend; \
${MAKE} all; \
${MAKE} install
.endfor
@ -25,7 +24,6 @@ dekerberize:
cd ${.CURDIR}/../${entry}; \
${MAKE} MK_KERBEROS=no cleandir; \
${MAKE} MK_KERBEROS=no obj; \
${MAKE} MK_KERBEROS=no depend; \
${MAKE} MK_KERBEROS=no all; \
${MAKE} MK_KERBEROS=no install
.endfor

View File

@ -43,8 +43,7 @@ do_a_make_in_the_kernel_directory_anyways:
(cd ${COMPILE}; ${BINMAKE} KERNEL=kernel ${MODULES} )
${COMPILE}: ${CONF}/${CONFFILE}
(cd ${CONF}; ${CONFIG} -d ${COMPILE} ${CONFFILE}; \
cd ${COMPILE}; ${BINMAKE} KERNEL=kernel ${MODULES} depend )
cd ${CONF}; ${CONFIG} -d ${COMPILE} ${CONFFILE}
${CONF}/${CONFFILE}: ${KERNCONF}
# -mkdir -p ${CONF} # XXX not needed yet.

View File

@ -24,7 +24,6 @@ secure: .MAKE .PHONY
cd ${.CURDIR}/../${entry}; \
${MAKE} cleandir; \
${MAKE} obj; \
${MAKE} depend; \
${MAKE} all; \
${MAKE} install
.endfor
@ -35,7 +34,6 @@ insecure: .MAKE .PHONY
cd ${.CURDIR}/../${entry}; \
${MAKE} MK_CRYPT=no cleandir; \
${MAKE} MK_CRYPT=no obj; \
${MAKE} MK_CRYPT=no depend; \
${MAKE} MK_CRYPT=no all; \
${MAKE} MK_CRYPT=no install
.endfor

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 24, 2016
.Dd March 29, 2016
.Dt MAKE.CONF 5
.Os
.Sh NAME
@ -294,12 +294,6 @@ Set this to skip running
.Xr config 8
during
.Dq Li "${MAKE} buildkernel" .
.It Va NO_KERNELDEPEND
.Pq Vt bool
Set this to skip running
.Dq Li "${MAKE} depend"
during
.Dq Li "${MAKE} buildkernel" .
.It Va NO_KERNELOBJ
.Pq Vt bool
Set this to skip running

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 26, 2016
.Dd March 29, 2016
.Dt BUILD 7
.Os
.Sh NAME
@ -122,11 +122,13 @@ test suite on installed world.
.It Cm clean
Remove any files created during the build process.
.It Cm cleandepend
Remove the file
.Pa ${.OBJDIR}/${DEPENDFILE}
generated by a prior
Remove the
.Pa ${.OBJDIR}/${DEPENDFILE}*
files generated by prior
.Dq Li "make"
and
.Dq Li "make depend"
step.
steps.
.It Cm cleandir
Remove the canonical object directory if it exists, or perform
actions equivalent to
@ -146,6 +148,8 @@ and the second one will clean up
.It Cm depend
Generate a list of build dependencies in file
.Pa ${.OBJDIR}/${DEPENDFILE} .
Per-object dependencies are generated at build time and stored in
.Pa ${.OBJDIR}/${DEPENDFILE}.${OBJ} .
.It Cm install
Install the results of the build to the appropriate location in the
installation directory hierarchy specified in variable
@ -412,7 +416,6 @@ If set, the build target
defaults to setting
.Va NO_KERNELCLEAN ,
.Va NO_KERNELCONFIG ,
.Va NO_KERNELDEPEND
and
.Va NO_KERNELOBJ .
When set to a value other than
@ -527,7 +530,7 @@ using the
.Fl D
option of
.Xr make 1 :
.Bl -tag -width ".Va -DNO_KERNELDEPEND"
.Bl -tag -width ".Va -DNO_KERNELCONFIG"
.It Va NO_CLEANDIR
If set, the build targets that clean parts of the object tree use the
equivalent of
@ -565,12 +568,6 @@ If set, the build process does not run
as part of the
.Cm buildkernel
target.
.It Va NO_KERNELDEPEND
If set, the build process does not run
.Dq make depend
as part of the
.Cm buildkernel
target.
.It Va NO_KERNELOBJ
If set, the build process does not run
.Dq make obj

View File

@ -83,10 +83,7 @@ ${__obj}: ${OBJS_DEPEND_GUESS}
${__obj}: ${OBJS_DEPEND_GUESS.${__obj}}
.endfor
.if ${MK_FAST_DEPEND} == "yes"
beforeanalyze: depend
.endif
beforeanalyze: .PHONY
beforeanalyze: depend .PHONY
.if !defined(_RECURSING_PROGS) && !empty(CLANG_ANALYZE_SRCS) && \
${CLANG_ANALYZE_OUTPUT} != "text"
mkdir -p ${CLANG_ANALYZE_OUTPUT_DIR}

View File

@ -20,10 +20,6 @@
#
# HTAGSFLAGS Options for htags(1) [not set]
#
# MKDEP Options for ${MKDEPCMD} [not set]
#
# MKDEPCMD Makefile dependency list program [mkdep]
#
# SRCS List of source files (c, c++, assembler)
#
# DPSRCS List of source files which are needed for generating
@ -54,13 +50,6 @@ CTAGSFLAGS?=
GTAGSFLAGS?= -o
HTAGSFLAGS?=
_MKDEPCC:= ${CC:N${CCACHE_BIN}}
# XXX: DEPFLAGS can come out once Makefile.inc1 properly passes down
# CXXFLAGS.
.if !empty(DEPFLAGS)
_MKDEPCC+= ${DEPFLAGS}
.endif
MKDEPCMD?= CC='${_MKDEPCC}' mkdep
.if ${MK_DIRDEPS_BUILD} == "no"
.MAKE.DEPENDFILE= ${DEPENDFILE}
.endif
@ -95,9 +84,6 @@ CLEANFILES?=
.for _S in ${SRCS:N*.[dhly]}
OBJS_DEPEND_GUESS.${_S:R}.o= ${_S}
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
${_S:R}.o: ${OBJS_DEPEND_GUESS.${_S:R}.o}
.endif
.endfor
# Lexical analyzers
@ -106,9 +92,6 @@ ${_S:R}.o: ${OBJS_DEPEND_GUESS.${_S:R}.o}
${_LC}: ${_LSRC}
${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC}
OBJS_DEPEND_GUESS.${_LC:R}.o= ${_LC}
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
${_LC:R}.o: ${OBJS_DEPEND_GUESS.${_LC:R}.o}
.endif
SRCS:= ${SRCS:S/${_LSRC}/${_LC}/}
CLEANFILES+= ${_LC}
.endfor
@ -138,9 +121,6 @@ ${_YC}: ${_YSRC}
${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
.endif
OBJS_DEPEND_GUESS.${_YC:R}.o= ${_YC}
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
${_YC:R}.o: ${OBJS_DEPEND_GUESS.${_YC:R}.o}
.endif
.endfor
.endfor
@ -175,7 +155,6 @@ ${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//}
.if !empty(.MAKE.MODE:Mmeta) && empty(.MAKE.MODE:Mnofilemon)
_meta_filemon= 1
.endif
.if ${MK_FAST_DEPEND} == "yes"
.if ${MAKE_VERSION} < 20160220
DEPEND_MP?= -MP
.endif
@ -210,7 +189,6 @@ CFLAGS+= ${DEPEND_CFLAGS}
.endfor
.endif # !defined(_SKIP_READ_DEPEND)
.endif # !defined(_meta_filemon)
.endif # ${MK_FAST_DEPEND} == "yes"
.endif # defined(SRCS)
.if ${MK_DIRDEPS_BUILD} == "yes"
@ -230,7 +208,6 @@ afterdepend: beforedepend
# Guess some dependencies for when no ${DEPENDFILE}.OBJ is generated yet.
# For meta+filemon the .meta file is checked for since it is the dependency
# file used.
.if ${MK_FAST_DEPEND} == "yes"
.for __obj in ${DEPENDOBJS:O:u}
.if (defined(_meta_filemon) && !exists(${.OBJDIR}/${__obj}.meta)) || \
(!defined(_meta_filemon) && !exists(${.OBJDIR}/${DEPENDFILE}.${__obj}))
@ -245,7 +222,6 @@ ${__obj}: ${OBJS_DEPEND_GUESS.${__obj}}
.if ${MK_DIRDEPS_BUILD} == "no" || ${.MAKE.LEVEL} > 0
beforebuild: depend
.endif
.endif # ${MK_FAST_DEPEND} == "yes"
.if !target(depend)
.if defined(SRCS)
@ -254,41 +230,14 @@ depend: beforedepend ${DEPENDFILE} afterdepend
# Tell bmake not to look for generated files via .PATH
.NOPATH: ${DEPENDFILE} ${DEPENDFILES_OBJS}
.if ${MK_FAST_DEPEND} == "no"
# Capture -include from CFLAGS.
# This could be simpler with bmake :tW but needs to support fmake for MFC.
_CFLAGS_INCLUDES= ${CFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g}
_CXXFLAGS_INCLUDES= ${CXXFLAGS:Q:S/\\ /,/g:C/-include,/-include%/g:C/,/ /g:M-include*:C/%/ /g}
# Different types of sources are compiled with slightly different flags.
# Split up the sources, and filter out headers and non-applicable flags.
MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BIDU]*} ${CFLAGS:M-std=*} \
${CFLAGS:M-ansi} ${_CFLAGS_INCLUDES}
MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} \
${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} \
${_CXXFLAGS_INCLUDES}
.endif # ${MK_FAST_DEPEND} == "no"
DPSRCS+= ${SRCS}
# FAST_DEPEND will only generate a .depend if _EXTRADEPEND is used but
# the target is created to allow 'make depend' to generate files.
# A .depend file will only be generated if there are commands in
# beforedepend/_EXTRADEPEND/afterdepend. The target is kept
# to allow 'make depend' to generate files.
${DEPENDFILE}: ${DPSRCS}
.if exists(${.OBJDIR}/${DEPENDFILE})
rm -f ${DEPENDFILE}
.endif
.if ${MK_FAST_DEPEND} == "no"
.if !empty(DPSRCS:M*.[cS])
${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \
${MKDEP_CFLAGS} ${.ALLSRC:M*.[cS]}
.endif
.if !empty(DPSRCS:M*.cc) || !empty(DPSRCS:M*.C) || !empty(DPSRCS:M*.cpp) || \
!empty(DPSRCS:M*.cxx)
${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \
${MKDEP_CXXFLAGS} \
${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cpp} ${.ALLSRC:M*.cxx}
.else
.endif
.endif # ${MK_FAST_DEPEND} == "no"
.if target(_EXTRADEPEND)
_EXTRADEPEND: .USE
${DEPENDFILE}: _EXTRADEPEND

View File

@ -289,12 +289,6 @@ all: all-man
.endif
_EXTRADEPEND:
.if ${MK_FAST_DEPEND} == "no"
@TMP=_depend$$$$; \
sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
> $$TMP; \
mv $$TMP ${DEPENDFILE}
.endif
.if !defined(NO_EXTRADEPEND) && defined(SHLIB_NAME)
.if defined(DPADD) && !empty(DPADD)
echo ${SHLIB_NAME_FULL}: ${DPADD} >> ${DEPENDFILE}
@ -414,23 +408,6 @@ OBJS_DEPEND_GUESS.${_S:R}.So= ${_S}
.endif
.include <bsd.dep.mk>
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
.if defined(LIB) && !empty(LIB)
${OBJS} ${STATICOBJS} ${POBJS}: ${OBJS_DEPEND_GUESS}
.for _S in ${SRCS:N*.[hly]}
${_S:R}.po: ${OBJS_DEPEND_GUESS.${_S:R}.po}
.endfor
.endif
.if defined(SHLIB_NAME) || \
defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
${SOBJS}: ${OBJS_DEPEND_GUESS}
.for _S in ${SRCS:N*.[hly]}
${_S:R}.So: ${OBJS_DEPEND_GUESS.${_S:R}.So}
.endfor
.endif
.endif
.include <bsd.clang-analyze.mk>
.include <bsd.obj.mk>
.include <bsd.sys.mk>

View File

@ -52,7 +52,6 @@ __DEFAULT_YES_OPTIONS = \
ASSERT_DEBUG \
DEBUG_FILES \
DOCCOMPRESS \
FAST_DEPEND \
INCLUDES \
INSTALLLIB \
KERBEROS \
@ -79,12 +78,6 @@ __DEFAULT_DEPENDENT_OPTIONS = \
STAGING_PROG/STAGING \
# Enable FAST_DEPEND by default for the meta build.
.if !empty(.MAKE.MODE:Mmeta)
__DEFAULT_YES_OPTIONS+= FAST_DEPEND
__DEFAULT_NO_OPTIONS:= ${__DEFAULT_NO_OPTIONS:NFAST_DEPEND}
.endif
.include <bsd.mkopt.mk>
#

View File

@ -283,13 +283,6 @@ OBJS_DEPEND_GUESS+= ${SRCS:M*.h}
.endif
.include <bsd.dep.mk>
.if defined(PROG)
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
${OBJS}: ${OBJS_DEPEND_GUESS}
.endif
.endif
.include <bsd.clang-analyze.mk>
.include <bsd.obj.mk>
.include <bsd.sys.mk>

View File

@ -6,7 +6,6 @@
# we need this until there is an alternative
MK_INSTALL_AS_USER= yes
MK_FAST_DEPEND= yes
_default_makeobjdir=$${.CURDIR:S,^$${SRCTOP},$${OBJTOP},}

View File

@ -30,7 +30,6 @@ __DEFAULT_YES_OPTIONS = \
CDDL \
CRYPT \
CUSE \
FAST_DEPEND \
FORMAT_EXTENSIONS \
INET \
INET6 \
@ -49,12 +48,6 @@ __DEFAULT_NO_OPTIONS = \
NAND \
OFED
# Enable FAST_DEPEND by default for the meta build.
.if !empty(.MAKE.MODE:Unormal:Mmeta)
__DEFAULT_YES_OPTIONS+= FAST_DEPEND
__DEFAULT_NO_OPTIONS:= ${__DEFAULT_NO_OPTIONS:NFAST_DEPEND}
.endif
# Some options are totally broken on some architectures. We disable
# them. If you need to enable them on an experimental basis, you
# must change this code.

View File

@ -145,10 +145,6 @@ ${FULLKERNEL}: ${SYSTEM_DEP} vers.o
OBJS_DEPEND_GUESS+= assym.s vnode_if.h ${BEFORE_DEPEND:M*.h} \
${MFILES:T:S/.m$/.h/}
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/.depend)
${SYSTEM_OBJS}: ${OBJS_DEPEND_GUESS}
.endif
LNFILES= ${CFILES:T:S/.c$/.ln/}
.for mfile in ${MFILES}
@ -189,23 +185,6 @@ genassym.o: $S/$M/$M/genassym.c
${SYSTEM_OBJS} genassym.o vers.o: opt_global.h
# Normal files first
CFILES_NORMAL= ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/compat/linuxkpi/common/*:N*/ofed/*:N*/dev/mlx5/*}
SFILES_NORMAL= ${SFILES:N*/cddl/*}
# We have "special" -I include paths for zfs/dtrace files in 'depend'.
CFILES_CDDL= ${CFILES:M*/cddl/*}
SFILES_CDDL= ${SFILES:M*/cddl/*}
# We have "special" -I include paths for LinuxKPI.
CFILES_LINUXKPI=${CFILES:M*/compat/linuxkpi/common/*}
# We have "special" -I include paths for OFED.
CFILES_OFED=${CFILES:M*/ofed/*}
# We have "special" -I include paths for MLX5.
CFILES_MLX5=${CFILES:M*/dev/mlx5/*}
# Skip reading .depend when not needed to speed up tree-walks
# and simple lookups.
.if !empty(.MAKEFLAGS:M-V${_V_READ_DEPEND}) || make(obj) || make(clean*) || \
@ -216,9 +195,6 @@ _SKIP_READ_DEPEND= 1
.endif
kernel-depend: .depend
# The argument list can be very long, so use make -V and xargs to
# pass it to mkdep.
_MKDEPCC:= ${CC:N${CCACHE_BIN}}
SRCS= assym.s vnode_if.h ${BEFORE_DEPEND} ${CFILES} \
${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} \
${MFILES:T:S/.m$/.h/}
@ -228,7 +204,6 @@ DEPENDFILES= .depend .depend.*
.if !empty(.MAKE.MODE:Unormal:Mmeta) && empty(.MAKE.MODE:Unormal:Mnofilemon)
_meta_filemon= 1
.endif
.if ${MK_FAST_DEPEND} == "yes"
DEPENDOBJS+= ${SYSTEM_OBJS} genassym.o
DEPENDFILES_OBJS= ${DEPENDOBJS:O:u:C/^/.depend./}
.if ${MAKE_VERSION} < 20160220
@ -261,12 +236,10 @@ CFLAGS+= ${DEPEND_CFLAGS}
# all dependencies are correctly added or accounted for. This is mostly to
# ensure downstream uses of kernel-depend are handled.
beforebuild: kernel-depend
.endif # ${MK_FAST_DEPEND} == "yes"
# Guess some dependencies for when no ${DEPENDFILE}.OBJ is generated yet.
# For meta+filemon the .meta file is checked for since it is the dependency
# file used.
.if ${MK_FAST_DEPEND} == "yes"
.for __obj in ${DEPENDOBJS:O:u}
.if (defined(_meta_filemon) && !exists(${.OBJDIR}/${__obj}.meta)) || \
(!defined(_meta_filemon) && !exists(${.OBJDIR}/.depend.${__obj}))
@ -276,32 +249,10 @@ ${__obj}: ${OBJS_DEPEND_GUESS}
${__obj}: ${OBJS_DEPEND_GUESS.${__obj}}
.endif
.endfor
.endif
.NOPATH: .depend ${DEPENDFILES_OBJS}
.depend: .PRECIOUS ${SRCS}
.if ${MK_FAST_DEPEND} == "no"
rm -f ${.TARGET}.tmp
# C files
${MAKE} -V CFILES_NORMAL -V SYSTEM_CFILES -V GEN_CFILES | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${CFLAGS}
${MAKE} -V CFILES_CDDL | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_CFLAGS} \
${FBT_CFLAGS} ${DTRACE_CFLAGS}
${MAKE} -V CFILES_LINUXKPI | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \
${CFLAGS} ${LINUXKPI_INCLUDES}
${MAKE} -V CFILES_OFED -V CFILES_MLX5 | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \
${CFLAGS} ${OFEDINCLUDES}
# Assembly files
${MAKE} -V SFILES_NORMAL | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ASM_CFLAGS}
${MAKE} -V SFILES_CDDL | \
CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_ASM_CFLAGS}
mv ${.TARGET}.tmp ${.TARGET}
.endif
_ILINKS= machine
.if ${MACHINE} != ${MACHINE_CPUARCH} && ${MACHINE} != "arm64"

View File

@ -64,29 +64,6 @@ NOSTDINC= -nostdinc
INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S
.if ${MK_FAST_DEPEND} == "no" && (make(depend) || make(kernel-depend))
# This hack lets us use the ipfilter code without spamming a new
# include path into contrib'ed source files.
INCLUDES+= -I$S/contrib/ipfilter
# ... and the same for ath
INCLUDES+= -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal
# ... and the same for the NgATM stuff
INCLUDES+= -I$S/contrib/ngatm
# ... and the same for vchiq
INCLUDES+= -I$S/contrib/vchiq
# ... and the same for twa
INCLUDES+= -I$S/dev/twa
# ... and the same for cxgb and cxgbe
INCLUDES+= -I$S/dev/cxgb -I$S/dev/cxgbe
.endif
CFLAGS= ${COPTFLAGS} ${DEBUG}
CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
CFLAGS_PARAM_INLINE_UNIT_GROWTH?=100

View File

@ -458,11 +458,6 @@ cleanilinks:
OBJS_DEPEND_GUESS+= ${SRCS:M*.h}
.include <bsd.dep.mk>
.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE})
${OBJS}: ${OBJS_DEPEND_GUESS}
.endif
.include <bsd.clang-analyze.mk>
.include <bsd.obj.mk>
.include "kern.mk"

View File

@ -7,14 +7,11 @@ SRCS= if_pflog.c \
opt_pf.h opt_inet.h opt_inet6.h opt_bpf.h
SRCS+= bus_if.h device_if.h
.if defined(KERNBUILDDIR)
MKDEP+= -include ${KERNBUILDDIR}/opt_global.h
.else
.if !defined(KERNBUILDDIR)
.if defined(VIMAGE)
opt_global.h:
echo "#define VIMAGE 1" >> ${.TARGET}
CFLAGS+= -include opt_global.h
MKDEP+= -include opt_global.h
.endif
.endif

View File

@ -7,14 +7,11 @@ SRCS= if_pfsync.c \
opt_pf.h opt_inet.h opt_inet6.h
SRCS+= bus_if.h device_if.h
.if defined(KERNBUILDDIR)
MKDEP+= -include ${KERNBUILDDIR}/opt_global.h
.else
.if !defined(KERNBUILDDIR)
.if defined(VIMAGE)
opt_global.h:
echo "#define VIMAGE 1" >> ${.TARGET}
CFLAGS+= -include opt_global.h
MKDEP+= -include opt_global.h
.endif
.endif

View File

@ -16,11 +16,8 @@ SRCS += visibility.c
SRCS += opt_global.h
.if defined(KERNBUILDDIR)
MKDEP= -include ${KERNBUILDDIR}/opt_global.h
.else
.if !defined(KERNBUILDDIR)
CFLAGS+= -include opt_global.h
MKDEP= -include opt_global.h
opt_global.h:
echo "#define VIMAGE 1" > ${.TARGET}

View File

@ -1,5 +0,0 @@
.\" $FreeBSD$
Set to use the historical
.Xr mkdep 1
for the "make depend" phase of the build.
This option is deprecated and will be removed soon.

View File

@ -1,7 +0,0 @@
.\" $FreeBSD$
Set to generate
.Sy .depend
files in the build during compilation instead of the
historial
.Xr mkdep 1
call during the "make depend" phase.

View File

@ -58,4 +58,4 @@ for i in "$@"; do
;;
esac
done
make tinderbox UNIVERSE_TARGET="_cleanobj _obj _depend everything" $MAKE_ARGS SUBDIR_OVERRIDE="$SUBDIR"
make tinderbox UNIVERSE_TARGET="_cleanobj _obj everything" $MAKE_ARGS SUBDIR_OVERRIDE="$SUBDIR"

View File

@ -432,11 +432,6 @@ fi
echo -n " Building kernel module... "
echo "" > bus_if.h
echo "" > device_if.h
if ! ${MAKE} -f ${MAKEFILE} depend > /dev/null; then
echo "build failed. Exiting."
echo ""
exit
fi
if ! ${MAKE} -f ${MAKEFILE} all > /dev/null; then
echo "build failed. Exiting."
echo ""