[RFC] Update minimum make version to 3.81
Mike Frysinger
vapier@gentoo.org
Fri Jun 24 20:50:00 GMT 2016
On 24 Jun 2016 22:11, Florian Weimer wrote:
> On 06/24/2016 08:46 PM, Mike Frysinger wrote:
> >>> what about using target-specific variables and relying on inheritance [1] ?
> >>> does this work ?
> >>> $(tests): CPPFLAGS += ...
> >>
> >> It would have to be something like:
> >>
> >> $(tests:%=$(objpfx)%.o): CPPFLAGS += -DTEST_NO_MALLOPT
> >
> > did you verify that ? target-specific variables inherit across targets.
> >
> > example:
> > $ cat Makefile
> > tests = a
> > check: $(tests)
> > $(tests): CPPFLAGS += FOO
> > a: a.o
> > a.o:
> > echo $(CPPFLAGS)
> > false
> >
> > $ make
> > echo FOO
> > FOO
> > ...
>
> Oh wow. It does work (even with make 3.81).
>
> But how is this a good idea? It means that if a target match %.o is
> built not via $(tests), but as a prerequisite of another target, the
> variable is not applied (and the target is not rebuilt for the other
> dependency chain, I assume).
that might be the case, as well as the other way around: if a lib
is rebuilt via the tests dep, it'll have that flag added.
i'm ambivalent with either solution, so whichever you feel better
about.
> I suppose it's unlikely that developers will try to rebuild individual
> .o files in subdirectories. But my, what an obscure make feature!
yeah, it's bitten me in the past :).
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20160624/04fd9156/attachment.sig>
More information about the Libc-alpha
mailing list