From c41790fef1cb2ed2cad05aa6c9ff83de183593e3 Mon Sep 17 00:00:00 2001 From: bdrewery Date: Thu, 14 Apr 2016 21:04:42 +0000 Subject: [PATCH] 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 --- include/Makefile | 16 ++++++++-------- share/examples/Makefile | 4 ++-- share/mk/bsd.sys.mk | 7 +++++++ share/mk/local.sys.mk | 4 ++++ share/sendmail/Makefile | 4 ++-- share/zoneinfo/Makefile | 4 ++-- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/include/Makefile b/include/Makefile index bb7909884ec9..c949ede9574b 100644 --- a/include/Makefile +++ b/include/Makefile @@ -131,13 +131,8 @@ _MARCHS+= x86 META_TARGETS+= compat copies symlinks stage_includes: ${SHARED} -.include - -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 + +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 cbc85b067048..ed5c3f345fc9 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 8471699dbc3e..5660bd43b83f 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 f6a98245a857..68e679f010a7 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 9ec23f2030dd..84757ddc083f 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 diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile index 1ca7ea6cd95d..356d0ad20bda 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} \