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.