libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: support standalone libltdl [libtool--gary--1.0--patch-23]


From: Ralf Wildenhues
Subject: Re: support standalone libltdl [libtool--gary--1.0--patch-23]
Date: Fri, 19 Aug 2005 20:51:08 +0200
User-agent: Mutt/1.5.9i

Hi Gary,

* Gary V. Vaughan wrote on Fri, Aug 19, 2005 at 07:43:56PM CEST:
> Ralf Wildenhues wrote:
> >Another bug:
> >
> >Makefile.am:
> >+       $(SED) '/^# ### BEGIN /,/^# ### END / \
> >+           { s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \
> >+             s,\$$(libltdl_,$$(,; p; }; \
> >+           d' $$in >> $$out;
> >
> >This is not going to work on AIX, because the sed will not see the
> >newline.  Please use `sed -n'.
> 
> See what newline?

The one (that exists in `Makefile') before the `d' sed command, but
won't be in the script `sed' gets:
   sed '... p; };   d' ...
This:  ^^^^^^^^^^^^^^
will, to sed, all be on one line.  And thus it fails with AIX sed, as
we've encountered a couple of times before (also mentioned in Autoconf
docs).

Hehe, now I know of a situation where it might be necessary to use
  sed -e .. -e ..
(so no way to call this an urban legend any more..  ;-)


> Do you mean like this:
> 
> Makefile.am:
>       $(SED) -n '/^# ### BEGIN /,/^# ### END / { \
>           s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \
>           s,\$$(libltdl_,$$(,; p; }' $$in >> $$out

Yep.  But now that I see it, there is even a much bigger problem:
You may not use `#' in a Makefile in _anything_ other than a comment.
Some `make' will read this as 

        $(SED) -n '/^
            s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \
            s,\$$(libltdl_,$$(,; p; }' $$in >> $$out

(yep, they'll also ignore the escaped newline) and most likely bail
badly.  You could change the markers to use different characters and
match with wildcards, e.g. like this:

# %%% BEGIN %%%

and match /^..%%% BEGIN %%%/...

Shoot.  This issue is in three other places in CVS HEAD..
Will post a patch for those.  For ASCII, I believe
  lt_makecomment = tr '\174' '\043'
is a valid way to make # out of |.

> I'll fix this before I commit once I understand it! :-)

I'll look at the rest of your monster patch eventually.

Cheers,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]