m4-patches
[Top][All Lists]
Advanced

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

Re: FYI: 333-gary-refactor-LTDL_INIT.patch


From: Eric Blake
Subject: Re: FYI: 333-gary-refactor-LTDL_INIT.patch
Date: Wed, 23 Jan 2008 07:00:39 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 1/22/2008 11:30 PM:
| However, autoreconf -fi now complains:
|
| autoreconf: running: aclocal --force -I ltdl/m4
| configure.ac:92: error: multiple libltdl directories: `ltdl',
| `nonrecursive convenience'
| ltdl/m4/ltdl.m4:23: _LT_CONFIG_LTDL_DIR is expanded from...
| ltdl/m4/ltdl.m4:242: LTDL_INIT is expanded from...
| configure.ac:92: the top level
|
| Somehow, it is trying to treat the arguments to LTDL_INIT as a directory
| name, rather than options.

The problem seems to stem from the fact that I had an older version of
libltdl copied into my M4 tree, and autoreconf runs aclocal prior to
libtoolize, so it was picking up the old definition of LTDL_INIT which
conflicted with my new contents of configure.ac.

By the way, shouldn't libtoolize be taught to parse LTDL_INIT out of
configure.ac, rather than requiring the user to supply the --nonrecursive
command-line option?  Neither 'libtoolize -f -i' nor 'libtoolize -f -i
- --nonrecursive' was enough:

$ libtoolize -f -i --nonrecursive
...
$ autoreconf -v
...
autoreconf: running: automake --no-force
automake: cannot open < ltdl/Makefile.inc: No such file or directory
autoreconf: automake failed with exit status: 1


I had to supply --ltdl to libtoolize before Makefile.inc was created.
Also, libtoolize is smart enough to parse AC_CONFIG_AUX_DIR out of
configure.ac, and begins installing several files there.  However, with
the --ltdl option, it then proceeds to install additional copies of files
into ltdl/config, rather than reusing what it already learned:

$ libtoolize -f -i -c --nonrecursive --ltdl=ltdl
libtoolize: putting files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/config.guess'
...
libtoolize: copying file `ltdl/argz.c'
...
libtoolize: copying file `ltdl/config/compile'
libtoolize: copying file `ltdl/config/config.guess'
...
libtoolize: Consider using `AC_CONFIG_AUX_DIR([ltdl/config])' in configure.ac.


Why can't it put all the files in build-aux, rather than some files only
in ltdl/config and duplicates of other files in both directories?  I can
understand its placement of files for a subproject build (where ltdl needs
to be a self-contained project), but for nonrecursive, it would be nicer
for libtoolize to fit in with the rest of the package it is being
integrated into.  Which brings up the next problem - even with the above
invocation, autoreconf still chokes:

$ autoreconf -v
...
autoreconf: running: automake --no-force
configure.ac:250: required file `gnu/lt__dirent.c' not found
configure.ac:250: required file `gnu/argz.c' not found
configure.ac:250: required file `gnu/lt__strl.c' not found
autoreconf: automake failed with exit status: 1

Automake is looking inside AC_CONFIG_LIBOBJ_DIR (gnu) rather than where
libtoolize installed those files (ltdl).  I'm still not sure what to do
about that, although it probably will be similar to how gnulib supports
dual libraries (such as one library containing --lgpl objects, the other
containing GPL).  My understanding was that gnulib plays some m4 games
with m4_pushdef(AC_LIBOBJ) to achieve the right effect

I guess this thread means autoreconf will also need to be taught about
libtoolize's new modes; also autoconf and automake could probably be
improved in their handling of multiple LIBOBJ directories.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHl0iH84KuGfSFAYARAgcpAKCEqv+3oNY3p14N/FcapNxwhCjwLACfZDTc
g1NeuktSjVUNl7n5IZUaxqY=
=4n7I
-----END PGP SIGNATURE-----




reply via email to

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