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>