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
This commit is contained in:
Brooks Davis 2014-11-21 18:35:48 +00:00
parent e163efb6c7
commit 0e97688fe1

View File

@ -97,11 +97,22 @@ SUBDIR+=contrib/ofed
# #
SUBDIR+=etc SUBDIR+=etc
# These are last, since it is nice to at least get the base system # Local directories are last, since it is nice to at least get the base
# rebuilt before you do them. # system rebuilt before you do them.
.for _DIR in ${LOCAL_LIB_DIRS} ${LOCAL_DIRS} .for _DIR in ${LOCAL_DIRS}
.if exists(${.CURDIR}/${_DIR}/Makefile) .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 .endif
.endfor .endfor
.endif .endif