~ubuntu-branches/ubuntu/natty/diffutils/natty

« back to all changes in this revision

Viewing changes to m4/lib-prefix_gl.m4

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2010-05-04 20:38:00 UTC
  • mfrom: (2.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100504203800-f67xd9rsa9xl9qqj
Tags: 1:3.0-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# lib-prefix.m4 serial 7 (gettext-0.18)
 
2
dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.
 
3
dnl This file is free software; the Free Software Foundation
 
4
dnl gives unlimited permission to copy and/or distribute it,
 
5
dnl with or without modifications, as long as this notice is preserved.
 
6
 
 
7
dnl From Bruno Haible.
 
8
 
 
9
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
 
10
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
 
11
dnl require excessive bracketing.
 
12
ifdef([AC_HELP_STRING],
 
13
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
 
14
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
 
15
 
 
16
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
 
17
dnl to access previously installed libraries. The basic assumption is that
 
18
dnl a user will want packages to use other packages he previously installed
 
19
dnl with the same --prefix option.
 
20
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
 
21
dnl libraries, but is otherwise very convenient.
 
22
AC_DEFUN([AC_LIB_PREFIX],
 
23
[
 
24
  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
 
25
  AC_REQUIRE([AC_PROG_CC])
 
26
  AC_REQUIRE([AC_CANONICAL_HOST])
 
27
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
 
28
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
 
29
  dnl By default, look in $includedir and $libdir.
 
30
  use_additional=yes
 
31
  AC_LIB_WITH_FINAL_PREFIX([
 
32
    eval additional_includedir=\"$includedir\"
 
33
    eval additional_libdir=\"$libdir\"
 
34
  ])
 
35
  AC_LIB_ARG_WITH([lib-prefix],
 
36
[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
 
37
  --without-lib-prefix    don't search for libraries in includedir and libdir],
 
38
[
 
39
    if test "X$withval" = "Xno"; then
 
40
      use_additional=no
 
41
    else
 
42
      if test "X$withval" = "X"; then
 
43
        AC_LIB_WITH_FINAL_PREFIX([
 
44
          eval additional_includedir=\"$includedir\"
 
45
          eval additional_libdir=\"$libdir\"
 
46
        ])
 
47
      else
 
48
        additional_includedir="$withval/include"
 
49
        additional_libdir="$withval/$acl_libdirstem"
 
50
      fi
 
51
    fi
 
52
])
 
53
  if test $use_additional = yes; then
 
54
    dnl Potentially add $additional_includedir to $CPPFLAGS.
 
55
    dnl But don't add it
 
56
    dnl   1. if it's the standard /usr/include,
 
57
    dnl   2. if it's already present in $CPPFLAGS,
 
58
    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
 
59
    dnl   4. if it doesn't exist as a directory.
 
60
    if test "X$additional_includedir" != "X/usr/include"; then
 
61
      haveit=
 
62
      for x in $CPPFLAGS; do
 
63
        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
64
        if test "X$x" = "X-I$additional_includedir"; then
 
65
          haveit=yes
 
66
          break
 
67
        fi
 
68
      done
 
69
      if test -z "$haveit"; then
 
70
        if test "X$additional_includedir" = "X/usr/local/include"; then
 
71
          if test -n "$GCC"; then
 
72
            case $host_os in
 
73
              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
74
            esac
 
75
          fi
 
76
        fi
 
77
        if test -z "$haveit"; then
 
78
          if test -d "$additional_includedir"; then
 
79
            dnl Really add $additional_includedir to $CPPFLAGS.
 
80
            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
 
81
          fi
 
82
        fi
 
83
      fi
 
84
    fi
 
85
    dnl Potentially add $additional_libdir to $LDFLAGS.
 
86
    dnl But don't add it
 
87
    dnl   1. if it's the standard /usr/lib,
 
88
    dnl   2. if it's already present in $LDFLAGS,
 
89
    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
 
90
    dnl   4. if it doesn't exist as a directory.
 
91
    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
 
92
      haveit=
 
93
      for x in $LDFLAGS; do
 
94
        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
95
        if test "X$x" = "X-L$additional_libdir"; then
 
96
          haveit=yes
 
97
          break
 
98
        fi
 
99
      done
 
100
      if test -z "$haveit"; then
 
101
        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
 
102
          if test -n "$GCC"; then
 
103
            case $host_os in
 
104
              linux*) haveit=yes;;
 
105
            esac
 
106
          fi
 
107
        fi
 
108
        if test -z "$haveit"; then
 
109
          if test -d "$additional_libdir"; then
 
110
            dnl Really add $additional_libdir to $LDFLAGS.
 
111
            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
 
112
          fi
 
113
        fi
 
114
      fi
 
115
    fi
 
116
  fi
 
117
])
 
118
 
 
119
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
 
120
dnl acl_final_exec_prefix, containing the values to which $prefix and
 
121
dnl $exec_prefix will expand at the end of the configure script.
 
122
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
 
123
[
 
124
  dnl Unfortunately, prefix and exec_prefix get only finally determined
 
125
  dnl at the end of configure.
 
126
  if test "X$prefix" = "XNONE"; then
 
127
    acl_final_prefix="$ac_default_prefix"
 
128
  else
 
129
    acl_final_prefix="$prefix"
 
130
  fi
 
131
  if test "X$exec_prefix" = "XNONE"; then
 
132
    acl_final_exec_prefix='${prefix}'
 
133
  else
 
134
    acl_final_exec_prefix="$exec_prefix"
 
135
  fi
 
136
  acl_save_prefix="$prefix"
 
137
  prefix="$acl_final_prefix"
 
138
  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
 
139
  prefix="$acl_save_prefix"
 
140
])
 
141
 
 
142
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
 
143
dnl variables prefix and exec_prefix bound to the values they will have
 
144
dnl at the end of the configure script.
 
145
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
 
146
[
 
147
  acl_save_prefix="$prefix"
 
148
  prefix="$acl_final_prefix"
 
149
  acl_save_exec_prefix="$exec_prefix"
 
150
  exec_prefix="$acl_final_exec_prefix"
 
151
  $1
 
152
  exec_prefix="$acl_save_exec_prefix"
 
153
  prefix="$acl_save_prefix"
 
154
])
 
155
 
 
156
dnl AC_LIB_PREPARE_MULTILIB creates
 
157
dnl - a variable acl_libdirstem, containing the basename of the libdir, either
 
158
dnl   "lib" or "lib64" or "lib/64",
 
159
dnl - a variable acl_libdirstem2, as a secondary possible value for
 
160
dnl   acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
 
161
dnl   "lib/amd64".
 
162
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
 
163
[
 
164
  dnl There is no formal standard regarding lib and lib64.
 
165
  dnl On glibc systems, the current practice is that on a system supporting
 
166
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
 
167
  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
 
168
  dnl the compiler's default mode by looking at the compiler's library search
 
169
  dnl path. If at least one of its elements ends in /lib64 or points to a
 
170
  dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
 
171
  dnl Otherwise we use the default, namely "lib".
 
172
  dnl On Solaris systems, the current practice is that on a system supporting
 
173
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
 
174
  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
 
175
  dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
 
176
  AC_REQUIRE([AC_CANONICAL_HOST])
 
177
  acl_libdirstem=lib
 
178
  acl_libdirstem2=
 
179
  case "$host_os" in
 
180
    solaris*)
 
181
      dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
 
182
      dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
 
183
      dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
 
184
      dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
 
185
      dnl symlink is missing, so we set acl_libdirstem2 too.
 
186
      AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
 
187
        [AC_EGREP_CPP([sixtyfour bits], [
 
188
#ifdef _LP64
 
189
sixtyfour bits
 
190
#endif
 
191
           ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
 
192
        ])
 
193
      if test $gl_cv_solaris_64bit = yes; then
 
194
        acl_libdirstem=lib/64
 
195
        case "$host_cpu" in
 
196
          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
 
197
          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
 
198
        esac
 
199
      fi
 
200
      ;;
 
201
    *)
 
202
      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
 
203
      if test -n "$searchpath"; then
 
204
        acl_save_IFS="${IFS=    }"; IFS=":"
 
205
        for searchdir in $searchpath; do
 
206
          if test -d "$searchdir"; then
 
207
            case "$searchdir" in
 
208
              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
 
209
              */../ | */.. )
 
210
                # Better ignore directories of this form. They are misleading.
 
211
                ;;
 
212
              *) searchdir=`cd "$searchdir" && pwd`
 
213
                 case "$searchdir" in
 
214
                   */lib64 ) acl_libdirstem=lib64 ;;
 
215
                 esac ;;
 
216
            esac
 
217
          fi
 
218
        done
 
219
        IFS="$acl_save_IFS"
 
220
      fi
 
221
      ;;
 
222
  esac
 
223
  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
 
224
])