bug#41819: [libtool-2.4.6] --enable-shared=PKG does not work if LT_INIT is called before AM_INIT_AUTOMAKE

Van de Bugger <[email protected]>
Newsgroups gmane.comp.gnu.libtool.bugs
Message-ID <[email protected]>
Hi,

I use:

libtool-2.4.6-33.fc32.x86_64
autoconf-2.69-33.fc32.noarch
automake-1.16.1-14.fc32.noarch

I faced a confusing libtool behaviour: --enable-shared=PKG configure
option does not work as described in the libtool manual. I have
prepared a little test to demonstrate it:

$ cat configure.ac 
AC_INIT([Foo], [0.0.1], [[email protected]], [], [https://example.org/foo
])
AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_MACRO_DIR([_m4])
AC_CONFIG_AUX_DIR([_aux])
LT_INIT([])
AM_INIT_AUTOMAKE([foreign subdir-objects])

AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT()

echo "========================================"
echo "enable_shared=$enable_shared"
echo "enable_static=$enable_static"
echo "========================================"

$ autoreconf -i

$ ./configure --enable-shared=foo
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
...
config.status: executing libtool commands
config.status: executing depfiles commands
========================================
enable_shared=no
enable_static=yes
========================================

Pay attention to --enable-shared=foo configure option. Regardless of
the option, enable_shared is no. --enable-shared option (without
argument) does work, though:

$ ./configure --enable-shared
...
========================================
enable_shared=yes
enable_static=yes
========================================

I have a look into configure script and found that PACKAGE variable is
used before it is initialized. It seems it was my mistake, I have
called LT_INIT *before* AM_INIT_AUTOMAKE:

LT_INIT([])
AM_INIT_AUTOMAKE([foreign subdir-objects])

Swapping these two lines:

AM_INIT_AUTOMAKE([foreign subdir-objects])
LT_INIT([])

sorts out the problem, so --enable-shared=foo works as expected.

However, libtool manual says nothing about relative order of LT_INIT
and AM_INIT_AUTOMAKE, while it is not obvious for newbies. Could you
please note in libtool manual that LT_INIT must be called  *after*
AM_INIT_AUTOMAKE?

Thanks.









_______________________________________________
Bug-libtool mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-libtool
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.