Hello,
On Thu, Oct 20, 2005 at 08:51:55AM +0200, Ralf Wildenhues wrote:
> > In other words, after the usual sed substtitutions, the following
> > sed code is executed:
> > /@[EMAIL PROTECTED]/ {
> > s/\n/\\&/g
> > s/@[EMAIL PROTECTED]//
> > s/\\$/& /
> > }
>
> Oh, ahh. Nifty! Only thing the user will have to keep in mind is that
> she should add another white space (besides the newline, which will be
> removed by `make') to separate values. I guess that could be called a
> feature even!
I'm not sure I understand. With GNU make, if you have
FOO = a\
b
BAR = a \
b
then both $(FOO) and $(BAR) seem to contain "a b".
When I try an OSF make, I get the same FOO, and BAR is "a b".
Is there a make implementation which would have "ab" in FOO?
If yes, we should probably use
s/\n/ \\&/g
in the above sed program.
> > > [...] it also means that any occurrence of
> > > @FOO@
> > > in a Makefile.in will be substituted by $FOO_FLATTENED rather than $FOO,
> >
> > That doesn't sound like a good idea. I think that one of the motivations
> > for multiline substitutions was that we can AC_SUBST multiline make rules.
>
> Ah, ok. So you also intend to have an AC_SUBST_NOFLATTEN or
There is no need, I think. If you have
AC_SUBST([RULE], ["foo:
echo foo"])
and you put
@RULE@
somewhere into your Makefile.am, then Makefile.in will contain:
RULE = @RULE@@\n@
...
@RULE@
and will expand to
RULE = foo:\
echo foo
...
foo:
echo foo
(Of course it doesn't make much sense to use $(RULE) in this case.)
Hope this explains it,
Stepan Kasal