This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Update minimum make version to 3.81


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

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]