summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorbdrewery <bdrewery@FreeBSD.org>2016-03-30 23:50:23 +0000
committerbdrewery <bdrewery@FreeBSD.org>2016-03-30 23:50:23 +0000
commit59f4cb814dffd0fdde3c6d489c893c2cb67f3fc2 (patch)
tree10dd676fe27eeae3526bd1b656f1cf7e9e25b69b /share
parent8ee97b1290deddeff3de89007ded526a0b59ed8e (diff)
downloadFreeBSD-src-59f4cb814dffd0fdde3c6d489c893c2cb67f3fc2.zip
FreeBSD-src-59f4cb814dffd0fdde3c6d489c893c2cb67f3fc2.tar.gz
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
Diffstat (limited to 'share')
-rw-r--r--share/man/man5/make.conf.58
-rw-r--r--share/man/man7/build.723
-rw-r--r--share/mk/bsd.clang-analyze.mk5
-rw-r--r--share/mk/bsd.dep.mk57
-rw-r--r--share/mk/bsd.lib.mk23
-rw-r--r--share/mk/bsd.opts.mk7
-rw-r--r--share/mk/bsd.prog.mk7
-rw-r--r--share/mk/local.meta.sys.mk1
8 files changed, 15 insertions, 116 deletions
diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5
index d1fc461..24ebffb 100644
--- a/share/man/man5/make.conf.5
+++ b/share/man/man5/make.conf.5
@@ -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
diff --git a/share/man/man7/build.7 b/share/man/man7/build.7
index 985c165..36603da 100644
--- a/share/man/man7/build.7
+++ b/share/man/man7/build.7
@@ -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
diff --git a/share/mk/bsd.clang-analyze.mk b/share/mk/bsd.clang-analyze.mk
index a8c9961..b375332 100644
--- a/share/mk/bsd.clang-analyze.mk
+++ b/share/mk/bsd.clang-analyze.mk
@@ -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}
diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk
index 92c10a4..50ed33c 100644
--- a/share/mk/bsd.dep.mk
+++ b/share/mk/bsd.dep.mk
@@ -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
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 3339ae2..4e22e92 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -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>
diff --git a/share/mk/bsd.opts.mk b/share/mk/bsd.opts.mk
index 0fae155..3e321f3 100644
--- a/share/mk/bsd.opts.mk
+++ b/share/mk/bsd.opts.mk
@@ -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>
#
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index 3e21db9..fb0efdd 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -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>
diff --git a/share/mk/local.meta.sys.mk b/share/mk/local.meta.sys.mk
index 14bfb64..a7e1016 100644
--- a/share/mk/local.meta.sys.mk
+++ b/share/mk/local.meta.sys.mk
@@ -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},}
OpenPOWER on IntegriCloud