summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbdrewery <bdrewery@FreeBSD.org>2016-04-14 21:04:42 +0000
committerbdrewery <bdrewery@FreeBSD.org>2016-04-14 21:04:42 +0000
commitc41790fef1cb2ed2cad05aa6c9ff83de183593e3 (patch)
tree843135ddb784aa6430401ed2b918689a6b439550
parent996e1d4975f2fa19ea8731e0fef36171e535f820 (diff)
downloadFreeBSD-src-c41790fef1cb2ed2cad05aa6c9ff83de183593e3.zip
FreeBSD-src-c41790fef1cb2ed2cad05aa6c9ff83de183593e3.tar.gz
Rework META_TARGETS so that it automatically adds META_DEPS to the targets.
This will only be done if the target is defined, so if the target is defined after bsd.sys.mk is included then it needs to manually add ${META_DEPS} still. Sponsored by: EMC / Isilon Storage Division
-rw-r--r--include/Makefile16
-rw-r--r--share/examples/Makefile4
-rw-r--r--share/mk/bsd.sys.mk7
-rw-r--r--share/mk/local.sys.mk4
-rw-r--r--share/sendmail/Makefile4
-rw-r--r--share/zoneinfo/Makefile4
6 files changed, 25 insertions, 14 deletions
diff --git a/include/Makefile b/include/Makefile
index bb79098..c949ede 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -131,13 +131,8 @@ _MARCHS+= x86
META_TARGETS+= compat copies symlinks
stage_includes: ${SHARED}
-.include <bsd.prog.mk>
-
-installincludes: ${SHARED}
-${SHARED}: compat
-
# Take care of stale directory-level symlinks.
-compat: ${META_DEPS}
+compat:
.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} crypto
if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \
rm -f ${DESTDIR}${INCLUDEDIR}/$i; \
@@ -147,7 +142,7 @@ compat: ${META_DEPS}
-f ${.CURDIR}/../etc/mtree/BSD.include.dist \
-p ${DESTDIR}${INCLUDEDIR} > /dev/null
-copies: ${META_DEPS}
+copies:
.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto machine machine/pc \
${_MARCHS}
if [ -d ${DESTDIR}${INCLUDEDIR}/$i ]; then \
@@ -233,7 +228,7 @@ copies: ${META_DEPS}
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 teken.h \
${DESTDIR}${INCLUDEDIR}/teken
-symlinks: ${META_DEPS}
+symlinks:
@${ECHO} "Setting up symlinks to kernel source tree..."
.for i in ${LDIRS}
cd ${.CURDIR}/../sys/$i; \
@@ -347,6 +342,11 @@ symlinks: ${META_DEPS}
${DESTDIR}${INCLUDEDIR}/rpc; \
done
+.include <bsd.prog.mk>
+
+installincludes: ${SHARED}
+${SHARED}: compat
+
.if ${MACHINE} == "host" && !defined(_SKIP_BUILD)
# we're here because we are building a sysroot...
# we need MACHINE et al set correctly
diff --git a/share/examples/Makefile b/share/examples/Makefile
index cbc85b0..ed5c3f3 100644
--- a/share/examples/Makefile
+++ b/share/examples/Makefile
@@ -222,7 +222,7 @@ beforeinstall: ${SHARED} etc-examples
META_TARGETS+= copies symlinks
.ORDER: ${SHARED} etc-examples
-copies: ${META_DEPS}
+copies:
.for i in ${LDIRS}
if [ -L ${DESTDIR}${BINDIR}/$i ]; then \
rm -f ${DESTDIR}${BINDIR}/$i; \
@@ -235,7 +235,7 @@ copies: ${META_DEPS}
${.CURDIR}/${file} ${DESTDIR}${BINDIR}/${file}
.endfor
-symlinks: ${META_DEPS}
+symlinks:
.for i in ${LDIRS}
rm -rf ${DESTDIR}${BINDIR}/$i
ln -s ${.CURDIR}/$i ${DESTDIR}${BINDIR}/$i
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index 8471699..5660bd4 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -297,3 +297,10 @@ STAGE_SYMLINKS.links= ${SYMLINKS}
.endif
.endif
+.if defined(META_TARGETS)
+.for _tgt in ${META_TARGETS}
+.if target(${_tgt})
+${_tgt}: ${META_DEPS}
+.endif
+.endfor
+.endif
diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk
index f6a9824..68e679f 100644
--- a/share/mk/local.sys.mk
+++ b/share/mk/local.sys.mk
@@ -32,6 +32,10 @@ OBJTOP?= ${.OBJDIR:S,${.CURDIR},,}${SRCTOP}
.if ${.MAKE.MODE:Mmeta*} != ""
# we can afford to use cookies to prevent some targets
# re-running needlessly but only when using filemon.
+# Targets that should support the meta mode cookie handling should just be
+# added to META_TARGETS. If bsd.sys.mk cannot be included then ${META_DEPS}
+# should be added as a target dependency as well. Otherwise the target
+# is added to in bsd.sys.mk since it comes last.
.if ${.MAKE.MODE:Mnofilemon} == ""
META_COOKIE_COND= empty(.TARGET:M${.OBJDIR})
META_COOKIE= ${COOKIE.${.TARGET}:U${${META_COOKIE_COND}:?${.OBJDIR}/${.TARGET}:${.TARGET}}}
diff --git a/share/sendmail/Makefile b/share/sendmail/Makefile
index 9ec23f2..84757dd 100644
--- a/share/sendmail/Makefile
+++ b/share/sendmail/Makefile
@@ -18,7 +18,7 @@ all clean cleandir depend lint tags:
beforeinstall: ${SHARED}
META_TARGETS+= copies symlinks
-copies: ${META_DEPS}
+copies:
if [ -L ${DDIR}/${CFDIR} ]; then rm -f ${DDIR}/${CFDIR}; fi
.for dir in ${CFDIRS}
${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 755 -d ${DDIR}/${dir}
@@ -27,7 +27,7 @@ copies: ${META_DEPS}
${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${SENDMAIL_DIR}/${file} ${DDIR}/${file}
.endfor
-symlinks: ${META_DEPS}
+symlinks:
rm -rf ${DDIR}/${CFDIR}; ln -s ${SENDMAIL_DIR}/${CFDIR} ${DDIR}/${CFDIR}
.include <bsd.prog.mk>
diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile
index 1ca7ea6..356d0ad 100644
--- a/share/zoneinfo/Makefile
+++ b/share/zoneinfo/Makefile
@@ -72,7 +72,7 @@ all: zoneinfo
.endif
META_TARGETS+= zoneinfo install-zoneinfo
-zoneinfo: yearistype ${TDATA} ${META_DEPS}
+zoneinfo: yearistype ${TDATA}
mkdir -p ${TZBUILDDIR}
cd ${TZBUILDDIR}; mkdir -p ${TZBUILDSUBDIRS}
umask 022; cd ${.CURDIR}; \
@@ -80,7 +80,7 @@ zoneinfo: yearistype ${TDATA} ${META_DEPS}
${LEAPFILE} -y ${.OBJDIR}/yearistype ${TZFILES}
beforeinstall: install-zoneinfo
-install-zoneinfo: ${META_DEPS}
+install-zoneinfo:
cd ${TZBUILDDIR} && \
find -s * -type f -print -exec ${INSTALL} \
-o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
OpenPOWER on IntegriCloud