Back to the Main Page. Download the M4 Source.

patch_libtool_on_darwin_zsh_overquoting

Synopsis

PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING

Version

    0.5.65   :   guidod

Author

Description

libtool 1.4.x has a bug on darwin where the "zsh" is installed as the bourne shell replacement. Of course, the zsh is called in a compatibility mode but there is a common problem with it, probably a bug of zsh. Newer darwin systems have a "bash" installed now, but the configure-default will be "zsh" in most systems still.

The bug revelas itself as an overquoted statement in the libtool cmds-spec for sharedlib creation on testing for "module" builds. Later libtool has gone rid of it by simply removing the quotes at that point . Here we maintain the original style and simply remove the extra escape character, i.e. we look for "archive_cmds" and replace a sequence of triple-backslash-and-doublequote with single-backslash-and-doublequote.

@= guidod@gmx.de $Id: patch_libtool_on_darwin_zsh_overquoting.m4,v 1.4 2003/03/24 16:58:21 guidod Exp $

M4 Source Code

AC_DEFUN([PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING],
[# libtool-1.4 specific, on zsh target the final requoting does one too much
case "$host_os" in
  darwin*)
    if grep "1.92" libtool >/dev/null ; then
AC_MSG_RESULT(patching libtool on .so-sharedlib creation (zsh overquoting))
      test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
      sed -e '/archive_cmds=/s:[[\\]][[\\]][[\\]]*":\\":g' 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
])