~ubuntu-branches/ubuntu/lucid/autoconf-archive/lucid

« back to all changes in this revision

Viewing changes to m4/patch_libtool_on_darwin_pass_all.m4

  • Committer: Bazaar Package Importer
  • Author(s): Deng Xiyue
  • Date: 2009-05-12 17:30:18 UTC
  • mfrom: (1.1.9 upstream) (3.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090512173018-s7y88nfoxpaauztk
Tags: 20090426-1
* New upstream release.
* Update Standard-Version to 3.8.1:
  + List original Debianizer.
  + Point to versioned license file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# ===========================================================================
2
 
#    http://autoconf-archive.cryp.to/patch_libtool_on_darwin_pass_all.html
3
 
# ===========================================================================
4
 
#
5
 
# OBSOLETE MACRO
6
 
#
7
 
#   The problem is fixed in modern libtool versions.
8
 
#
9
 
# SYNOPSIS
10
 
#
11
 
#   PATCH_LIBTOOL_ON_DARWIN_PASS_ALL
12
 
#
13
 
# DESCRIPTION
14
 
#
15
 
#   libtool 1.4.x on darwin uses a lib_check with a file_magic that tests
16
 
#   for "Mach-O dynamically linked shared library". However, this is the
17
 
#   file_magic for ".dylib" sharedlibraries but not for ".so"
18
 
#   sharedlibraries. They have another "file -L" result of "Mach-O bundle
19
 
#   ppc", which has an annoying result: when a a module (a .so) is dependent
20
 
#   on another module (another .so) then libtool will error out and say that
21
 
#   the import-module was not found where in fact it is available. It does
22
 
#   not even try to call the real linker.
23
 
#
24
 
#   Later libtool generations have changed the processing, the import
25
 
#   file_check has been changed from "file_magic" to "pass_all". This
26
 
#   ac-macro does a similar thing: it checks for the darwin host, it checks
27
 
#   for the check_method, and when it was not "pass_all" then we set it to
28
 
#   "deplibs_check_method=pass_all"
29
 
#
30
 
# LAST MODIFICATION
31
 
#
32
 
#   2008-04-12
33
 
#
34
 
# COPYLEFT
35
 
#
36
 
#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
37
 
#
38
 
#   This program is free software; you can redistribute it and/or modify it
39
 
#   under the terms of the GNU General Public License as published by the
40
 
#   Free Software Foundation; either version 2 of the License, or (at your
41
 
#   option) any later version.
42
 
#
43
 
#   This program is distributed in the hope that it will be useful, but
44
 
#   WITHOUT ANY WARRANTY; without even the implied warranty of
45
 
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
46
 
#   Public License for more details.
47
 
#
48
 
#   You should have received a copy of the GNU General Public License along
49
 
#   with this program. If not, see <http://www.gnu.org/licenses/>.
50
 
#
51
 
#   As a special exception, the respective Autoconf Macro's copyright owner
52
 
#   gives unlimited permission to copy, distribute and modify the configure
53
 
#   scripts that are the output of Autoconf when processing the Macro. You
54
 
#   need not follow the terms of the GNU General Public License when using
55
 
#   or distributing such scripts, even though portions of the text of the
56
 
#   Macro appear in them. The GNU General Public License (GPL) does govern
57
 
#   all other use of the material that constitutes the Autoconf Macro.
58
 
#
59
 
#   This special exception to the GPL applies to versions of the Autoconf
60
 
#   Macro released by the Autoconf Macro Archive. When you make and
61
 
#   distribute a modified version of the Autoconf Macro, you may extend this
62
 
#   special exception to the GPL to apply to your modified version as well.
63
 
 
64
 
AC_DEFUN([PATCH_LIBTOOL_ON_DARWIN_PASS_ALL],
65
 
[# libtool-1.4 specific, on darwin set deplibs_check_method=pass_all
66
 
case "$host_os" in
67
 
  darwin*)
68
 
    if grep "^deplibs_check_method=.*file_magic" libtool >/dev/null ; then
69
 
AC_MSG_RESULT(patching libtool to set deplibs_check_method=pass_all)
70
 
      test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
71
 
      sed -e '/^deplibs_check_method=/s/=.*/="pass_all"/' libtool >libtool.new
72
 
      (test -s libtool.new || rm libtool.new) 2>/dev/null
73
 
      test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
74
 
      test -f libtool     || mv libtool.old libtool
75
 
    fi
76
 
  ;;
77
 
esac
78
 
])