~ubuntu-branches/ubuntu/oneiric/cryptsetup/oneiric

« back to all changes in this revision

Viewing changes to m4/lib-link.m4

  • Committer: Bazaar Package Importer
  • Author(s): Scott James Remnant, Steve Langasek, Scott James Remnant
  • Date: 2009-10-14 04:52:16 UTC
  • Revision ID: james.westby@ubuntu.com-20091014045216-yej34imeg7sh3ljd
Tags: 2:1.0.6+20090405.svn49-1ubuntu6
[ Steve Langasek ]
* Move the Debian Vcs- fields aside.

[ Scott James Remnant ]
* debian/cryptdisks-enable.upstart: Don't overcompensate for my idiocy,
  cryptsetup should not need a controlling terminal, just a terminal
  is fine.  May fix LP: #439138.

Show diffs side-by-side

added added

removed removed

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