libtool
[Top][All Lists]
Advanced

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

Re: Speeding up libtool


From: Robert Ögren
Subject: Re: Speeding up libtool
Date: Wed, 30 Mar 2005 00:12:33 +0200
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050328)

Ralf Wildenhues wrote:
> libtool HEAD should tell you upon invocation of `autoconf -Wall' to
> remove AC_LIBTOOL_WIN32_DLL in favor of adding the win32-dll option to
> LT_INIT.  After doing that, things should work.  (But leaving things
> like they are should also work.)

Unfortunately AC_LIBTOOL_WIN32_DLL didn't work for me with Libtool HEAD.
I created the following ugly test case:

$ cat configure.ac
AC_INIT(hello.c)
AM_INIT_AUTOMAKE(hello,0.1)
AC_PROG_CC
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_OUTPUT(Makefile)

$ cat Makefile.am
bin_PROGRAMS = hello
hello_SOURCES = hello.c

$ aclocal -I /home/robert/devel/libtool-HEAD/share/libtool-2.1a/m4/ &&
autoconf && automake
$ grep enable_win32_dll configure
$ grep OBJDUMP configure
  lt_cv_file_magic_cmd='$OBJDUMP -f'
$

The win32-dll stuff is missing. If I replace AC_LIBTOOL_WIN32_DLL and
AC_PROG_LIBTOOL with LT_INIT([win32-dll]), it works as expected:

$ cat configure.ac
AC_INIT(hello.c)
AM_INIT_AUTOMAKE(hello,0.1)
AC_PROG_CC
LT_INIT([win32-dll])
AC_OUTPUT(Makefile)

$ aclocal -I /home/robert/devel/libtool-HEAD/share/libtool-2.1a/m4/  &&
autoconf  && automake
$ grep enable_win32_dll configure
    enable_win32_dll=yes
$
================================

My M4-fu is weak, but to me it seems suspicious that _LT_SET_OPTIONS
only dispatches to the handler macros for the options that are passed in
as a parameter to _LT_SET_OPTIONS since AC_LIBTOOL_WIN32_DLL just sets
the option without dispatching. With the following change to
ltoptions.m4 my testcase works (produces the desired stuff in configure):

 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
 [_LT_SET_OPTION([win32-dll])
+m4_ifdef(_LT_MANGLE_DEFUN([win32-dll]),
+       _LT_MANGLE_DEFUN([win32-dll]),
+       [m4_fatal([Unknown option win32-dll])])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
 put the `win32-dll' option into LT_INIT's first parameter.])

If I just put in _LT_MANGLE_DEFUN([win32-dll]) instead of the m4_ifdef
it does not work. I don't know enough M4 to explain why.

This is with latest Autoconf, Automake and Libtool (1.1902) from CVS on
a GNU/Linux x86_64 system.

Robert




reply via email to

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