I'm sorry don't have time to read this whole thread in detail
right now, but here are some thoughts (probably contradictory).
We already have AC_SUBST_FILE. Shouldn't we also have
AC_SUBST_MULTILINE or some such? This way we can tell the
difference from --trace, and use something like @\n@ only for
the variables that need it, without unnecessary bloat.
If VAR contains newlines that matters to me (like in a Makefile
rule), then there is no way I can use $(VAR) in Makefile and
have these newlines, so I might as well use @VAR@ directly and
in this case I don't need the VAR = @VAR@ definition.
If VAR contains newlines that don't matter to me I can replace
them with space before substitution. Or if the problem is the
length of the line and I need backslash-newlines in the VAR =
@VAR@ definition, I can introduce the backslash-newline before
substitution.
Changing the definition of LIBOBJS in a way that requires @\n@
or in a way that doesn't use AC_SUBST will break the
compatibility with previous Automake versions. Maybe the safest
way would be to add the backslash-newlines before the AC_SUBST.
I haven't tried but I think the actually multiline
implementation of AC_SUBST offer a kind of horrible way to introduce
a make rule in ALL Makefiles, since you could have
DUMMY = @DUMMY@
substituted by
DUMMY =
mytarget: mydependency
my rule
Eww :)
--
Alexandre Duret-Lutz
Shared books are happy books. http://www.bookcrossing.com/friend/gadl