Download M4 Source | Macro Index Page |
PATCH_LIBTOOL_ON_DARWIN_PASS_ALL
libtool 1.4.x on darwin uses a lib_check with a file_magic that tests for "Mach-O dynamically linked shared library". However, this is the file_magic for ".dylib" sharedlibraries but not for ".so" sharedlibraries. They have another "file -L" result of "Mach-O bundle ppc", which has an annoying result: when a a module (a .so) is dependent on another module (another .so) then libtool will error out and say that the import-module was not found where in fact it is available. It does not even try to call the real linker.
Later libtool generations have changed the processing, the import file_check has been changed from "file_magic" to "pass_all". This ac-macro does a similar thing: it checks for the darwin host, it checks for the check_method, and when it was not "pass_all" then we set it to "deplibs_check_method=pass_all"
Guido Draheim <guidod@gmx.de>
2005-01-21
AC_DEFUN([PATCH_LIBTOOL_ON_DARWIN_PASS_ALL], [# libtool-1.4 specific, on darwin set deplibs_check_method=pass_all case "$host_os" in darwin*) if grep "^deplibs_check_method=.*file_magic" libtool >/dev/null ; then AC_MSG_RESULT(patching libtool to set deplibs_check_method=pass_all) test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) sed -e '/^deplibs_check_method=/s/=.*/="pass_all"/' libtool >libtool.new (test -s libtool.new || rm libtool.new) 2>/dev/null test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! test -f libtool || mv libtool.old libtool fi ;; esac ])