[poppler] autotools and poppler 0.10.4

Hib Eris Hib at hiberis.nl
Sat Mar 7 12:32:06 PST 2009


Carlo Bramini wrote:

>Hello,
>as you probably know, poppler 0.10.4 does not compile shared libraries under mingw+msys.
>I saw bug 20125 and it seems you have fixed it by adding AC_LIBTOOL_WIN32_DLL to configure script.
>I had not added it in my previous patches that I sent here some months ago because it's a deprecated macro by long time, about 4 years now.
>autotools have been upgraded into poppler 0.10.4, but it seems to be a "downgrade" instead!
>May I ask what has happened?.
>
>Sincerely,
>
>Carlo Bramini.


Hello Carlo, Albert (and others),

Please allow me to speculate a bit on what happened and where the
AC_LIBTOOL_WIN32_DLL comes from.

First, based on your work to compile poppler under MINGW+MSYS, I got
poppler to cross compile on Ubuntu with the mingw cross compiler to
windows.
For this to work, I had to add AC_LIBTOOL_WIN32_DLL to the configure.in file.
Compiling natively on Windows, this line is probably unnecessary as
autoconf on windows will probably do the right thing automatically. So
for MINGW+MSYS, this line was unnecessary.
When cross compiling it is needed to tell libtool about windows DLLs.
This can be done either by calling AC_LIBTOOL_WIN32_DLL or by
initializing libtool with LT_INIT([win32-dll]).

As you noted, the macro AC_LIBTOOL_WIN32_DLL, is deprecated, so I
initialy proposed to use LT_INIT(). Unfortunately, at the time I
posted my patches,
http://bugs.freedesktop.org/show_bug.cgi?id=19219, Albert's autoconfig
did not support LT_INIT.
It did support AC_LIBTOOL_WIN32_DLL, so this macro call has ended up
in poppler's master branch
(http://cgit.freedesktop.org/poppler/poppler/commit/?id=84366d9e63b0d6a5ee1aae2463648cfc2ff5e1b8)
It did not get committed to the 0.10.x branch.

Now fast forward to recent times, and this where I speculate: at some
point Albert updated his autoconfig program and this changed the
produced configure file for the 0.10.x branch.
This broke the MINGW+MSYS port because apparently the newer autoconfig
version did no longer automatically produce a configure file that
works well on MINGW+MSYS. Apparently if you generate a
configure file on unix from configure.in with a recent autoconf, it
does not produce a configure script that works on MINGW+MSYS. If you
generate the configure script with autoconf on Windows, it probably
does work I think, but as the distributed configure files are
generated on unix (?), they don't.

As reported in http://bugs.freedesktop.org/show_bug.cgi?id=20125, this
was fixed by adding(/copying form master) AC_LIBTOOL_WIN32_DLL to
configure.in.

Now, as you noted this is deprecated syntax, and since Albert is now
using a recent autoconf, it might be so that he can now use the newer
syntax. So Albert, could you please try to replace the calls to

AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL

in configure.in with

LT_INIT([win32-dll])

and see if this will work now for you?


Kind regards,

Hib Eris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/poppler/attachments/20090307/fbede8ba/attachment.html 


More information about the poppler mailing list