-----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 [EMAIL PROTECTED] -----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----- _______________________________________________ M4-patches mailing list [email protected] http://lists.gnu.org/mailman/listinfo/m4-patches
