libtool
[Top][All Lists]
Advanced

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

Re: I upgraded to autoconf 2.52g


From: Akim Demaille
Subject: Re: I upgraded to autoconf 2.52g
Date: 11 Feb 2002 15:00:38 +0100
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp)

| Akim Demaille wrote:
| > | $ cvs diff configure.in
| > | @@ -403,7 +403,9 @@
| > |  # ----------------------------------------------------------------------
| > |  # Generate the make files.
| > |  # ----------------------------------------------------------------------
| > | -LTLIBOBJS=`echo "$LIBOBJS"|sed 's,\.o ,.lo,g;s,\.o$,.lo,'`
| > | +lo=LIB
| > | +lo="${lo}OBJS"
| > | +LTLIBOBJS=`eval echo \"\\\$${lo}\"|sed 's,\.o ,.lo,g;s,\.o$,.lo,'`
| > |  AC_SUBST(LTLIBOBJS)
| 
| > Aarg!  _Many_ thanks Bruce.  I completely forgot about this.
| 
| Hey, no problem.  Why not keep a CVS copy of AutoGen around,
| just for this purpose.  :-)  It seems to "push the envelope"
| in a lot of ways....
| 
| > I must absolutely document this.
| 
| Document what?  I cannot emphasize enough that it is really
| important for we ``I really wish I were a novice'' types
| that there be a simple way to say, "I wanna use libtool" and
| have this stuff get inserted.  A backup is to add to libtool's
| m4 macros:
| 
|   AC_DEFUN([LT_WRAPUP],[
|     AC_CONFIG_COMMANDS_PRE([
|       Xsed="sed -e s/^X//"
|       LTLIBOBJS=`echo X"$LIB@&address@hidden" | \
|         $Xsed -e 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`])
|     AC_SUBST([LTLIBOBJS]) ])
| 
| and keep as much hair as possible out of my way.
| I like no-op quadrigraphs even less than quadrigraph
| brackets.

I mean, I have to document that change: many people still do that by
hand, because Libtool still does not handle this itself.  In other
words, both the Autoconf and Libtool documentations must document the
old form, how to have the old form work with a modern Autoconf (using
quadrigraphs or whatever), and most importantly, have Libtool move to
AC_CONFIG_COMMANDS_PRE.

BTW, I should also update the documentation of this macro, which I
wrote long ago, precisely to save users from this cryptic things.  To
bad Libtool didn't catch up.  Anybody from the Libtool list willing to
implement it?

        @defmac AC_CONFIG_COMMANDS_PRE (@var{cmds})
        @acindex OUTPUT_COMMANDS_PRE
        Execute the @var{cmds} right before creating @file{config.status}.  A
        typical use is computing values derived from variables built during the
        execution of @command{configure}:
        
        @example
        AC_CONFIG_COMMANDS_PRE(
        [LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o/\.lo/g'`
        AC_SUBST(LTLIBOBJS)])
        @end example
        @end defmac
        
| > The point is that you should never have to
| > write such horrors, it really belongs to Libtool.  Autoconf now
| > provides all the needed machinery to have it done.  And I'm working on
| > having LIBOBJS removed:
| 
| Excellent.  Just provide a macro that results in a space
| separated list of objects and everyone will certainly be
| happy.  Maybe Autoconf should hang on to LT_WRAPUP until
| the interface is established?

Autoconf is not concerned with this.  Libtool has to do it in
AC_PROG_LIBTOOL.

But we agree, there is, unfortunately, much to discuss about under
what form AC_LIBOBJ ought to work.  Likewise with AC_LIBSOURCES.  As a
matter of fact, I consider this to be the only reason why 2.53 is not
out yet.

When I have time, I'll send a complete description of the issues.  It
involves Autoconf, Automake, and Libtool.

| > But then, of course, I introduce a warning for the user to
| > know that this is now to be avoided
| 
| Warnings need to stay warnings for years, though.
| I should not have been bitten with an obscure fatal error
| merely for upgrading autoconf a couple of minor revs....
| 
| > Of course, it's a serious problem that it had not been documented.
| 
| I'm still confused.  What was not documented?
| 
| 1.  That you should not access LIBOBJS in any way?

Well, that because there are risks of misusing it, autoconf is over
picky, but there is no reason to be willing to access to it (except
for the fact that Libtool mandates it currently). (Oh, BTW, don't
forget that Automake is involved too, since it adds a $U for
de-ansi-fication).

| 2.  That the change went from "okay to use" to "fatal error"
|     between two minor revs?

I don't follow you.  But anyway, it doesn't matter.

| 3.  That documentation showing its use remained?
| 
| For the sake of usability and user friendliness, it is
| *important* to print a message, e.g.:
| 
|   I've noticed that you are accessing a variable named LIBOBJS.
|   This is an internal variable with an undocumented usage.
|   You must stop using it before upgrading to version 3 or 4
|   of autoconf.  Until then, you and your customers will have to
|   read this warning message every time you configure.
| 
|   Please see http://www.gnu.org/software/autoconf/LIBOBJS.html

OK, I'll use a more verbose error message, and will write a section
about upgrading to 2.53.  Your words will be useful, thanks!

| 
| =====================  P.S. ===================
| 
| If this sounds irritable and cranky, then I'll figure it out
| before I retransmit to the autoconf/libtool list.  I'm feeling
| cranky for unrelated reasons, so this likely sounds cranky.
| My intention is to be helpful with good suggestions.  But I
| need dinner, aspirin and sleep.  :-)

Really, don't be afraid.  I confess that indeed I have been somewhat
irritated the last weeks, for many reasons, most of them not being
related to Autoconf (_most of them_ leaves some room though :).

Nevertheless, don't be afraid of the way you talk etc.  I don't think
I'm that sensible.  As a matter of fact, many times I write things
that were intended to be puns, and some lack of smileys where humor
seemed to be self-evident to me, might have given a complete different
tone to my messages.

So rest assured, I'm still stable enough to face the hurd of
unsatisfied users :) :) :)

| Feel free to clean up any way you like & post to those lists,
| if you want.  Cheers - Bruce

Done.  Thanks!



reply via email to

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