Better way to do conditional inclusion in make
Warner Losh
imp at bsdimp.com
Thu Feb 5 17:57:08 UTC 2015
Greetings,
I’ve started a pass through the tree to cleanup how we do conditional inclusion in our build system.
https://reviews.freebsd.org/D1781
It moves away from
.if ${MK_foo} != “no”
FILES+= files
.endif
and
SUBDIRS= … ${_foo} …
...
.if ${MK_foo} != “no”
_foo+= foo
.endif
and instead more directly assigns things. We know that MK_foo is always going to be yes or no
for build options. We can leverage that fact, and the fact that bmake is so much better at variable
expansion than fmake was (especially in the early days) to instead move to something like:
FILES=list of unconditional files here ${FILES.yes}
FILES.${MK_foo}+=foo bar biz
FILES.${MK_baz}+=baz bing boo
which eliminates a whole lot of needless .if / .endif lines, lots of extra blank lines, etc.
Comments?
Warner
More information about the freebsd-arch
mailing list