(set_image_of_range_1): In no-TRANSLATE case,
[gnulib.git] / m4 / lib-link.m4
1 # lib-link.m4 serial 2 (gettext-0.11.2)
2 dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
3 dnl This file is free software, distributed under the terms of the GNU
4 dnl General Public License.  As a special exception to the GNU General
5 dnl Public License, this file may be distributed as part of a program
6 dnl that contains a configuration script generated by Autoconf, under
7 dnl the same distribution terms as the rest of that program.
8
9 dnl From Bruno Haible.
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 dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
97 AC_DEFUN([AC_LIB_RPATH],
98 [
99   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
100   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
101   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
102   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
103   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
104     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
105     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
106     . ./conftest.sh
107     rm -f ./conftest.sh
108     acl_cv_rpath=done
109   ])
110   wl="$acl_cv_wl"
111   libext="$acl_cv_libext"
112   shlibext="$acl_cv_shlibext"
113   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
114   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
115   hardcode_direct="$acl_cv_hardcode_direct"
116   hardcode_minus_L="$acl_cv_hardcode_minus_L"
117   sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
118   sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
119 ])
120
121 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
122 dnl the libraries corresponding to explicit and implicit dependencies.
123 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
124 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
125 [
126   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
127                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
128   dnl By default, look in $includedir and $libdir.
129   use_additional=yes
130   AC_LIB_WITH_FINAL_PREFIX([
131     eval additional_includedir=\"$includedir\"
132     eval additional_libdir=\"$libdir\"
133   ])
134   AC_ARG_WITH([lib$1-prefix],
135 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
136   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
137 [
138     if test "X$withval" = "Xno"; then
139       use_additional=no
140     else
141       if test "X$withval" = "X"; then
142         AC_LIB_WITH_FINAL_PREFIX([
143           eval additional_includedir=\"$includedir\"
144           eval additional_libdir=\"$libdir\"
145         ])
146       else
147         additional_includedir="$withval/include"
148         additional_libdir="$withval/lib"
149       fi
150     fi
151 ])
152   dnl Search the library and its dependencies in $additional_libdir and
153   dnl $LDFLAGS. Using breadth-first-seach.
154   LIB[]NAME=
155   LTLIB[]NAME=
156   INC[]NAME=
157   rpathdirs=
158   ltrpathdirs=
159   names_already_handled=
160   names_next_round='$1 $2'
161   while test -n "$names_next_round"; do
162     names_this_round="$names_next_round"
163     names_next_round=
164     for name in $names_this_round; do
165       already_handled=
166       for n in $names_already_handled; do
167         if test "$n" = "$name"; then
168           already_handled=yes
169           break
170         fi
171       done
172       if test -z "$already_handled"; then
173         names_already_handled="$names_already_handled $name"
174         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
175         dnl or AC_LIB_HAVE_LINKFLAGS call.
176         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
177         eval value=\"\$HAVE_LIB$uppername\"
178         if test -n "$value"; then
179           if test "$value" = yes; then
180             eval value=\"\$LIB$uppername\"
181             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
182             eval value=\"\$LTLIB$uppername\"
183             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
184           else
185             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
186             dnl that this library doesn't exist. So just drop it.
187             :
188           fi
189         else
190           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
191           dnl and the already constructed $LIBNAME/$LTLIBNAME.
192           found_dir=
193           found_la=
194           found_so=
195           found_a=
196           if test $use_additional = yes; then
197             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
198               found_dir="$additional_libdir"
199               found_so="$additional_libdir/lib$name.$shlibext"
200               if test -f "$additional_libdir/lib$name.la"; then
201                 found_la="$additional_libdir/lib$name.la"
202               fi
203             else
204               if test -f "$additional_libdir/lib$name.$libext"; then
205                 found_dir="$additional_libdir"
206                 found_a="$additional_libdir/lib$name.$libext"
207                 if test -f "$additional_libdir/lib$name.la"; then
208                   found_la="$additional_libdir/lib$name.la"
209                 fi
210               fi
211             fi
212           fi
213           if test "X$found_dir" = "X"; then
214             for x in $LDFLAGS $LTLIB[]NAME; do
215               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
216               case "$x" in
217                 -L*)
218                   dir=`echo "X$x" | sed -e 's/^X-L//'`
219                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
220                     found_dir="$dir"
221                     found_so="$dir/lib$name.$shlibext"
222                     if test -f "$dir/lib$name.la"; then
223                       found_la="$dir/lib$name.la"
224                     fi
225                   else
226                     if test -f "$dir/lib$name.$libext"; then
227                       found_dir="$dir"
228                       found_a="$dir/lib$name.$libext"
229                       if test -f "$dir/lib$name.la"; then
230                         found_la="$dir/lib$name.la"
231                       fi
232                     fi
233                   fi
234                   ;;
235               esac
236               if test "X$found_dir" != "X"; then
237                 break
238               fi
239             done
240           fi
241           if test "X$found_dir" != "X"; then
242             dnl Found the library.
243             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
244             if test "X$found_so" != "X"; then
245               dnl Linking with a shared library. We attempt to hardcode its
246               dnl directory into the executable's runpath, unless it's the
247               dnl standard /usr/lib.
248               if test "X$found_dir" = "X/usr/lib"; then
249                 dnl No hardcoding is needed.
250                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
251               else
252                 dnl Use an explicit option to hardcode DIR into the resulting
253                 dnl binary.
254                 dnl Potentially add DIR to ltrpathdirs.
255                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
256                 haveit=
257                 for x in $ltrpathdirs; do
258                   if test "X$x" = "X$found_dir"; then
259                     haveit=yes
260                     break
261                   fi
262                 done
263                 if test -z "$haveit"; then
264                   ltrpathdirs="$ltrpathdirs $found_dir"
265                 fi
266                 dnl The hardcoding into $LIBNAME is system dependent.
267                 if test "$hardcode_direct" = yes; then
268                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
269                   dnl resulting binary.
270                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
271                 else
272                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
273                     dnl Use an explicit option to hardcode DIR into the resulting
274                     dnl binary.
275                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
276                     dnl Potentially add DIR to rpathdirs.
277                     dnl The rpathdirs will be appended to $LIBNAME at the end.
278                     haveit=
279                     for x in $rpathdirs; do
280                       if test "X$x" = "X$found_dir"; then
281                         haveit=yes
282                         break
283                       fi
284                     done
285                     if test -z "$haveit"; then
286                       rpathdirs="$rpathdirs $found_dir"
287                     fi
288                   else
289                     dnl Rely on "-L$found_dir".
290                     dnl But don't add it if it's already contained in the LDFLAGS
291                     dnl or the already constructed $LIBNAME
292                     haveit=
293                     for x in $LDFLAGS $LIB[]NAME; do
294                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
295                       if test "X$x" = "X-L$found_dir"; then
296                         haveit=yes
297                         break
298                       fi
299                     done
300                     if test -z "$haveit"; then
301                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
302                     fi
303                     if test "$hardcode_minus_L" != no; then
304                       dnl FIXME: Not sure whether we should use
305                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
306                       dnl here.
307                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
308                     else
309                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
310                       dnl here, because this doesn't fit in flags passed to the
311                       dnl compiler. So give up. No hardcoding. This affects only
312                       dnl very old systems.
313                       dnl FIXME: Not sure whether we should use
314                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
315                       dnl here.
316                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
317                     fi
318                   fi
319                 fi
320               fi
321             else
322               if test "X$found_a" != "X"; then
323                 dnl Linking with a static library.
324                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
325               else
326                 dnl We shouldn't come here, but anyway it's good to have a
327                 dnl fallback.
328                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
329               fi
330             fi
331             dnl Assume the include files are nearby.
332             additional_includedir=
333             case "$found_dir" in
334               */lib | */lib/)
335                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
336                 additional_includedir="$basedir/include"
337                 ;;
338             esac
339             if test "X$additional_includedir" != "X"; then
340               dnl Potentially add $additional_includedir to $INCNAME.
341               dnl But don't add it
342               dnl   1. if it's the standard /usr/include,
343               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
344               dnl   3. if it's already present in $CPPFLAGS or the already
345               dnl      constructed $INCNAME,
346               dnl   4. if it doesn't exist as a directory.
347               if test "X$additional_includedir" != "X/usr/include"; then
348                 haveit=
349                 if test "X$additional_includedir" = "X/usr/local/include"; then
350                   if test -n "$GCC"; then
351                     case $host_os in
352                       linux*) haveit=yes;;
353                     esac
354                   fi
355                 fi
356                 if test -z "$haveit"; then
357                   for x in $CPPFLAGS $INC[]NAME; do
358                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
359                     if test "X$x" = "X-I$additional_includedir"; then
360                       haveit=yes
361                       break
362                     fi
363                   done
364                   if test -z "$haveit"; then
365                     if test -d "$additional_includedir"; then
366                       dnl Really add $additional_includedir to $INCNAME.
367                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
368                     fi
369                   fi
370                 fi
371               fi
372             fi
373             dnl Look for dependencies.
374             if test -n "$found_la"; then
375               dnl Read the .la file. It defines the variables
376               dnl dlname, library_names, old_library, dependency_libs, current,
377               dnl age, revision, installed, dlopen, dlpreopen, libdir.
378               save_libdir="$libdir"
379               case "$found_la" in
380                 */* | *\\*) . "$found_la" ;;
381                 *) . "./$found_la" ;;
382               esac
383               libdir="$save_libdir"
384               dnl We use only dependency_libs.
385               for dep in $dependency_libs; do
386                 case "$dep" in
387                   -L*)
388                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
389                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
390                     dnl But don't add it
391                     dnl   1. if it's the standard /usr/lib,
392                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
393                     dnl   3. if it's already present in $LDFLAGS or the already
394                     dnl      constructed $LIBNAME,
395                     dnl   4. if it doesn't exist as a directory.
396                     if test "X$additional_libdir" != "X/usr/lib"; then
397                       haveit=
398                       if test "X$additional_libdir" = "X/usr/local/lib"; then
399                         if test -n "$GCC"; then
400                           case $host_os in
401                             linux*) haveit=yes;;
402                           esac
403                         fi
404                       fi
405                       if test -z "$haveit"; then
406                         haveit=
407                         for x in $LDFLAGS $LIB[]NAME; do
408                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
409                           if test "X$x" = "X-L$additional_libdir"; then
410                             haveit=yes
411                             break
412                           fi
413                         done
414                         if test -z "$haveit"; then
415                           if test -d "$additional_libdir"; then
416                             dnl Really add $additional_libdir to $LIBNAME.
417                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
418                           fi
419                         fi
420                         haveit=
421                         for x in $LDFLAGS $LTLIB[]NAME; do
422                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
423                           if test "X$x" = "X-L$additional_libdir"; then
424                             haveit=yes
425                             break
426                           fi
427                         done
428                         if test -z "$haveit"; then
429                           if test -d "$additional_libdir"; then
430                             dnl Really add $additional_libdir to $LTLIBNAME.
431                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
432                           fi
433                         fi
434                       fi
435                     fi
436                     ;;
437                   -R*)
438                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
439                     dnl Potentially add DIR to rpathdirs.
440                     dnl The rpathdirs will be appended to $LIBNAME at the end.
441                     haveit=
442                     for x in $rpathdirs; do
443                       if test "X$x" = "X$dir"; then
444                         haveit=yes
445                         break
446                       fi
447                     done
448                     if test -z "$haveit"; then
449                       rpathdirs="$rpathdirs $dir"
450                     fi
451                     dnl Potentially add DIR to ltrpathdirs.
452                     dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
453                     haveit=
454                     for x in $ltrpathdirs; do
455                       if test "X$x" = "X$dir"; then
456                         haveit=yes
457                         break
458                       fi
459                     done
460                     if test -z "$haveit"; then
461                       ltrpathdirs="$ltrpathdirs $dir"
462                     fi
463                     ;;
464                   -l*)
465                     dnl Handle this in the next round.
466                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
467                     ;;
468                   *.la)
469                     dnl Handle this in the next round. Throw away the .la's
470                     dnl directory; it is already contained in a preceding -L
471                     dnl option.
472                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
473                     ;;
474                   *)
475                     dnl Most likely an immediate library name.
476                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
477                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
478                     ;;
479                 esac
480               done
481             fi
482           else
483             dnl Didn't find the library; assume it is in the system directories
484             dnl known to the linker and runtime loader. (All the system
485             dnl directories known to the linker should also be known to the
486             dnl runtime loader, otherwise the system is severely misconfigured.)
487             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
488             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
489           fi
490         fi
491       fi
492     done
493   done
494   if test "X$rpathdirs" != "X"; then
495     if test -n "$hardcode_libdir_separator"; then
496       dnl Weird platform: only the last -rpath option counts, the user must
497       dnl pass all path elements in one option. We can arrange that for a
498       dnl single library, but not when more than one $LIBNAMEs are used.
499       alldirs=
500       for found_dir in $rpathdirs; do
501         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
502       done
503       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
504       acl_save_libdir="$libdir"
505       libdir="$alldirs"
506       eval flag=\"$hardcode_libdir_flag_spec\"
507       libdir="$acl_save_libdir"
508       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
509     else
510       dnl The -rpath options are cumulative.
511       for found_dir in $rpathdirs; do
512         acl_save_libdir="$libdir"
513         libdir="$found_dir"
514         eval flag=\"$hardcode_libdir_flag_spec\"
515         libdir="$acl_save_libdir"
516         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
517       done
518     fi
519   fi
520   if test "X$ltrpathdirs" != "X"; then
521     dnl When using libtool, the option that works for both libraries and
522     dnl executables is -R. The -R options are cumulative.
523     for found_dir in $ltrpathdirs; do
524       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
525     done
526   fi
527 ])
528
529 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
530 dnl unless already present in VAR.
531 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
532 dnl contains two or three consecutive elements that belong together.
533 AC_DEFUN([AC_LIB_APPENDTOVAR],
534 [
535   for element in [$2]; do
536     haveit=
537     for x in $[$1]; do
538       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
539       if test "X$x" = "X$element"; then
540         haveit=yes
541         break
542       fi
543     done
544     if test -z "$haveit"; then
545       [$1]="${[$1]}${[$1]:+ }$element"
546     fi
547   done
548 ])