1 # $Id: dirdeps-options.mk,v 1.5 2018/04/18 15:53:57 sjg Exp $
3 # @(#) Copyright (c) 2018, Simon J. Gerraty
5 # This file is provided in the hope that it will
6 # be of use. There is absolutely NO WARRANTY.
7 # Permission to copy, redistribute or otherwise
8 # use this file is hereby granted provided that
9 # the above copyright notice and this notice are
12 # Please send copies of changes and bug-fixes to:
18 # This makefile is used to deal with optional DIRDEPS.
20 # It is to be included by Makefile.depend.options in a
21 # directory which has DIRDEPS affected by optional features.
22 # Makefile.depend.options should set DIRDEPS_OPTIONS and
23 # may also set specific DIRDEPS.* for those options.
25 # If a Makefile.depend.options file exists, it will be included by
26 # dirdeps.mk and meta.autodep.mk
28 # We include local.dirdeps-option.mk which may also define DIRDEPS.*
31 # Thus a directory, that is affected by an option FOO would have
32 # a Makefile.depend.options that sets
33 # DIRDEPS_OPTIONS= FOO
34 # It can also set either/both of
37 # to whatever applies for that dir, or it can rely on globals
38 # set in local.dirdeps-option.mk
39 # Either way, we will .undef DIRDEPS.* when done.
41 # This should have been set by Makefile.depend.options
45 # pickup any DIRDEPS.* we need
46 .-include <local.dirdeps-option.mk>
48 .if ${.MAKE.LEVEL} == 0
49 # :U below avoids potential errors when we :=
50 .for o in ${DIRDEPS_OPTIONS:tu}
51 DIRDEPS += ${DIRDEPS.$o.${MK_$o:U}:U}
53 DIRDEPS := ${DIRDEPS:O:u}
54 # avoid cross contamination
55 .undef ${DIRDEPS_OPTIONS:tu:@o@DIRDEPS.$o.yes DIRDEPS.$o.no@}
57 # whether options are enabled or not,
58 # we want to filter out the relevant DIRDEPS.*
59 # we should only be included by meta.autodep.mk
60 # if dependencies are to be updated
61 .for o in ${DIRDEPS_OPTIONS:tu}
62 .for d in ${DIRDEPS.$o.yes} ${DIRDEPS.$o.no}
63 .if exists(${SRCTOP}/$d)
64 GENDIRDEPS_FILTER += N$d*
65 .elif exists(${SRCTOP}/${d:R})
66 GENDIRDEPS_FILTER += N${d:R}*