Given certain circumstances, libtool 2.4.2 fails to install a library. 
(a) The target directory spec contains a trailing slash
(b) The library to install is linking to another just-built one in a 
different path.

$ cat Makefile
AC_INIT([foo], [0])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
LT_INIT
AC_DISABLE_STATIC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

$ cat Makefile.am
lib_LTLIBRARIES = libbase.la
libbase_la_SOURCES = foo.c
phpdir = /usr/lib/php/extensions/
php_LTLIBRARIES = foo.la
foo_la_SOURCES = foo.c
foo_la_LDFLAGS = -module -avoid-version
foo_la_LIBADD = libbase.la

$ cat foo.c
int dummy;

== What's observed ==
$ autoreconf -fi; ./configure; make install DESTDIR=/tmp/YY
[…snip…]
libtool: install: ranlib /tmp/YY/usr/local/lib/libbase.a
libtool: install: warning: remember to run `libtool --finish /usr/local/lib'
 /usr/bin/mkdir -p '/tmp/YY/usr/lib/php/extensions/'
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   foo.la 
'/tmp/YY/usr/lib/php/extensions/'
libtool: install: error: cannot install `foo.la' to a directory not ending in 
/usr/lib/php/extensions/
Makefile:411: recipe for target 'install-phpLTLIBRARIES' failed
make[1]: *** [install-phpLTLIBRARIES] Error 1

$ cat foo.la
[…]
# Directory that this library needs to be installed in:
libdir='/usr/lib/php/extensions/'
[…]


== What should have happened instead ==
Produce a .la file whose "libdir" variable contains no trailing slash(es) so
that libtool --mode=install won't trip,
and/or
make libtool robust so that it can deal with trailing slash(es) read from
$libdir.

_______________________________________________
https://lists.gnu.org/mailman/listinfo/libtool

Reply via email to