On Sat 6/16/12 14:23 EDT ogronom wrote:
> From info make
>
> The only processing `make' does on the result
> is to convert each newline (or carriage-return / newline pair) to a
> single space. If there is a trailing (carriage-return and) newline it
> will simply be removed.
>
> So it looks like, that you can not change this behaviour. Workaround
> depends on what your script actually does. For example suggested below
> you can do something like this
>
> vars_to_define=foo bam
> foo_script=echo 123
> bam_script=echo hi
>
> $(foreach v,$(vars_to_define),$(eval $(v)=$(shell $($(v)_script))))
>
> .PHONEY: bar
> bar:
> @echo foo: $(foo)
> @echo
> @echo bam: $(bam)
Inspired by your hints, this approach ( no include file, but should allow
dynamic macro definition ) is looking promising:
$ cat makefile
$(shell echo -e 'frob=x\ngrok=y\njam=z' > /tmp/zat)
$(foreach v,$(shell set -- $$(wc -l /tmp/zat); seq $$1),$(eval $(shell sed
-ne $(v)p /tmp/zat)))
$(shell rm /tmp/zat)
.PHONEY: bar
bar:
@echo frob: $(frob)
@echo grok: $(grok)
@echo jam: $(jam)
$ rm -f /tmp/zat; make bar
frob: x
grok: y
jam: z
$ ls /tmp/zat
ls: /tmp/zat: No such file or directory
$
I need to see if I can adjust above to use mktemp instead of a constant
'/tmp/zat'
temp filename.
--
Tom
_______________________________________________
Help-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-make