Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Feb 2015 17:39:20 -0800
From:      NGie Cooper <yaneurabeya@gmail.com>
To:        "Simon J. Gerraty" <sjg@juniper.net>
Cc:        "freebsd-arch@freebsd.org" <arch@freebsd.org>
Subject:   Re: Better way to do conditional inclusion in make
Message-ID:  <CAGHfRMCNMoisdn=Xheg-V5SnJhvB1yfk2s_RJc%2BSHYLwt4eekA@mail.gmail.com>
In-Reply-To: <5180.1423185968@chaos>
References:  <39C20BA1-E6B1-4DAE-95BB-8011A0A64D54@bsdimp.com> <54D40DC4.9070907@freebsd.org> <CAGHfRMAdOTUQZvU5D_1KYEyZdoaD4RJ2BTTOgUjrm3sK31U0kw@mail.gmail.com> <5180.1423185968@chaos>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 5, 2015 at 5:26 PM, Simon J. Gerraty <sjg@juniper.net> wrote:
> NGie Cooper <yaneurabeya@gmail.com> wrote:
>> > how does it cope with the case where a single file is dependent on either of
>> > two options.
>> > (we have this in our tree.. not sure if it occurs in the FreeBSD tree.)
>> > file could occur in both lists or twice in one list..
>>
>> This is a good, valid point. I think that Warner's proposal will fix
>> the simple case (using one knob), but not the more complex case.
>
> FILES:= ${FILES:O:u}
>
> should cover that case.

Yes, but not this:

.if ${MK_BAR} != "no" && ${MK_FOO} != "no"
FILES+= a_lot_of_bar_in_my_foo
.endif

>> What concerns me about the short description of the implementation,
>> (and something that I'm going to add to the phabricator review) is
>> that this will:
>>
>> 1. Break using FILESGROUPS
>
> Why?

The same reason why bsd.progs.mk didn't work with bsd.prog.mk on
FreeBSD out of the box originally -- defaults:

10 FILESGROUPS?=   FILES
11
12 .for group in ${FILESGROUPS}
13 buildfiles: ${${group}}
14 .endfor
15

Warner's change (based on what I understand, again I haven't looked at
the review yet...) would require setting FILESGROUPS explicitly. So if
you had a Makefile snippet that defines the non-default FILESGROUPS
already, it will break that usecase.

>> 2. Requires creating snippets for dealing with magic in bsd.*.mk (I
>> wouldn't want this magic going into the general purpose snippets
>> because it would probably break backwards compatibility).
>
> Not necessarily eg. if you clean/simplify the list after building it.

I'll delay my reply on this because my other replies might change my question.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMCNMoisdn=Xheg-V5SnJhvB1yfk2s_RJc%2BSHYLwt4eekA>