From 0e97688fe1b7bd785c2a26a438c53569b364b341 Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Fri, 21 Nov 2014 18:35:48 +0000 Subject: [PATCH] Slightly alter the handling of LOCAL_LIB_DIRS to skip addition of directories in LOCAL_LIB_DIRS if they are subdirectories of directories listed in LOCAL_DIRS. This allows a hierarchy like: foo foo/lib foo/usr.bin foo/usr.sbin to be supported with LOCAL_DIRS=foo LOCAL_DIRS=foo/lib. MFC after: 1 week Sponsored by: DARPA, AFRL --- Makefile.inc1 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 625e8324587c..7d828ec9d081 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -97,11 +97,22 @@ SUBDIR+=contrib/ofed # SUBDIR+=etc -# These are last, since it is nice to at least get the base system -# rebuilt before you do them. -.for _DIR in ${LOCAL_LIB_DIRS} ${LOCAL_DIRS} +# Local directories are last, since it is nice to at least get the base +# system rebuilt before you do them. +.for _DIR in ${LOCAL_DIRS} .if exists(${.CURDIR}/${_DIR}/Makefile) -SUBDIR+= ${_DIR} +SUBDIR+= ${_DIR} +.endif +.endfor +# Add LOCAL_LIB_DIRS, but only if they will not be picked up as a SUBDIR +# of a LOCAL_DIRS directory. This allows LOCAL_DIRS=foo and +# LOCAL_LIB_DIRS=foo/lib to behave as expected. +.for _DIR in ${LOCAL_DIRS:M*/} ${LOCAL_DIRS:N*/:S|$|/|} +_REDUNDENT_LIB_DIRS+= ${LOCAL_LIB_DIRS:M${_DIR}*} +.endfor +.for _DIR in ${LOCAL_LIB_DIRS} +.if empty(_REDUNDENT_LIB_DIRS:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile) +SUBDIR+= ${_DIR} .endif .endfor .endif