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: Gary V. Vaughan
Subject: Re: support standalone libltdl [libtool--gary--1.0--patch-23]
Date: Sat, 20 Aug 2005 18:25:44 +0100

Hallo Ralf!

On 19 Aug 2005, at 19:51, Ralf Wildenhues wrote:
* 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).

Ah! Okay, gotcha.  I've fixed that in my merge of --patch-23 to HEAD,
ready for the green light to commit :-)

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..  ;-)

Nah... you can use -n as you pointed out in the last email ;-)

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 %%%/...

Heck!  Really?  Wow, some make implementations really are the pits! :-(

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 only see one instance in HEAD.  The similar trick used in the libtool
script isn't seen by make, so that doesn't suffer the same problem.

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

Okay, cool :-)

Cheers,
    Gary.
-- Gary V. Vaughan ())_. gary@ {lilith.warpmail.net,gnu.org},address@hidden
Research Scientist   ( '/   http://www.tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/{libtool,m4}
Technical Author   `(_~)_   http://sources.redhat.com/autobook



Attachment: PGP.sig
Description: This is a digitally signed message part


reply via email to

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