~markwright/scalestack/zeromq

« back to all changes in this revision

Viewing changes to m4/lib-link.m4

  • Committer: Eric Day
  • Date: 2010-02-21 10:36:03 UTC
  • Revision ID: eday@oddments.org-20100221103603-u0agc1fsduqhl728
Initial commit with build system and basic module loading.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# lib-link.m4 serial 18 (gettext-0.18)
 
2
dnl Copyright (C) 2001-2009 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
  pushdef([Name],[translit([$1],[./-], [___])])
 
22
  pushdef([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
  popdef([NAME])
 
43
  popdef([Name])
 
44
])
 
45
 
 
46
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [system])
 
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
  pushdef([Name],[translit([$1],[./-], [___])])
 
61
  pushdef([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], [$5])
 
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
  popdef([NAME])
 
99
  popdef([Name])
 
100
])
 
101
 
 
102
dnl Determine the platform dependent parameters needed to use rpath:
 
103
dnl   acl_libext,
 
104
dnl   acl_shlibext,
 
105
dnl   acl_hardcode_libdir_flag_spec,
 
106
dnl   acl_hardcode_libdir_separator,
 
107
dnl   acl_hardcode_direct,
 
108
dnl   acl_hardcode_minus_L.
 
109
AC_DEFUN([AC_LIB_RPATH],
 
110
[
 
111
  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
 
112
  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
 
113
  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
 
114
  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
 
115
  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
 
116
  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
 
117
  AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
 
118
    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
 
119
    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
 
120
    . ./conftest.sh
 
121
    rm -f ./conftest.sh
 
122
    acl_cv_rpath=done
 
123
  ])
 
124
  wl="$acl_cv_wl"
 
125
  acl_libext="$acl_cv_libext"
 
126
  acl_shlibext="$acl_cv_shlibext"
 
127
  acl_libname_spec="$acl_cv_libname_spec"
 
128
  acl_library_names_spec="$acl_cv_library_names_spec"
 
129
  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
 
130
  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
 
131
  acl_hardcode_direct="$acl_cv_hardcode_direct"
 
132
  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
 
133
  dnl Determine whether the user wants rpath handling at all.
 
134
  AC_ARG_ENABLE([rpath],
 
135
    [  --disable-rpath         do not hardcode runtime library paths],
 
136
    :, enable_rpath=yes)
 
137
])
 
138
 
 
139
dnl AC_LIB_FROMPACKAGE(name, package)
 
140
dnl declares that libname comes from the given package. The configure file
 
141
dnl will then not have a --with-libname-prefix option but a
 
142
dnl --with-package-prefix option. Several libraries can come from the same
 
143
dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
 
144
dnl macro call that searches for libname.
 
145
AC_DEFUN([AC_LIB_FROMPACKAGE],
 
146
[
 
147
  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
 
148
                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
149
  define([acl_frompackage_]NAME, [$2])
 
150
  popdef([NAME])
 
151
  pushdef([PACK],[$2])
 
152
  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
 
153
                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
154
  define([acl_libsinpackage_]PACKUP,
 
155
    m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
 
156
  popdef([PACKUP])
 
157
  popdef([PACK])
 
158
])
 
159
 
 
160
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies, system]) searches for
 
161
dnl libname and the libraries corresponding to explicit and implicit
 
162
dnl dependencies.
 
163
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
 
164
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
 
165
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 
166
dnl If system==system, -isystem is used instead of -I
 
167
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
 
168
[
 
169
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
 
170
  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
 
171
                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
172
  pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
 
173
  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
 
174
                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
 
175
  pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
 
176
  dnl Autoconf >= 2.61 supports dots in --with options.
 
177
  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
 
178
  dnl By default, look in $includedir and $libdir.
 
179
  use_additional=yes
 
180
  if test "x$GCC" = "xyes" -a "x$3" = "xsystem"
 
181
  then
 
182
    i_system="-isystem "
 
183
  else
 
184
    i_system="-I"
 
185
  fi
 
186
 
 
187
  AC_LIB_WITH_FINAL_PREFIX([
 
188
    eval additional_includedir=\"$includedir\"
 
189
    eval additional_libdir=\"$libdir\"
 
190
  ])
 
191
  AC_ARG_WITH(P_A_C_K[-prefix],
 
192
[[  --with-]]P_A_C_K[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
 
193
  --without-]]P_A_C_K[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
 
194
[
 
195
    if test "X$withval" = "Xno"; then
 
196
      use_additional=no
 
197
    else
 
198
      if test "X$withval" = "X"; then
 
199
        AC_LIB_WITH_FINAL_PREFIX([
 
200
          eval additional_includedir=\"$includedir\"
 
201
          eval additional_libdir=\"$libdir\"
 
202
        ])
 
203
      else
 
204
        additional_includedir="$withval/include"
 
205
        additional_libdir="$withval/$acl_libdirstem"
 
206
        if test "$acl_libdirstem2" != "$acl_libdirstem" \
 
207
           && ! test -d "$withval/$acl_libdirstem"; then
 
208
          additional_libdir="$withval/$acl_libdirstem2"
 
209
        fi
 
210
      fi
 
211
    fi
 
212
])
 
213
  dnl Search the library and its dependencies in $additional_libdir and
 
214
  dnl $LDFLAGS. Using breadth-first-seach.
 
215
  LIB[]NAME=
 
216
  LTLIB[]NAME=
 
217
  INC[]NAME=
 
218
  LIB[]NAME[]_PREFIX=
 
219
  rpathdirs=
 
220
  ltrpathdirs=
 
221
  names_already_handled=
 
222
  names_next_round='$1 $2'
 
223
  while test -n "$names_next_round"; do
 
224
    names_this_round="$names_next_round"
 
225
    names_next_round=
 
226
    for name in $names_this_round; do
 
227
      already_handled=
 
228
      for n in $names_already_handled; do
 
229
        if test "$n" = "$name"; then
 
230
          already_handled=yes
 
231
          break
 
232
        fi
 
233
      done
 
234
      if test -z "$already_handled"; then
 
235
        names_already_handled="$names_already_handled $name"
 
236
        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
 
237
        dnl or AC_LIB_HAVE_LINKFLAGS call.
 
238
        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
 
239
        eval value=\"\$HAVE_LIB$uppername\"
 
240
        if test -n "$value"; then
 
241
          if test "$value" = yes; then
 
242
            eval value=\"\$LIB$uppername\"
 
243
            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
 
244
            eval value=\"\$LTLIB$uppername\"
 
245
            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
 
246
          else
 
247
            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
 
248
            dnl that this library doesn't exist. So just drop it.
 
249
            :
 
250
          fi
 
251
        else
 
252
          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
 
253
          dnl and the already constructed $LIBNAME/$LTLIBNAME.
 
254
          found_dir=
 
255
          found_la=
 
256
          found_so=
 
257
          found_a=
 
258
          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
 
259
          if test -n "$acl_shlibext"; then
 
260
            shrext=".$acl_shlibext"             # typically: shrext=.so
 
261
          else
 
262
            shrext=
 
263
          fi
 
264
          if test $use_additional = yes; then
 
265
            dir="$additional_libdir"
 
266
            dnl The same code as in the loop below:
 
267
            dnl First look for a shared library.
 
268
            if test -n "$acl_shlibext"; then
 
269
              if test -f "$dir/$libname$shrext"; then
 
270
                found_dir="$dir"
 
271
                found_so="$dir/$libname$shrext"
 
272
              else
 
273
                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
 
274
                  ver=`(cd "$dir" && \
 
275
                        for f in "$libname$shrext".*; do echo "$f"; done \
 
276
                        | sed -e "s,^$libname$shrext\\\\.,," \
 
277
                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
 
278
                        | sed 1q ) 2>/dev/null`
 
279
                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
 
280
                    found_dir="$dir"
 
281
                    found_so="$dir/$libname$shrext.$ver"
 
282
                  fi
 
283
                else
 
284
                  eval library_names=\"$acl_library_names_spec\"
 
285
                  for f in $library_names; do
 
286
                    if test -f "$dir/$f"; then
 
287
                      found_dir="$dir"
 
288
                      found_so="$dir/$f"
 
289
                      break
 
290
                    fi
 
291
                  done
 
292
                fi
 
293
              fi
 
294
            fi
 
295
            dnl Then look for a static library.
 
296
            if test "X$found_dir" = "X"; then
 
297
              if test -f "$dir/$libname.$acl_libext"; then
 
298
                found_dir="$dir"
 
299
                found_a="$dir/$libname.$acl_libext"
 
300
              fi
 
301
            fi
 
302
            if test "X$found_dir" != "X"; then
 
303
              if test -f "$dir/$libname.la"; then
 
304
                found_la="$dir/$libname.la"
 
305
              fi
 
306
            fi
 
307
          fi
 
308
          if test "X$found_dir" = "X"; then
 
309
            for x in $LDFLAGS $LTLIB[]NAME; do
 
310
              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
311
              case "$x" in
 
312
                -L*)
 
313
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
 
314
                  dnl First look for a shared library.
 
315
                  if test -n "$acl_shlibext"; then
 
316
                    if test -f "$dir/$libname$shrext"; then
 
317
                      found_dir="$dir"
 
318
                      found_so="$dir/$libname$shrext"
 
319
                    else
 
320
                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
 
321
                        ver=`(cd "$dir" && \
 
322
                              for f in "$libname$shrext".*; do echo "$f"; done \
 
323
                              | sed -e "s,^$libname$shrext\\\\.,," \
 
324
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
 
325
                              | sed 1q ) 2>/dev/null`
 
326
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
 
327
                          found_dir="$dir"
 
328
                          found_so="$dir/$libname$shrext.$ver"
 
329
                        fi
 
330
                      else
 
331
                        eval library_names=\"$acl_library_names_spec\"
 
332
                        for f in $library_names; do
 
333
                          if test -f "$dir/$f"; then
 
334
                            found_dir="$dir"
 
335
                            found_so="$dir/$f"
 
336
                            break
 
337
                          fi
 
338
                        done
 
339
                      fi
 
340
                    fi
 
341
                  fi
 
342
                  dnl Then look for a static library.
 
343
                  if test "X$found_dir" = "X"; then
 
344
                    if test -f "$dir/$libname.$acl_libext"; then
 
345
                      found_dir="$dir"
 
346
                      found_a="$dir/$libname.$acl_libext"
 
347
                    fi
 
348
                  fi
 
349
                  if test "X$found_dir" != "X"; then
 
350
                    if test -f "$dir/$libname.la"; then
 
351
                      found_la="$dir/$libname.la"
 
352
                    fi
 
353
                  fi
 
354
                  ;;
 
355
              esac
 
356
              if test "X$found_dir" != "X"; then
 
357
                break
 
358
              fi
 
359
            done
 
360
          fi
 
361
          if test "X$found_dir" != "X"; then
 
362
            dnl Found the library.
 
363
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
 
364
            if test "X$found_so" != "X"; then
 
365
              dnl Linking with a shared library. We attempt to hardcode its
 
366
              dnl directory into the executable's runpath, unless it's the
 
367
              dnl standard /usr/lib.
 
368
              if test "$enable_rpath" = no \
 
369
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
 
370
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
 
371
                dnl No hardcoding is needed.
 
372
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
373
              else
 
374
                dnl Use an explicit option to hardcode DIR into the resulting
 
375
                dnl binary.
 
376
                dnl Potentially add DIR to ltrpathdirs.
 
377
                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
 
378
                haveit=
 
379
                for x in $ltrpathdirs; do
 
380
                  if test "X$x" = "X$found_dir"; then
 
381
                    haveit=yes
 
382
                    break
 
383
                  fi
 
384
                done
 
385
                if test -z "$haveit"; then
 
386
                  ltrpathdirs="$ltrpathdirs $found_dir"
 
387
                fi
 
388
                dnl The hardcoding into $LIBNAME is system dependent.
 
389
                if test "$acl_hardcode_direct" = yes; then
 
390
                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
 
391
                  dnl resulting binary.
 
392
                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
393
                else
 
394
                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
 
395
                    dnl Use an explicit option to hardcode DIR into the resulting
 
396
                    dnl binary.
 
397
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
398
                    dnl Potentially add DIR to rpathdirs.
 
399
                    dnl The rpathdirs will be appended to $LIBNAME at the end.
 
400
                    haveit=
 
401
                    for x in $rpathdirs; do
 
402
                      if test "X$x" = "X$found_dir"; then
 
403
                        haveit=yes
 
404
                        break
 
405
                      fi
 
406
                    done
 
407
                    if test -z "$haveit"; then
 
408
                      rpathdirs="$rpathdirs $found_dir"
 
409
                    fi
 
410
                  else
 
411
                    dnl Rely on "-L$found_dir".
 
412
                    dnl But don't add it if it's already contained in the LDFLAGS
 
413
                    dnl or the already constructed $LIBNAME
 
414
                    haveit=
 
415
                    for x in $LDFLAGS $LIB[]NAME; do
 
416
                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
417
                      if test "X$x" = "X-L$found_dir"; then
 
418
                        haveit=yes
 
419
                        break
 
420
                      fi
 
421
                    done
 
422
                    if test -z "$haveit"; then
 
423
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
 
424
                    fi
 
425
                    if test "$acl_hardcode_minus_L" != no; then
 
426
                      dnl FIXME: Not sure whether we should use
 
427
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
 
428
                      dnl here.
 
429
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
 
430
                    else
 
431
                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
 
432
                      dnl here, because this doesn't fit in flags passed to the
 
433
                      dnl compiler. So give up. No hardcoding. This affects only
 
434
                      dnl very old systems.
 
435
                      dnl FIXME: Not sure whether we should use
 
436
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
 
437
                      dnl here.
 
438
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
 
439
                    fi
 
440
                  fi
 
441
                fi
 
442
              fi
 
443
            else
 
444
              if test "X$found_a" != "X"; then
 
445
                dnl Linking with a static library.
 
446
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
 
447
              else
 
448
                dnl We shouldn't come here, but anyway it's good to have a
 
449
                dnl fallback.
 
450
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
 
451
              fi
 
452
            fi
 
453
            dnl Assume the include files are nearby.
 
454
            additional_includedir=
 
455
            case "$found_dir" in
 
456
              */$acl_libdirstem | */$acl_libdirstem/)
 
457
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
 
458
                if test "$name" = '$1'; then
 
459
                  LIB[]NAME[]_PREFIX="$basedir"
 
460
                fi
 
461
                additional_includedir="$basedir/include"
 
462
                ;;
 
463
              */$acl_libdirstem2 | */$acl_libdirstem2/)
 
464
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
 
465
                if test "$name" = '$1'; then
 
466
                  LIB[]NAME[]_PREFIX="$basedir"
 
467
                fi
 
468
                additional_includedir="$basedir/include"
 
469
                ;;
 
470
            esac
 
471
            if test "X$additional_includedir" != "X"; then
 
472
              dnl Potentially add $additional_includedir to $INCNAME.
 
473
              dnl But don't add it
 
474
              dnl   1. if it's the standard /usr/include,
 
475
              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
 
476
              dnl   3. if it's already present in $CPPFLAGS or the already
 
477
              dnl      constructed $INCNAME,
 
478
              dnl   4. if it doesn't exist as a directory.
 
479
              if test "X$additional_includedir" != "X/usr/include"; then
 
480
                haveit=
 
481
                if test "X$additional_includedir" = "X/usr/local/include"; then
 
482
                  if test -n "$GCC"; then
 
483
                    case $host_os in
 
484
                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
485
                    esac
 
486
                  fi
 
487
                fi
 
488
                if test -z "$haveit"; then
 
489
                  for x in $CPPFLAGS $INC[]NAME; do
 
490
                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
491
                    if test "X$x" = "X${i_system}$additional_includedir"; then
 
492
                      haveit=yes
 
493
                      break
 
494
                    fi
 
495
                  done
 
496
                  if test -z "$haveit"; then
 
497
                    if test -d "$additional_includedir"; then
 
498
                      dnl Really add $additional_includedir to $INCNAME.
 
499
                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }${i_system}$additional_includedir"
 
500
                    fi
 
501
                  fi
 
502
                fi
 
503
              fi
 
504
            fi
 
505
            dnl Look for dependencies.
 
506
            if test -n "$found_la"; then
 
507
              dnl Read the .la file. It defines the variables
 
508
              dnl dlname, library_names, old_library, dependency_libs, current,
 
509
              dnl age, revision, installed, dlopen, dlpreopen, libdir.
 
510
              save_libdir="$libdir"
 
511
              case "$found_la" in
 
512
                */* | *\\*) . "$found_la" ;;
 
513
                *) . "./$found_la" ;;
 
514
              esac
 
515
              libdir="$save_libdir"
 
516
              dnl We use only dependency_libs.
 
517
              for dep in $dependency_libs; do
 
518
                case "$dep" in
 
519
                  -L*)
 
520
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
 
521
                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
 
522
                    dnl But don't add it
 
523
                    dnl   1. if it's the standard /usr/lib,
 
524
                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
 
525
                    dnl   3. if it's already present in $LDFLAGS or the already
 
526
                    dnl      constructed $LIBNAME,
 
527
                    dnl   4. if it doesn't exist as a directory.
 
528
                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
 
529
                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
 
530
                      haveit=
 
531
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
 
532
                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
 
533
                        if test -n "$GCC"; then
 
534
                          case $host_os in
 
535
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
 
536
                          esac
 
537
                        fi
 
538
                      fi
 
539
                      if test -z "$haveit"; then
 
540
                        haveit=
 
541
                        for x in $LDFLAGS $LIB[]NAME; do
 
542
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
543
                          if test "X$x" = "X-L$additional_libdir"; then
 
544
                            haveit=yes
 
545
                            break
 
546
                          fi
 
547
                        done
 
548
                        if test -z "$haveit"; then
 
549
                          if test -d "$additional_libdir"; then
 
550
                            dnl Really add $additional_libdir to $LIBNAME.
 
551
                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
 
552
                          fi
 
553
                        fi
 
554
                        haveit=
 
555
                        for x in $LDFLAGS $LTLIB[]NAME; do
 
556
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
557
                          if test "X$x" = "X-L$additional_libdir"; then
 
558
                            haveit=yes
 
559
                            break
 
560
                          fi
 
561
                        done
 
562
                        if test -z "$haveit"; then
 
563
                          if test -d "$additional_libdir"; then
 
564
                            dnl Really add $additional_libdir to $LTLIBNAME.
 
565
                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
 
566
                          fi
 
567
                        fi
 
568
                      fi
 
569
                    fi
 
570
                    ;;
 
571
                  -R*)
 
572
                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
 
573
                    if test "$enable_rpath" != no; then
 
574
                      dnl Potentially add DIR to rpathdirs.
 
575
                      dnl The rpathdirs will be appended to $LIBNAME at the end.
 
576
                      haveit=
 
577
                      for x in $rpathdirs; do
 
578
                        if test "X$x" = "X$dir"; then
 
579
                          haveit=yes
 
580
                          break
 
581
                        fi
 
582
                      done
 
583
                      if test -z "$haveit"; then
 
584
                        rpathdirs="$rpathdirs $dir"
 
585
                      fi
 
586
                      dnl Potentially add DIR to ltrpathdirs.
 
587
                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
 
588
                      haveit=
 
589
                      for x in $ltrpathdirs; do
 
590
                        if test "X$x" = "X$dir"; then
 
591
                          haveit=yes
 
592
                          break
 
593
                        fi
 
594
                      done
 
595
                      if test -z "$haveit"; then
 
596
                        ltrpathdirs="$ltrpathdirs $dir"
 
597
                      fi
 
598
                    fi
 
599
                    ;;
 
600
                  -l*)
 
601
                    dnl Handle this in the next round.
 
602
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
 
603
                    ;;
 
604
                  *.la)
 
605
                    dnl Handle this in the next round. Throw away the .la's
 
606
                    dnl directory; it is already contained in a preceding -L
 
607
                    dnl option.
 
608
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
 
609
                    ;;
 
610
                  *)
 
611
                    dnl Most likely an immediate library name.
 
612
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
 
613
                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
 
614
                    ;;
 
615
                esac
 
616
              done
 
617
            fi
 
618
          else
 
619
            dnl Didn't find the library; assume it is in the system directories
 
620
            dnl known to the linker and runtime loader. (All the system
 
621
            dnl directories known to the linker should also be known to the
 
622
            dnl runtime loader, otherwise the system is severely misconfigured.)
 
623
            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
 
624
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
 
625
          fi
 
626
        fi
 
627
      fi
 
628
    done
 
629
  done
 
630
  if test "X$rpathdirs" != "X"; then
 
631
    if test -n "$acl_hardcode_libdir_separator"; then
 
632
      dnl Weird platform: only the last -rpath option counts, the user must
 
633
      dnl pass all path elements in one option. We can arrange that for a
 
634
      dnl single library, but not when more than one $LIBNAMEs are used.
 
635
      alldirs=
 
636
      for found_dir in $rpathdirs; do
 
637
        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
 
638
      done
 
639
      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
 
640
      acl_save_libdir="$libdir"
 
641
      libdir="$alldirs"
 
642
      eval flag=\"$acl_hardcode_libdir_flag_spec\"
 
643
      libdir="$acl_save_libdir"
 
644
      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
 
645
    else
 
646
      dnl The -rpath options are cumulative.
 
647
      for found_dir in $rpathdirs; do
 
648
        acl_save_libdir="$libdir"
 
649
        libdir="$found_dir"
 
650
        eval flag=\"$acl_hardcode_libdir_flag_spec\"
 
651
        libdir="$acl_save_libdir"
 
652
        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
 
653
      done
 
654
    fi
 
655
  fi
 
656
  if test "X$ltrpathdirs" != "X"; then
 
657
    dnl When using libtool, the option that works for both libraries and
 
658
    dnl executables is -R. The -R options are cumulative.
 
659
    for found_dir in $ltrpathdirs; do
 
660
      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
 
661
    done
 
662
  fi
 
663
  popdef([P_A_C_K])
 
664
  popdef([PACKLIBS])
 
665
  popdef([PACKUP])
 
666
  popdef([PACK])
 
667
  popdef([NAME])
 
668
])
 
669
 
 
670
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
 
671
dnl unless already present in VAR.
 
672
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
 
673
dnl contains two or three consecutive elements that belong together.
 
674
AC_DEFUN([AC_LIB_APPENDTOVAR],
 
675
[
 
676
  for element in [$2]; do
 
677
    haveit=
 
678
    for x in $[$1]; do
 
679
      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
 
680
      if test "X$x" = "X$element"; then
 
681
        haveit=yes
 
682
        break
 
683
      fi
 
684
    done
 
685
    if test -z "$haveit"; then
 
686
      [$1]="${[$1]}${[$1]:+ }$element"
 
687
    fi
 
688
  done
 
689
])
 
690
 
 
691
dnl For those cases where a variable contains several -L and -l options
 
692
dnl referring to unknown libraries and directories, this macro determines the
 
693
dnl necessary additional linker options for the runtime path.
 
694
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
 
695
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
 
696
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
 
697
dnl otherwise linking without libtool is assumed.
 
698
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
 
699
[
 
700
  AC_REQUIRE([AC_LIB_RPATH])
 
701
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
 
702
  $1=
 
703
  if test "$enable_rpath" != no; then
 
704
    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
 
705
      dnl Use an explicit option to hardcode directories into the resulting
 
706
      dnl binary.
 
707
      rpathdirs=
 
708
      next=
 
709
      for opt in $2; do
 
710
        if test -n "$next"; then
 
711
          dir="$next"
 
712
          dnl No need to hardcode the standard /usr/lib.
 
713
          if test "X$dir" != "X/usr/$acl_libdirstem" \
 
714
             && test "X$dir" != "X/usr/$acl_libdirstem2"; then
 
715
            rpathdirs="$rpathdirs $dir"
 
716
          fi
 
717
          next=
 
718
        else
 
719
          case $opt in
 
720
            -L) next=yes ;;
 
721
            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
 
722
                 dnl No need to hardcode the standard /usr/lib.
 
723
                 if test "X$dir" != "X/usr/$acl_libdirstem" \
 
724
                    && test "X$dir" != "X/usr/$acl_libdirstem2"; then
 
725
                   rpathdirs="$rpathdirs $dir"
 
726
                 fi
 
727
                 next= ;;
 
728
            *) next= ;;
 
729
          esac
 
730
        fi
 
731
      done
 
732
      if test "X$rpathdirs" != "X"; then
 
733
        if test -n ""$3""; then
 
734
          dnl libtool is used for linking. Use -R options.
 
735
          for dir in $rpathdirs; do
 
736
            $1="${$1}${$1:+ }-R$dir"
 
737
          done
 
738
        else
 
739
          dnl The linker is used for linking directly.
 
740
          if test -n "$acl_hardcode_libdir_separator"; then
 
741
            dnl Weird platform: only the last -rpath option counts, the user
 
742
            dnl must pass all path elements in one option.
 
743
            alldirs=
 
744
            for dir in $rpathdirs; do
 
745
              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
 
746
            done
 
747
            acl_save_libdir="$libdir"
 
748
            libdir="$alldirs"
 
749
            eval flag=\"$acl_hardcode_libdir_flag_spec\"
 
750
            libdir="$acl_save_libdir"
 
751
            $1="$flag"
 
752
          else
 
753
            dnl The -rpath options are cumulative.
 
754
            for dir in $rpathdirs; do
 
755
              acl_save_libdir="$libdir"
 
756
              libdir="$dir"
 
757
              eval flag=\"$acl_hardcode_libdir_flag_spec\"
 
758
              libdir="$acl_save_libdir"
 
759
              $1="${$1}${$1:+ }$flag"
 
760
            done
 
761
          fi
 
762
        fi
 
763
      fi
 
764
    fi
 
765
  fi
 
766
  AC_SUBST([$1])
 
767
])