On 30 Aug 2005, at 17:51, Ralf Wildenhues wrote:
Hi Gary,
Hawdy!
* Gary V. Vaughan wrote on Tue, Aug 30, 2005 at 06:31:42PM CEST:Ralf Wildenhues wrote:Just a slight cleanup of your suggestion. Changes: change m4_fatal to m4_warn, because we want to be forward compatible,Agreed.I also had to add a few newlines, else we'd end up with | # Set options | enable_dlopen=yesenable_win32_dll=yes see updated patch at end.
Oops. Thanks!
But there is another problem with respect to macro ordering: The settings set by the LT_INIT options appear too late in the configure script. If I set AC_LIBTOOL_DLOPEN, everything is OK; but if I use LT_INIT([dlopen]), it appears after a macro which might override enable_dlopen.Which macro is that?LT_SYS_DLOPEN_SELF, but basically all the hundreds of require'ments of _LT_SETUP are expanded before LT_INIT as well..
Ah, okay. We just need to move the _LT_SET_OPTIONS up the expansion stack. If it didn't take arguments we could just AC_REQUIRE a wrapper, but it does
so we're stuck with tweaking the call in LT_INIT to: _LT_SHELL_INIT([_LT_SET_OPTIONS([$1])]) Should do the trick (untested!).
The fix belongs there I think.Are you sure?
Absolutely! ;-)
The _LT_SETUP macro is instantiated after _LT_SET_OPTIONS in LT_INIT, but all its requirements are expanded before LT_INIT; see http://lists.gnu.org/archive/html/autoconf/2005-08/msg00100.html for a nice explanation about AC_REQUIRE. :) (I wouldn't have guessed I could tell the M4 maintainer something about macro expansion.. ;-)
Have you seen the implementation of m4_require? I'm thinking of doing a C version for m4-2.0... the autoconf version is way hairy! ;-)
Does moving _LT_SET_OPTIONS([$1])dnl up to being the first line of LT_INIT work?No, why should it?
It shouldn't. Just checking that I wasn't missing something in the provide
chain.
Is this bug description comprehensible? (I guess a couple of m4_require and/or AC_REQUIRE are needed, I'm sure you'll know the correct answerright away.)Maybe. Or perhaps LT_INIT needs splitting, or _LT_SET_OPTIONS runningin a diversion... If you tell me the macro that is getting emittedbefore the _LT_SET_OPTIONS expansion I should be able to figure it out.Have fun. :)
With m4? How could it be otherwise? :-b
2005-08-30 Gary V. Vaughan <[EMAIL PROTECTED]>, Ralf Wildenhues <[EMAIL PROTECTED]> * libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): Move option macro dipatch.. (_LT_SET_OPTION): here. Do not fail but warn on unknown options. (_LT_UNLESS_OPTIONS(win32-dll), LT_OPTION_DEFINE(dlopen)): Add whitespace. Reported by Robert Ă–gren <[EMAIL PROTECTED]> and Akim Demaille <[EMAIL PROTECTED]>.
Cheers, Gary. --Gary V. Vaughan ())_. gary@ {lilith.warpmail.net,gnu.org},[EMAIL PROTECTED]
Research Scientist ( '/ http://www.tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/{libtool,m4} Technical Author `(_~)_ http://sources.redhat.com/autobook
PGP.sig
Description: This is a digitally signed message part