Paul D. Smith wrote: > %% "James" <[EMAIL PROTECTED]> writes: > > j> I have a situation where tens of target dependent variables need to be > j> set. > > j> T: AA=aa > j> T: BB=bb > j> T: CC=cc > j> etc. > > j> Is there a compact way of writing these instead of writing > j> line-by-line? > > No. But you can use eval to do it in a loop: > > $(foreach V,AA=aa BB=bb CC=cc,$(eval T: $(V))) > > Note this will ONLY work with simple variable values (ones that contain > no whitespace). Trying to allow values with whitespace using this > method would be more work than just writing them all out. > > > Alternatively, if your problem is not really so much that you have lots > of target-dependent variable values you need to set, but rather that you > have lots of targets that need these variables set, you can loop on the > target, something like this: > > define SET-VARS > $(1): AA=aa > $(1): BB=bb > $(1): CC=cc > endef > > $(foreach T,$(TARGETS),$(eval $(call SET-VARS,$(T)))) > > You have to write out all the variable settings, yes, but only once > rather than once per target. > > (note this requires at least GNU make 3.80) > > -- > ------------------------------------------------------------------------------- > Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: > http://www.gnu.org http://make.paulandlesley.org > "Please remain calm...I may be mad, but I am a professional." --Mad Scientist
Thanks. It was very helpful. James _______________________________________________ help-gnu-utils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gnu-utils
