~drizzle-trunk/drizzle/development

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