Hi Paul,
On Fri, Feb 16, 2001 at 01:02:37AM -0500, Paul D. Smith wrote:
> I'm not ready to release it for testing yet.
>
All right. :}
> You are, of course, free to do what you like, but my previous suggestion
> is still the best one I have. You have a simple implementation that
> works for you on the system you care about (Linux), so my advice is to
> go ahead and use that until such time as 3.80 is available or in
> pretest.
>
I decided to do some kludges and write dynamic rules to an output file
which is later included. The only problem I ran into is that I can't
invoke a shell command which contains newlines from make itself.
There seems to be no way to write this within the shell.
$ cat rules | sed 's/<newline>/\
/' > rules2
Neither this works, although I use a define
define write-rule
cat << ENDOFFILE
$(subst dollar,$$,$(1))
ENDOFFILE >> rules
endef
eval = $(shell $(write-rule))
the eval function won't accept this single shell command with newlines in it.
is there a way to use shell 'here documents' like this which I have omitted?
Trying to use define, I was also unable to provide multi-line output using
a code like this:
define call-build-exec
<newline>
echo test!
endef
prog-deprule = $(call eval,$(1): dollar($(1)_EXECFILE) $(call-build-exec))
$(call map,prog-deprule,$(PROGRAMS))
Here the eval implementation is very simple:
define write-rule
echo '$(subst dollar,$$,$(1))' >> rules
endef
eval = $(shell $(write-rule))
and map is the usual one
map = $(foreach a,$(2),$(call $(1),$(a)))
In brief, there seems to be something wrong about the interpretation of
newlines. I simply can't invoke this shell command from make:
orion:cxx$ echo "hi
> this was a newline"
hi
this was a newline
I am at a loss with this. Any ideas?
Thanks,
--
Eray (exa) Ozkural
Comp. Sci. Dept., Bilkent University, Ankara
e-mail: [EMAIL PROTECTED]
www: http://www.cs.bilkent.edu.tr/~erayo
_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make