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