[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: HEAD: Kill two showstoppers at once
From: |
Gary V. Vaughan |
Subject: |
Re: HEAD: Kill two showstoppers at once |
Date: |
Tue, 30 Aug 2005 15:23:11 +0100 |
User-agent: |
Mozilla Thunderbird 1.0 (X11/20050305) |
Ralf Wildenhues wrote:
* Ralf Wildenhues wrote on Tue, Aug 30, 2005 at 01:46:42PM CEST:
The ltoptions machinery has one little bug. Two showstoppers are the
result of this: AC_DISABLE_STATIC not working, and AC_LIBTOOL_WIN32_DLL
not working. (The other old-style option setting macros don't work
either, I believe):
To reproduce:
Shorter way to reproduce:
m4_include(ltoptions.m4)
m4_divert(0)
_LT_SET_OPTION([shared])
_LT_SET_OPTIONS
m4_undivert(0)
vs.
m4_include(ltoptions.m4)
m4_divert(0)
_LT_SET_OPTIONS([shared])
m4_undivert(0)
Treating both with (lightly hackish)
autom4te --language=m4sh foo.m4 -o output
does not produce identical output.
Aha! Thanks for the pointers. The problem is simply that
_LT_OPTION_DEFUN_shared is never dispatched in the first example.
The easiest way to do that is to move the dispatch code from
_LT_SET_OPTIONS to _LT_SET_OPTION (untested):
# _LT_SET_OPTION(NAME)
# ------------------------------
# Set option NAME, and if there is a matching handler defined,
# dispatch to it. Other NAMEs are saved as a flag.
m4_define([_LT_SET_OPTION],
[m4_define(_LT_MANGLE_OPTION([$1]))dnl
m4_ifdef(_LT_MANGLE_DEFUN([$1]),
_LT_MANGLE_DEFUN([$1]),
[m4_fatal([Unknown Libtool option `$1'])])[]dnl
])
...
# _LT_SET_OPTIONS(OPTIONS)
# ------------------------
# OPTIONS is a space-separated list of Libtool options.
# If any OPTION has a handler macro declared with LT_OPTION_DEFINE,
# dispatch to that macro; otherwise complain about the unknown option
# and exit.
m4_define([_LT_SET_OPTIONS],
[AC_FOREACH([_LT_Option], [symbols], [_LT_SET_OPTION(_LT_Option)])
dnl
dnl Simply set some default values (i.e off) if boolean options were not
dnl specified:
_LT_UNLESS_OPTIONS([dlopen], enable_dlopen=no)
_LT_UNLESS_OPTIONS([win32-dll], enable_win32_dll=no)
dnl
dnl If no reference was made to various pairs of opposing options, then
dnl we run the default mode handler for the pair. For example, if neither
dnl `shared' nor `disable-shared' was passed, we enable building of shared
dnl archives by default:
_LT_UNLESS_OPTIONS([shared disable-shared], [_LT_ENABLE_SHARED])
_LT_UNLESS_OPTIONS([static disable-static], [_LT_ENABLE_STATIC])
_LT_UNLESS_OPTIONS([pic-only no-pic], [_LT_ENABLE_PIC])
_LT_UNLESS_OPTIONS([fast-install disable-fast-install],
[_LT_ENABLE_FAST_INSTALL])
])# _LT_SET_OPTIONS
I'm not sure why I committed before I'd finished this :-(
Back to work today, so no time to generate a proper patch, sorry.
HTH,
Gary.
--
Gary V. Vaughan ())_. address@hidden,gnu.org}
Research Scientist ( '/ http://tkd.kicks-ass.net
GNU Hacker / )= http://www.gnu.org/software/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
signature.asc
Description: OpenPGP digital signature
- HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/30
- Re: HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/30
- Re: HEAD: Kill two showstoppers at once,
Gary V. Vaughan <=
- Re: HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/30
- Re: HEAD: Kill two showstoppers at once, Gary V. Vaughan, 2005/08/30
- Re: HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/30
- Re: HEAD: Kill two showstoppers at once, Gary V. Vaughan, 2005/08/30
- FYI: HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/31
- Re: FYI: HEAD: Kill two showstoppers at once, Gary V. Vaughan, 2005/08/31
- Re: HEAD: Kill two showstoppers at once, Ralf Wildenhues, 2005/08/31
- Re: HEAD: Kill two showstoppers at once, Gary V. Vaughan, 2005/08/30