It’s been almost a year and a half since Rob released libtool 1.5, and the code has changed massively in the interrim. Things are so different in fact, that I have decided that we should call the next stable branch libtool-2.0! The macro interface has changed, the build system has changed, ltmain.in has been partly rewritten, libtoolize has been completely rewritten from scratch, and libltdl has been massively refactored. We need to make that stable branch asap… porting patches between branch-1-5 and HEAD is no joke!
I am itching to release a whole new m4, and it has been almost ready for ages now, but for a lack of advanced runtime dynamic library loading support in libtool… which has been my focus for the last couple of months. The coolest new feature in libtool-2.0 (IMHO) is being able to dlopen and dlpreopen modules from a library. This allows libm4.la to preload the modules it needs for the intrinsic m4 builtins, and then use libltdl to open those and user dynamic modules from the same interface. Not that earth shattering on the grand scale of things, until you remember that libtool has to do that on all the platforms it supports (except the ones that can’t do dynamic linking, obviously).
Libtool now has all the features that the next m4 requires, so I have released libtool-1.9b. I dare say that another week of platform testing and fixing, and maybe another alpha, and we will be able to draw a line under libtool-2.0 :-). I’m going to try and put an m4 alpha out this week too…