~ubuntu-branches/ubuntu/natty/hello-debhelper/natty

« back to all changes in this revision

Viewing changes to gnulib/m4/lib-link.m4

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2006-12-09 17:00:14 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20061209170014-817qbpd8jsc3g5xh
Tags: 2.2-1
* New upstream release.
* Repackaged source taken from hello package.
* Removed prerm and postinst, as info files are missing now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# lib-link.m4 serial 10 (gettext-0.16.1)
 
2
dnl Copyright (C) 2001-2006 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
AC_PREREQ(2.54)
 
10
 
 
11
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
 
12
dnl the libraries corresponding to explicit and implicit dependencies.
 
13
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
 
14
dnl augments the CPPFLAGS variable.
 
15
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
 
16
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 
17
AC_DEFUN([AC_LIB_LINKFLAGS],
 
18
[
 
19
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
 
20
  AC_REQUIRE([AC_LIB_RPATH])
 
21
  define([Name],[translit([$1],[./-], [___])])
 
22
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
 
23
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
24
  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
 
25
    AC_LIB_LINKFLAGS_BODY([$1], [$2])
 
26
    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
 
27
    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
 
28
    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
 
29
    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
 
30
  ])
 
31
  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
 
32
  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
 
33
  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
 
34
  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
 
35
  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
 
36
  AC_SUBST([LIB]NAME)
 
37
  AC_SUBST([LTLIB]NAME)
 
38
  AC_SUBST([LIB]NAME[_PREFIX])
 
39
  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
 
40
  dnl results of this search when this library appears as a dependency.
 
41
  HAVE_LIB[]NAME=yes
 
42
  undefine([Name])
 
43
  undefine([NAME])
 
44
])
 
45
 
 
46
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
 
47
dnl searches for libname and the libraries corresponding to explicit and
 
48
dnl implicit dependencies, together with the specified include files and
 
49
dnl the ability to compile and link the specified testcode. If found, it
 
50
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
 
51
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
 
52
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
 
53
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
 
54
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
 
55
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 
56
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
 
57
[
 
58
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
 
59
  AC_REQUIRE([AC_LIB_RPATH])
 
60
  define([Name],[translit([$1],[./-], [___])])
 
61
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
 
62
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
63
 
 
64
  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
 
65
  dnl accordingly.
 
66
  AC_LIB_LINKFLAGS_BODY([$1], [$2])
 
67
 
 
68
  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
 
69
  dnl because if the user has installed lib[]Name and not disabled its use
 
70
  dnl via --without-lib[]Name-prefix, he wants to use it.
 
71
  ac_save_CPPFLAGS="$CPPFLAGS"
 
72
  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
 
73
 
 
74
  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
 
75
    ac_save_LIBS="$LIBS"
 
76
    LIBS="$LIBS $LIB[]NAME"
 
77
    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
 
78
    LIBS="$ac_save_LIBS"
 
79
  ])
 
80
  if test "$ac_cv_lib[]Name" = yes; then
 
81
    HAVE_LIB[]NAME=yes
 
82
    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
 
83
    AC_MSG_CHECKING([how to link with lib[]$1])
 
84
    AC_MSG_RESULT([$LIB[]NAME])
 
85
  else
 
86
    HAVE_LIB[]NAME=no
 
87
    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
 
88
    dnl $INC[]NAME either.
 
89
    CPPFLAGS="$ac_save_CPPFLAGS"
 
90
    LIB[]NAME=
 
91
    LTLIB[]NAME=
 
92
    LIB[]NAME[]_PREFIX=
 
93
  fi
 
94
  AC_SUBST([HAVE_LIB]NAME)
 
95
  AC_SUBST([LIB]NAME)
 
96
  AC_SUBST([LTLIB]NAME)
 
97
  AC_SUBST([LIB]NAME[_PREFIX])
 
98
  undefine([Name])
 
99
  undefine([NAME])
 
100
])
 
101
 
 
102
dnl Determine the platform dependent parameters needed to use rpath:
 
103
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
 
104
dnl hardcode_direct, hardcode_minus_L.
 
105
AC_DEFUN([AC_LIB_RPATH],
 
106
[
 
107
  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
 
108
  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
 
109
  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
 
110
  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
 
111
  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
 
112
  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
 
113
  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
 
114
    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
 
115
    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
 
116
    . ./conftest.sh
 
117
    rm -f ./conftest.sh
 
118
    acl_cv_rpath=done
 
119
  ])
 
120
  wl="$acl_cv_wl"
 
121
  libext="$acl_cv_libext"
 
122
  shlibext="$acl_cv_shlibext"
 
123
  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
 
124
  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
 
125
  hardcode_direct="$acl_cv_hardcode_direct"
 
126
  hardcode_minus_L="$acl_cv_hardcode_minus_L"
 
127
  dnl Determine whether the user wants rpath handling at all.
 
128
  AC_ARG_ENABLE(rpath,
 
129
    [  --disable-rpath         do not hardcode runtime library paths],
 
130
    :, enable_rpath=yes)
 
131
])
 
132
 
 
133
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
 
134
dnl the libraries corresponding to explicit and implicit dependencies.
 
135
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
 
136
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
 
137
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 
138
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
 
139
[
 
140
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
 
141
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
 
142
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
143
  dnl Autoconf >= 2.61 supports dots in --with options.
 
144
  define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
 
145
  dnl By default, look in $includedir and $libdir.
 
146
  use_additional=yes
 
147
  AC_LIB_WITH_FINAL_PREFIX([
 
148
    eval additional_includedir=\"$includedir\"
 
149
    eval additional_libdir=\"$libdir\"
 
150
  ])
 
151
  AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
 
152
[  --with-lib]N_A_M_E[-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
 
153
  --without-lib]N_A_M_E[-prefix     don't search for lib$1 in includedir and libdir],
 
154
[
 
155
    if test "X$withval" = "Xno"; then
 
156
      use_additional=no
 
157
    else
 
158
      if test "X$withval" = "X"; then
 
159
        AC_LIB_WITH_FINAL_PREFIX([
 
160
          eval additional_includedir=\"$includedir\"
 
161
          eval additional_libdir=\"$libdir\"
 
162
        ])
 
163
      else
 
164
        additional_includedir="$withval/include"
 
165
        additional_libdir="$withval/$acl_libdirstem"
 
166
      fi
 
167
    fi
 
168
])
 
169
  dnl Search the library and its dependencies in $additional_libdir and
 
170
  dnl $LDFLAGS. Using breadth-first-seach.
 
171
  LIB[]NAME=
 
172
  LTLIB[]NAME=
 
173
  INC[]NAME=
 
174
  LIB[]NAME[]_PREFIX=
 
175
  rpathdirs=
 
176
  ltrpathdirs=
 
177
  names_already_handled=
 
178
  names_next_round='$1 $2'
 
179
  while test -n "$names_next_round"; do
 
180
    names_this_round="$names_next_round"
 
181
    names_next_round=
 
182
    for name in $names_this_round; do
 
183
      already_handled=
 
184
      for n in $names_already_handled; do
 
185
        if test "$n" = "$name"; then
 
186
          already_handled=yes
 
187
          break
 
188
        fi
 
189
      done
 
190
      if test -z "$already_handled"; then
 
191
        names_already_handled="$names_already_handled $name"
 
192
        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
 
193
        dnl or AC_LIB_HAVE_LINKFLAGS call.
 
194
        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
 
195
        eval value=\"\$HAVE_LIB$uppername\"
 
196
        if test -n "$value"; then
 
197
          if test "$value" = yes; then
 
198
            eval value=\"\$LIB$uppername\"
 
199
            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
 
200
            eval value=\"\$LTLIB$uppername\"
 
201
            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
 
202
          else
 
203
            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
 
204
            dnl that this library doesn't exist. So just drop it.
 
205
            :
 
206
          fi
 
207
        else
 
208
          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
 
209
          dnl and the already constructed $LIBNAME/$LTLIBNAME.
 
210
          found_dir=
 
211
          found_la=
 
212
          found_so=
 
213
          found_a=
 
214
          if test $use_additional = yes; then
 
215
            if test -n "$shlibext" \
 
216
               && { test -f "$additional_libdir/lib$name.$shlibext" \
 
217
                    || { test "$shlibext" = dll \
 
218
                         && test -f "$additional_libdir/lib$name.dll.a"; }; }; then
 
219
              found_dir="$additional_libdir"
 
220
              if test -f "$additional_libdir/lib$name.$shlibext"; then
 
221
                found_so="$additional_libdir/lib$name.$shlibext"
 
222
              else
 
223
                found_so="$additional_libdir/lib$name.dll.a"
 
224
              fi
 
225
              if test -f "$additional_libdir/lib$name.la"; then
 
226
                found_la="$additional_libdir/lib$name.la"
 
227
              fi
 
228
            else
 
229
              if test -f "$additional_libdir/lib$name.$libext"; then
 
230
                found_dir="$additional_libdir"
 
231
                found_a="$additional_libdir/lib$name.$libext"
 
232
                if test -f "$additional_libdir/lib$name.la"; then
 
233
                  found_la="$additional_libdir/lib$name.la"
 
234
                fi
 
235
              fi
 
236
            fi
 
237
          fi
 
238
          if test "X$found_dir" = "X"; then
 
239
            for x in $LDFLAGS $LTLIB[]NAME; do
 
240
              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
241
              case "$x" in
 
242
                -L*)
 
243
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
 
244
                  if test -n "$shlibext" \
 
245
                     && { test -f "$dir/lib$name.$shlibext" \
 
246
                          || { test "$shlibext" = dll \
 
247
                               && test -f "$dir/lib$name.dll.a"; }; }; then
 
248
                    found_dir="$dir"
 
249
                    if test -f "$dir/lib$name.$shlibext"; then
 
250
                      found_so="$dir/lib$name.$shlibext"
 
251
                    else
 
252
                      found_so="$dir/lib$name.dll.a"
 
253
                    fi
 
254
                    if test -f "$dir/lib$name.la"; then
 
255
                      found_la="$dir/lib$name.la"
 
256
                    fi
 
257
                  else
 
258
                    if test -f "$dir/lib$name.$libext"; then
 
259
                      found_dir="$dir"
 
260
                      found_a="$dir/lib$name.$libext"
 
261
                      if test -f "$dir/lib$name.la"; then
 
262
                        found_la="$dir/lib$name.la"
 
263
                      fi
 
264
                    fi
 
265
                  fi
 
266
                  ;;
 
267
              esac
 
268
              if test "X$found_dir" != "X"; then
 
269
                break
 
270
              fi
 
271
            done
 
272
          fi
 
273
          if test "X$found_dir" != "X"; then
 
274
            dnl Found the library.
 
275
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
 
276
            if test "X$found_so" != "X"; then
 
277
              dnl Linking with a shared library. We attempt to hardcode its
 
278
              dnl directory into the executable's runpath, unless it's the
 
279
              dnl standard /usr/lib.
 
280
              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
 
281
                dnl No hardcoding is needed.
 
282
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
283
              else
 
284
                dnl Use an explicit option to hardcode DIR into the resulting
 
285
                dnl binary.
 
286
                dnl Potentially add DIR to ltrpathdirs.
 
287
                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
 
288
                haveit=
 
289
                for x in $ltrpathdirs; do
 
290
                  if test "X$x" = "X$found_dir"; then
 
291
                    haveit=yes
 
292
                    break
 
293
                  fi
 
294
                done
 
295
                if test -z "$haveit"; then
 
296
                  ltrpathdirs="$ltrpathdirs $found_dir"
 
297
                fi
 
298
                dnl The hardcoding into $LIBNAME is system dependent.
 
299
                if test "$hardcode_direct" = yes; then
 
300
                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
 
301
                  dnl resulting binary.
 
302
                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
303
                else
 
304
                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
 
305
                    dnl Use an explicit option to hardcode DIR into the resulting
 
306
                    dnl binary.
 
307
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
308
                    dnl Potentially add DIR to rpathdirs.
 
309
                    dnl The rpathdirs will be appended to $LIBNAME at the end.
 
310
                    haveit=
 
311
                    for x in $rpathdirs; do
 
312
                      if test "X$x" = "X$found_dir"; then
 
313
                        haveit=yes
 
314
                        break
 
315
                      fi
 
316
                    done
 
317
                    if test -z "$haveit"; then
 
318
                      rpathdirs="$rpathdirs $found_dir"
 
319
                    fi
 
320
                  else
 
321
                    dnl Rely on "-L$found_dir".
 
322
                    dnl But don't add it if it's already contained in the LDFLAGS
 
323
                    dnl or the already constructed $LIBNAME
 
324
                    haveit=
 
325
                    for x in $LDFLAGS $LIB[]NAME; do
 
326
                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
327
                      if test "X$x" = "X-L$found_dir"; then
 
328
                        haveit=yes
 
329
                        break
 
330
                      fi
 
331
                    done
 
332
                    if test -z "$haveit"; then
 
333
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
 
334
                    fi
 
335
                    if test "$hardcode_minus_L" != no; then
 
336
                      dnl FIXME: Not sure whether we should use
 
337
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
 
338
                      dnl here.
 
339
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
340
                    else
 
341
                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
 
342
                      dnl here, because this doesn't fit in flags passed to the
 
343
                      dnl compiler. So give up. No hardcoding. This affects only
 
344
                      dnl very old systems.
 
345
                      dnl FIXME: Not sure whether we should use
 
346
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
 
347
                      dnl here.
 
348
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
 
349
                    fi
 
350
                  fi
 
351
                fi
 
352
              fi
 
353
            else
 
354
              if test "X$found_a" != "X"; then
 
355
                dnl Linking with a static library.
 
356
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
 
357
              else
 
358
                dnl We shouldn't come here, but anyway it's good to have a
 
359
                dnl fallback.
 
360
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
 
361
              fi
 
362
            fi
 
363
            dnl Assume the include files are nearby.
 
364
            additional_includedir=
 
365
            case "$found_dir" in
 
366
              */$acl_libdirstem | */$acl_libdirstem/)
 
367
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
 
368
                LIB[]NAME[]_PREFIX="$basedir"
 
369
                additional_includedir="$basedir/include"
 
370
                ;;
 
371
            esac
 
372
            if test "X$additional_includedir" != "X"; then
 
373
              dnl Potentially add $additional_includedir to $INCNAME.
 
374
              dnl But don't add it
 
375
              dnl   1. if it's the standard /usr/include,
 
376
              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
 
377
              dnl   3. if it's already present in $CPPFLAGS or the already
 
378
              dnl      constructed $INCNAME,
 
379
              dnl   4. if it doesn't exist as a directory.
 
380
              if test "X$additional_includedir" != "X/usr/include"; then
 
381
                haveit=
 
382
                if test "X$additional_includedir" = "X/usr/local/include"; then
 
383
                  if test -n "$GCC"; then
 
384
                    case $host_os in
 
385
                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
386
                    esac
 
387
                  fi
 
388
                fi
 
389
                if test -z "$haveit"; then
 
390
                  for x in $CPPFLAGS $INC[]NAME; do
 
391
                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
392
                    if test "X$x" = "X-I$additional_includedir"; then
 
393
                      haveit=yes
 
394
                      break
 
395
                    fi
 
396
                  done
 
397
                  if test -z "$haveit"; then
 
398
                    if test -d "$additional_includedir"; then
 
399
                      dnl Really add $additional_includedir to $INCNAME.
 
400
                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
 
401
                    fi
 
402
                  fi
 
403
                fi
 
404
              fi
 
405
            fi
 
406
            dnl Look for dependencies.
 
407
            if test -n "$found_la"; then
 
408
              dnl Read the .la file. It defines the variables
 
409
              dnl dlname, library_names, old_library, dependency_libs, current,
 
410
              dnl age, revision, installed, dlopen, dlpreopen, libdir.
 
411
              save_libdir="$libdir"
 
412
              case "$found_la" in
 
413
                */* | *\\*) . "$found_la" ;;
 
414
                *) . "./$found_la" ;;
 
415
              esac
 
416
              libdir="$save_libdir"
 
417
              dnl We use only dependency_libs.
 
418
              for dep in $dependency_libs; do
 
419
                case "$dep" in
 
420
                  -L*)
 
421
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
 
422
                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
 
423
                    dnl But don't add it
 
424
                    dnl   1. if it's the standard /usr/lib,
 
425
                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
 
426
                    dnl   3. if it's already present in $LDFLAGS or the already
 
427
                    dnl      constructed $LIBNAME,
 
428
                    dnl   4. if it doesn't exist as a directory.
 
429
                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
 
430
                      haveit=
 
431
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
 
432
                        if test -n "$GCC"; then
 
433
                          case $host_os in
 
434
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
435
                          esac
 
436
                        fi
 
437
                      fi
 
438
                      if test -z "$haveit"; then
 
439
                        haveit=
 
440
                        for x in $LDFLAGS $LIB[]NAME; do
 
441
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
442
                          if test "X$x" = "X-L$additional_libdir"; then
 
443
                            haveit=yes
 
444
                            break
 
445
                          fi
 
446
                        done
 
447
                        if test -z "$haveit"; then
 
448
                          if test -d "$additional_libdir"; then
 
449
                            dnl Really add $additional_libdir to $LIBNAME.
 
450
                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
 
451
                          fi
 
452
                        fi
 
453
                        haveit=
 
454
                        for x in $LDFLAGS $LTLIB[]NAME; do
 
455
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
456
                          if test "X$x" = "X-L$additional_libdir"; then
 
457
                            haveit=yes
 
458
                            break
 
459
                          fi
 
460
                        done
 
461
                        if test -z "$haveit"; then
 
462
                          if test -d "$additional_libdir"; then
 
463
                            dnl Really add $additional_libdir to $LTLIBNAME.
 
464
                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
 
465
                          fi
 
466
                        fi
 
467
                      fi
 
468
                    fi
 
469
                    ;;
 
470
                  -R*)
 
471
                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
 
472
                    if test "$enable_rpath" != no; then
 
473
                      dnl Potentially add DIR to rpathdirs.
 
474
                      dnl The rpathdirs will be appended to $LIBNAME at the end.
 
475
                      haveit=
 
476
                      for x in $rpathdirs; do
 
477
                        if test "X$x" = "X$dir"; then
 
478
                          haveit=yes
 
479
                          break
 
480
                        fi
 
481
                      done
 
482
                      if test -z "$haveit"; then
 
483
                        rpathdirs="$rpathdirs $dir"
 
484
                      fi
 
485
                      dnl Potentially add DIR to ltrpathdirs.
 
486
                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
 
487
                      haveit=
 
488
                      for x in $ltrpathdirs; do
 
489
                        if test "X$x" = "X$dir"; then
 
490
                          haveit=yes
 
491
                          break
 
492
                        fi
 
493
                      done
 
494
                      if test -z "$haveit"; then
 
495
                        ltrpathdirs="$ltrpathdirs $dir"
 
496
                      fi
 
497
                    fi
 
498
                    ;;
 
499
                  -l*)
 
500
                    dnl Handle this in the next round.
 
501
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
 
502
                    ;;
 
503
                  *.la)
 
504
                    dnl Handle this in the next round. Throw away the .la's
 
505
                    dnl directory; it is already contained in a preceding -L
 
506
                    dnl option.
 
507
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
 
508
                    ;;
 
509
                  *)
 
510
                    dnl Most likely an immediate library name.
 
511
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
 
512
                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
 
513
                    ;;
 
514
                esac
 
515
              done
 
516
            fi
 
517
          else
 
518
            dnl Didn't find the library; assume it is in the system directories
 
519
            dnl known to the linker and runtime loader. (All the system
 
520
            dnl directories known to the linker should also be known to the
 
521
            dnl runtime loader, otherwise the system is severely misconfigured.)
 
522
            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
 
523
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
 
524
          fi
 
525
        fi
 
526
      fi
 
527
    done
 
528
  done
 
529
  if test "X$rpathdirs" != "X"; then
 
530
    if test -n "$hardcode_libdir_separator"; then
 
531
      dnl Weird platform: only the last -rpath option counts, the user must
 
532
      dnl pass all path elements in one option. We can arrange that for a
 
533
      dnl single library, but not when more than one $LIBNAMEs are used.
 
534
      alldirs=
 
535
      for found_dir in $rpathdirs; do
 
536
        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
 
537
      done
 
538
      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
 
539
      acl_save_libdir="$libdir"
 
540
      libdir="$alldirs"
 
541
      eval flag=\"$hardcode_libdir_flag_spec\"
 
542
      libdir="$acl_save_libdir"
 
543
      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
 
544
    else
 
545
      dnl The -rpath options are cumulative.
 
546
      for found_dir in $rpathdirs; do
 
547
        acl_save_libdir="$libdir"
 
548
        libdir="$found_dir"
 
549
        eval flag=\"$hardcode_libdir_flag_spec\"
 
550
        libdir="$acl_save_libdir"
 
551
        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
 
552
      done
 
553
    fi
 
554
  fi
 
555
  if test "X$ltrpathdirs" != "X"; then
 
556
    dnl When using libtool, the option that works for both libraries and
 
557
    dnl executables is -R. The -R options are cumulative.
 
558
    for found_dir in $ltrpathdirs; do
 
559
      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
 
560
    done
 
561
  fi
 
562
])
 
563
 
 
564
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
 
565
dnl unless already present in VAR.
 
566
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
 
567
dnl contains two or three consecutive elements that belong together.
 
568
AC_DEFUN([AC_LIB_APPENDTOVAR],
 
569
[
 
570
  for element in [$2]; do
 
571
    haveit=
 
572
    for x in $[$1]; do
 
573
      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
574
      if test "X$x" = "X$element"; then
 
575
        haveit=yes
 
576
        break
 
577
      fi
 
578
    done
 
579
    if test -z "$haveit"; then
 
580
      [$1]="${[$1]}${[$1]:+ }$element"
 
581
    fi
 
582
  done
 
583
])
 
584
 
 
585
dnl For those cases where a variable contains several -L and -l options
 
586
dnl referring to unknown libraries and directories, this macro determines the
 
587
dnl necessary additional linker options for the runtime path.
 
588
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
 
589
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
 
590
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
 
591
dnl otherwise linking without libtool is assumed.
 
592
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
 
593
[
 
594
  AC_REQUIRE([AC_LIB_RPATH])
 
595
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
 
596
  $1=
 
597
  if test "$enable_rpath" != no; then
 
598
    if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
 
599
      dnl Use an explicit option to hardcode directories into the resulting
 
600
      dnl binary.
 
601
      rpathdirs=
 
602
      next=
 
603
      for opt in $2; do
 
604
        if test -n "$next"; then
 
605
          dir="$next"
 
606
          dnl No need to hardcode the standard /usr/lib.
 
607
          if test "X$dir" != "X/usr/$acl_libdirstem"; then
 
608
            rpathdirs="$rpathdirs $dir"
 
609
          fi
 
610
          next=
 
611
        else
 
612
          case $opt in
 
613
            -L) next=yes ;;
 
614
            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
 
615
                 dnl No need to hardcode the standard /usr/lib.
 
616
                 if test "X$dir" != "X/usr/$acl_libdirstem"; then
 
617
                   rpathdirs="$rpathdirs $dir"
 
618
                 fi
 
619
                 next= ;;
 
620
            *) next= ;;
 
621
          esac
 
622
        fi
 
623
      done
 
624
      if test "X$rpathdirs" != "X"; then
 
625
        if test -n ""$3""; then
 
626
          dnl libtool is used for linking. Use -R options.
 
627
          for dir in $rpathdirs; do
 
628
            $1="${$1}${$1:+ }-R$dir"
 
629
          done
 
630
        else
 
631
          dnl The linker is used for linking directly.
 
632
          if test -n "$hardcode_libdir_separator"; then
 
633
            dnl Weird platform: only the last -rpath option counts, the user
 
634
            dnl must pass all path elements in one option.
 
635
            alldirs=
 
636
            for dir in $rpathdirs; do
 
637
              alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir"
 
638
            done
 
639
            acl_save_libdir="$libdir"
 
640
            libdir="$alldirs"
 
641
            eval flag=\"$hardcode_libdir_flag_spec\"
 
642
            libdir="$acl_save_libdir"
 
643
            $1="$flag"
 
644
          else
 
645
            dnl The -rpath options are cumulative.
 
646
            for dir in $rpathdirs; do
 
647
              acl_save_libdir="$libdir"
 
648
              libdir="$dir"
 
649
              eval flag=\"$hardcode_libdir_flag_spec\"
 
650
              libdir="$acl_save_libdir"
 
651
              $1="${$1}${$1:+ }$flag"
 
652
            done
 
653
          fi
 
654
        fi
 
655
      fi
 
656
    fi
 
657
  fi
 
658
  AC_SUBST([$1])
 
659
])