Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Dec 2015 02:51:05 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r292243 - head/share/mk
Message-ID:  <201512150251.tBF2p5xW055674@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Tue Dec 15 02:51:05 2015
New Revision: 292243
URL: https://svnweb.freebsd.org/changeset/base/292243

Log:
  DIRDEPS_BUILD: Support bootstrapping from PROGS.(DPADD|LIBADD).
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/share/mk/local.dirdeps.mk

Modified: head/share/mk/local.dirdeps.mk
==============================================================================
--- head/share/mk/local.dirdeps.mk	Tue Dec 15 02:46:14 2015	(r292242)
+++ head/share/mk/local.dirdeps.mk	Tue Dec 15 02:51:05 2015	(r292243)
@@ -129,14 +129,28 @@ DIRDEPS+= lib/msun
 .if !empty(SRCS:M*.y)
 DIRDEPS+=	usr.bin/yacc.host
 .endif
+# Gather PROGS dependencies
+.if !empty(PROGS)
+_PROGS_LIBADD=
+_PROGS_DPADD=
+.for _prog in ${PROGS}
+.if !empty(LIBADD.${_prog})
+_PROGS_LIBADD+=	${LIBADD.${_prog}}
+.endif
+.if !empty(DPADD.${_prog})
+_PROGS_DPADD+=	${DPADD.${_prog}}
+.endif
+.endfor
+.endif	# !empty(PROGS)
 .if !empty(DPADD)
 # Taken from meta.autodep.mk (where it only does something with
 # BUILD_AT_LEVEL0, which we don't use).
 # This only works for DPADD with full OBJ/SRC paths, which is mostly just
 # _INTERNALLIBS.
+_DPADD= ${DPADD} ${_PROGS_DPADD}
 _DP_DIRDEPS= \
-	${DPADD:M${OBJTOP}*:H:N.:tA:C,${OBJTOP}[^/]*/,,:N.:O:u} \
-	${DPADD:M${OBJROOT}*:N${OBJTOP}*:N${STAGE_ROOT}/*:H:S,${OBJROOT},,:C,^([^/]+)/(.*),\2.\1,:S,${HOST_TARGET}$,host,:N.*:O:u}
+	${_DPADD:O:u:M${OBJTOP}*:H:N.:tA:C,${OBJTOP}[^/]*/,,:N.:O:u} \
+	${_DPADD:O:u:M${OBJROOT}*:N${OBJTOP}*:N${STAGE_ROOT}/*:H:S,${OBJROOT},,:C,^([^/]+)/(.*),\2.\1,:S,${HOST_TARGET}$,host,:N.*:O:u}
 # Resolve the paths to RELDIRs
 .if !empty(_DP_DIRDEPS)
 DIRDEPS+= ${_DP_DIRDEPS:C,^,${SRCTOP}/,:tA:C,^${SRCTOP}/,,}
@@ -144,7 +158,8 @@ DIRDEPS+= ${_DP_DIRDEPS:C,^,${SRCTOP}/,:
 .endif	# !empty(DPADD)
 .if !empty(LIBADD)
 # Also handle LIBADD for non-internal libraries.
-.for _lib in ${LIBADD}
+_ALL_LIBADD= ${LIBADD} ${_PROGS_LIBADD}
+.for _lib in ${_ALL_LIBADD:O:u}
 _lib${_lib}reldir= ${LIB${_lib:tu}DIR:C,${OBJTOP}/,,}
 .if defined(LIB${_lib:tu}DIR) && ${DIRDEPS:M${_lib${_lib}reldir}} == "" && \
     exists(${SRCTOP}/${_lib${_lib}reldir})



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201512150251.tBF2p5xW055674>