OSDN Git Service

0312861d47f3f236ede696d2715c78b2751e045d
[pf3gnuchains/gcc-fork.git] / libtool.m4
1 ## libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
2 ## Copyright 1996, 1997, 1998, 1999, 2000, 2001
3 ## Free Software Foundation, Inc.
4 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
5 ##
6 ## This program is free software; you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation; either version 2 of the License, or
9 ## (at your option) any later version.
10 ##
11 ## This program is distributed in the hope that it will be useful, but
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 ## General Public License for more details.
15 ##
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program; if not, write to the Free Software
18 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 ##
20 ## As a special exception to the GNU General Public License, if you
21 ## distribute this file as part of a program that contains a
22 ## configuration script generated by Autoconf, you may include it under
23 ## the same distribution terms that you use for the rest of that program.
24
25 # serial 46 AC_PROG_LIBTOOL
26 AC_DEFUN([AC_PROG_LIBTOOL],
27 [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
28 dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
29 dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
30   AC_PROVIDE_IFELSE([AC_PROG_CXX],
31     [AC_LIBTOOL_CXX],
32     [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
33 ])])
34
35 dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
36 dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
37 dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
38   AC_PROVIDE_IFELSE([AC_PROG_GCJ],
39     [AC_LIBTOOL_GCJ],
40     [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
41         [AC_LIBTOOL_GCJ],
42         [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
43           [AC_LIBTOOL_GCJ],
44         [ifdef([AC_PROG_GCJ],
45                [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ
46 ])])
47          ifdef([A][M_PROG_GCJ],
48                [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ
49 ])])
50          ifdef([LT_AC_PROG_GCJ],
51                [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ
52 ])])])])])])
53
54 AC_DEFUN([_AC_PROG_LIBTOOL],
55 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
56 AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
57 AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
58
59 # Save cache, so that ltconfig can load it
60 AC_CACHE_SAVE
61
62 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
63 AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
64 MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
65 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
66 AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
67 objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
68 deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
69 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
70 $libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
71 || AC_MSG_ERROR([libtool configure failed])
72
73 # Reload cache, that may have been modified by ltconfig
74 AC_CACHE_LOAD
75
76 # This can be used to rebuild libtool when needed
77 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
78
79 # Always use our own libtool.
80 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
81 AC_SUBST(LIBTOOL)dnl
82
83 # Redirect the config.log output again, so that the ltconfig log is not
84 # clobbered by the next message.
85 exec 5>>./config.log
86 ])
87
88 AC_DEFUN([AC_LIBTOOL_SETUP],
89 [AC_PREREQ(2.13)dnl
90 AC_REQUIRE([AC_ENABLE_SHARED])dnl
91 AC_REQUIRE([AC_ENABLE_STATIC])dnl
92 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
93 AC_REQUIRE([AC_CANONICAL_HOST])dnl
94 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
95 AC_REQUIRE([AC_PROG_CC])dnl
96 AC_REQUIRE([AC_PROG_LD])dnl
97 AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
98 AC_REQUIRE([AC_PROG_NM])dnl
99 AC_REQUIRE([AC_PROG_LN_S])dnl
100 AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
101 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
102 AC_REQUIRE([AC_OBJEXT])dnl
103 AC_REQUIRE([AC_EXEEXT])dnl
104 dnl
105
106 # Only perform the check for file, if the check method requires it
107 case $deplibs_check_method in
108 file_magic*)
109   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
110     AC_PATH_MAGIC
111   fi
112   ;;
113 esac
114
115 AC_CHECK_TOOL(RANLIB, ranlib, :)
116 AC_CHECK_TOOL(STRIP, strip, :)
117
118 # Check for any special flags to pass to ltconfig.
119 libtool_flags="--cache-file=$cache_file"
120 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
121 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
122 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
123 test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
124 test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
125 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
126 [libtool_flags="$libtool_flags --enable-dlopen"])
127 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
128 [libtool_flags="$libtool_flags --enable-win32-dll"])
129 AC_ARG_ENABLE(libtool-lock,
130   [  --disable-libtool-lock  avoid locking (might break parallel builds)])
131 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
132 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
133
134 AC_ARG_WITH(pic,
135   [  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
136      pic_mode="$withval", pic_mode=default)
137 test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
138 test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
139
140 # Some flags need to be propagated to the compiler or linker for good
141 # libtool support.
142 case $host in
143 *-*-irix6*)
144   # Find out which ABI we are using.
145   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
146   if AC_TRY_EVAL(ac_compile); then
147    if test "$lt_cv_prog_gnu_ld" = yes; then
148     case `/usr/bin/file conftest.$ac_objext` in
149     *32-bit*)
150       LD="${LD-ld} -melf32bsmip"
151       ;;
152     *N32*)
153       LD="${LD-ld} -melf32bmipn32"
154       ;;
155     *64-bit*)
156       LD="${LD-ld} -melf64bmip"
157       ;;
158     esac
159    else
160     case `/usr/bin/file conftest.$ac_objext` in
161     *32-bit*)
162       LD="${LD-ld} -32"
163       ;;
164     *N32*)
165       LD="${LD-ld} -n32"
166       ;;
167     *64-bit*)
168       LD="${LD-ld} -64"
169       ;;
170     esac
171    fi
172   fi
173   rm -rf conftest*
174   ;;
175
176 ia64-*-hpux*)
177   # Find out which ABI we are using.
178   echo 'int i;' > conftest.$ac_ext
179   if AC_TRY_EVAL(ac_compile); then
180     case "`/usr/bin/file conftest.o`" in
181     *ELF-32*)
182       HPUX_IA64_MODE="32"
183       ;;
184     *ELF-64*)
185       HPUX_IA64_MODE="64"
186       ;;
187     esac
188   fi
189   rm -rf conftest*
190   ;;
191
192 x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
193   # Find out which ABI we are using.
194   echo 'int i;' > conftest.$ac_ext
195   if AC_TRY_EVAL(ac_compile); then
196     case "`/usr/bin/file conftest.o`" in
197     *32-bit*)
198       case $host in
199         x86_64-*linux*)
200           LD="${LD-ld} -m elf_i386"
201           ;;
202         ppc64-*linux*|powerpc64-*linux*)
203           LD="${LD-ld} -m elf32ppclinux"
204           ;;
205         s390x-*linux*)
206           LD="${LD-ld} -m elf_s390"
207           ;;
208         sparc64-*linux*)
209           LD="${LD-ld} -m elf32_sparc"
210           ;;
211       esac
212       ;;
213     *64-bit*)
214       case $host in
215         x86_64-*linux*)
216           LD="${LD-ld} -m elf_x86_64"
217           ;;
218         ppc*-*linux*|powerpc*-*linux*)
219           LD="${LD-ld} -m elf64ppc"
220           ;;
221         s390*-*linux*)
222           LD="${LD-ld} -m elf64_s390"
223           ;;
224         sparc*-*linux*)
225           LD="${LD-ld} -m elf64_sparc"
226           ;;
227       esac
228       ;;
229     esac
230   fi
231   rm -rf conftest*
232   ;;
233
234 *-*-sco3.2v5*)
235   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
236   SAVE_CFLAGS="$CFLAGS"
237   CFLAGS="$CFLAGS -belf"
238   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
239     [AC_LANG_SAVE
240      AC_LANG_C
241      AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
242      AC_LANG_RESTORE])
243   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
244     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
245     CFLAGS="$SAVE_CFLAGS"
246   fi
247   ;;
248
249 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
250 [*-*-cygwin* | *-*-mingw* | *-*-pw32*)
251   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
252   AC_CHECK_TOOL(AS, as, false)
253   AC_CHECK_TOOL(OBJDUMP, objdump, false)
254
255   # recent cygwin and mingw systems supply a stub DllMain which the user
256   # can override, but on older systems we have to supply one
257   AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
258     [AC_TRY_LINK([],
259       [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
260       DllMain (0, 0, 0);],
261       [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
262
263   case $host/$CC in
264   *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
265     # old mingw systems require "-dll" to link a DLL, while more recent ones
266     # require "-mdll"
267     SAVE_CFLAGS="$CFLAGS"
268     CFLAGS="$CFLAGS -mdll"
269     AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
270       [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
271     CFLAGS="$SAVE_CFLAGS" ;;
272   *-*-cygwin* | *-*-pw32*)
273     # cygwin systems need to pass --dll to the linker, and not link
274     # crt.o which will require a WinMain@16 definition.
275     lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
276   esac
277   ;;
278   ])
279 esac
280 ])
281
282 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
283 AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
284
285 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
286 AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
287
288 # AC_ENABLE_SHARED - implement the --enable-shared flag
289 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
290 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
291 #   `yes'.
292 AC_DEFUN([AC_ENABLE_SHARED],
293 [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
294 AC_ARG_ENABLE(shared,
295 changequote(<<, >>)dnl
296 <<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
297 changequote([, ])dnl
298 [p=${PACKAGE-default}
299 case $enableval in
300 yes) enable_shared=yes ;;
301 no) enable_shared=no ;;
302 *)
303   enable_shared=no
304   # Look at the argument we got.  We use all the common list separators.
305   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
306   for pkg in $enableval; do
307     if test "X$pkg" = "X$p"; then
308       enable_shared=yes
309     fi
310   done
311   IFS="$ac_save_ifs"
312   ;;
313 esac],
314 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
315 ])
316
317 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
318 AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
319 AC_ENABLE_SHARED(no)])
320
321 # AC_ENABLE_STATIC - implement the --enable-static flag
322 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
323 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
324 #   `yes'.
325 AC_DEFUN([AC_ENABLE_STATIC],
326 [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
327 AC_ARG_ENABLE(static,
328 changequote(<<, >>)dnl
329 <<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
330 changequote([, ])dnl
331 [p=${PACKAGE-default}
332 case $enableval in
333 yes) enable_static=yes ;;
334 no) enable_static=no ;;
335 *)
336   enable_static=no
337   # Look at the argument we got.  We use all the common list separators.
338   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
339   for pkg in $enableval; do
340     if test "X$pkg" = "X$p"; then
341       enable_static=yes
342     fi
343   done
344   IFS="$ac_save_ifs"
345   ;;
346 esac],
347 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
348 ])
349
350 # AC_DISABLE_STATIC - set the default static flag to --disable-static
351 AC_DEFUN([AC_DISABLE_STATIC],
352 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
353 AC_ENABLE_STATIC(no)])
354
355
356 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
357 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
358 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
359 #   `yes'.
360 AC_DEFUN([AC_ENABLE_FAST_INSTALL],
361 [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
362 AC_ARG_ENABLE(fast-install,
363 changequote(<<, >>)dnl
364 <<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
365 changequote([, ])dnl
366 [p=${PACKAGE-default}
367 case $enableval in
368 yes) enable_fast_install=yes ;;
369 no) enable_fast_install=no ;;
370 *)
371   enable_fast_install=no
372   # Look at the argument we got.  We use all the common list separators.
373   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
374   for pkg in $enableval; do
375     if test "X$pkg" = "X$p"; then
376       enable_fast_install=yes
377     fi
378   done
379   IFS="$ac_save_ifs"
380   ;;
381 esac],
382 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
383 ])
384
385 # AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
386 AC_DEFUN([AC_DISABLE_FAST_INSTALL],
387 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
388 AC_ENABLE_FAST_INSTALL(no)])
389
390 # AC_LIBTOOL_PICMODE - implement the --with-pic flag
391 # Usage: AC_LIBTOOL_PICMODE[(MODE)]
392 #   Where MODE is either `yes' or `no'.  If omitted, it defaults to
393 #   `both'.
394 AC_DEFUN([AC_LIBTOOL_PICMODE],
395 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
396 pic_mode=ifelse($#,1,$1,default)])
397
398
399 # AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
400 AC_DEFUN([AC_PATH_TOOL_PREFIX],
401 [AC_MSG_CHECKING([for $1])
402 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
403 [case $MAGIC_CMD in
404   /*)
405   lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
406   ;;
407   ?:/*)
408   lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
409   ;;
410   *)
411   ac_save_MAGIC_CMD="$MAGIC_CMD"
412   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
413 dnl $ac_dummy forces splitting on constant user-supplied paths.
414 dnl POSIX.2 word splitting is done only on the output of word expansions,
415 dnl not every word.  This closes a longstanding sh security hole.
416   ac_dummy="ifelse([$2], , $PATH, [$2])"
417   for ac_dir in $ac_dummy; do
418     test -z "$ac_dir" && ac_dir=.
419     if test -f $ac_dir/$1; then
420       lt_cv_path_MAGIC_CMD="$ac_dir/$1"
421       if test -n "$file_magic_test_file"; then
422         case $deplibs_check_method in
423         "file_magic "*)
424           file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
425           MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
426           if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
427             egrep "$file_magic_regex" > /dev/null; then
428             :
429           else
430             cat <<EOF 1>&2
431
432 *** Warning: the command libtool uses to detect shared libraries,
433 *** $file_magic_cmd, produces output that libtool cannot recognize.
434 *** The result is that libtool may fail to recognize shared libraries
435 *** as such.  This will affect the creation of libtool libraries that
436 *** depend on shared libraries, but programs linked with such libtool
437 *** libraries will work regardless of this problem.  Nevertheless, you
438 *** may want to report the problem to your system manager and/or to
439 *** bug-libtool@gnu.org
440
441 EOF
442           fi ;;
443         esac
444       fi
445       break
446     fi
447   done
448   IFS="$ac_save_ifs"
449   MAGIC_CMD="$ac_save_MAGIC_CMD"
450   ;;
451 esac])
452 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
453 if test -n "$MAGIC_CMD"; then
454   AC_MSG_RESULT($MAGIC_CMD)
455 else
456   AC_MSG_RESULT(no)
457 fi
458 ])
459
460
461 # AC_PATH_MAGIC - find a file program which can recognise a shared library
462 AC_DEFUN([AC_PATH_MAGIC],
463 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
464 AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
465 if test -z "$lt_cv_path_MAGIC_CMD"; then
466   if test -n "$ac_tool_prefix"; then
467     AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
468   else
469     MAGIC_CMD=:
470   fi
471 fi
472 ])
473
474
475 # AC_PROG_LD - find the path to the GNU or non-GNU linker
476 AC_DEFUN([AC_PROG_LD],
477 [AC_ARG_WITH(gnu-ld,
478 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
479 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
480 AC_REQUIRE([AC_PROG_CC])dnl
481 AC_REQUIRE([AC_CANONICAL_HOST])dnl
482 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
483 ac_prog=ld
484 if test "$GCC" = yes; then
485   # Check if gcc -print-prog-name=ld gives a path.
486   AC_MSG_CHECKING([for ld used by GCC])
487   case $host in
488   *-*-mingw*)
489     # gcc leaves a trailing carriage return which upsets mingw
490     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
491   *)
492     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
493   esac
494   case $ac_prog in
495     # Accept absolute paths.
496     [[\\/]* | [A-Za-z]:[\\/]*)]
497       re_direlt=['/[^/][^/]*/\.\./']
498       # Canonicalize the path of ld
499       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
500       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
501         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
502       done
503       test -z "$LD" && LD="$ac_prog"
504       ;;
505   "")
506     # If it fails, then pretend we aren't using GCC.
507     ac_prog=ld
508     ;;
509   *)
510     # If it is relative, then search for the first ld in PATH.
511     with_gnu_ld=unknown
512     ;;
513   esac
514 elif test "$with_gnu_ld" = yes; then
515   AC_MSG_CHECKING([for GNU ld])
516 else
517   AC_MSG_CHECKING([for non-GNU ld])
518 fi
519 AC_CACHE_VAL(lt_cv_path_LD,
520 [if test -z "$LD"; then
521   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
522   for ac_dir in $PATH; do
523     test -z "$ac_dir" && ac_dir=.
524     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
525       lt_cv_path_LD="$ac_dir/$ac_prog"
526       # Check to see if the program is GNU ld.  I'd rather use --version,
527       # but apparently some GNU ld's only accept -v.
528       # Break only if it was the GNU/non-GNU ld that we prefer.
529       if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
530         test "$with_gnu_ld" != no && break
531       else
532         test "$with_gnu_ld" != yes && break
533       fi
534     fi
535   done
536   IFS="$ac_save_ifs"
537 else
538   lt_cv_path_LD="$LD" # Let the user override the test with a path.
539 fi])
540 LD="$lt_cv_path_LD"
541 if test -n "$LD"; then
542   AC_MSG_RESULT($LD)
543 else
544   AC_MSG_RESULT(no)
545 fi
546 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
547 AC_PROG_LD_GNU
548 ])
549
550 AC_DEFUN([AC_PROG_LD_GNU],
551 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
552 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
553 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
554   lt_cv_prog_gnu_ld=yes
555 else
556   lt_cv_prog_gnu_ld=no
557 fi])
558 with_gnu_ld=$lt_cv_prog_gnu_ld
559 ])
560
561 # AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
562 #   -- PORTME Some linkers may need a different reload flag.
563 AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
564 [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
565 [lt_cv_ld_reload_flag='-r'])
566 reload_flag=$lt_cv_ld_reload_flag
567 test -n "$reload_flag" && reload_flag=" $reload_flag"
568 ])
569
570 # AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
571 #  -- PORTME fill in with the dynamic library characteristics
572 AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
573 [AC_CACHE_CHECK([how to recognise dependant libraries],
574 lt_cv_deplibs_check_method,
575 [lt_cv_file_magic_cmd='$MAGIC_CMD'
576 lt_cv_file_magic_test_file=
577 lt_cv_deplibs_check_method='unknown'
578 # Need to set the preceding variable on all platforms that support
579 # interlibrary dependencies.
580 # 'none' -- dependencies not supported.
581 # `unknown' -- same as none, but documents that we really don't know.
582 # 'pass_all' -- all dependencies passed with no checks.
583 # 'test_compile' -- check by making test program.
584 # 'file_magic [regex]' -- check by looking for files in library path
585 # which responds to the $file_magic_cmd with a given egrep regex.
586 # If you have `file' or equivalent on your system and you're not sure
587 # whether `pass_all' will *always* work, you probably want this one.
588
589 case $host_os in
590 aix*)
591   lt_cv_deplibs_check_method=pass_all
592   ;;
593
594 beos*)
595   lt_cv_deplibs_check_method=pass_all
596   ;;
597
598 bsdi4*)
599   lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)']
600   lt_cv_file_magic_cmd='/usr/bin/file -L'
601   lt_cv_file_magic_test_file=/shlib/libc.so
602   ;;
603
604 cygwin* | mingw* |pw32*)
605   lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
606   lt_cv_file_magic_cmd='$OBJDUMP -f'
607   ;;
608
609 darwin* | rhapsody*)
610   # this will be overwritten by pass_all, but leave it in just in case
611   lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
612   lt_cv_file_magic_cmd='/usr/bin/file -L'
613   case "$host_os" in
614   rhapsody* | darwin1.[012])
615     lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
616     ;;
617   *) # Darwin 1.3 on
618     lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
619     ;;
620   esac
621   lt_cv_deplibs_check_method=pass_all
622   ;;
623
624 freebsd* )
625   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
626     case $host_cpu in
627     i*86 )
628       # Not sure whether the presence of OpenBSD here was a mistake.
629       # Let's accept both of them until this is cleared up.
630       lt_cv_deplibs_check_method=['file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library']
631       lt_cv_file_magic_cmd=/usr/bin/file
632       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
633       ;;
634     esac
635   else
636     lt_cv_deplibs_check_method=pass_all
637   fi
638   ;;
639
640 gnu*)
641   lt_cv_deplibs_check_method=pass_all
642   ;;
643
644 hpux10.20*|hpux11*)
645   case $host_cpu in
646   hppa*)
647     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
648     lt_cv_file_magic_cmd=/usr/bin/file
649     lt_cv_file_magic_test_file=/usr/lib/libc.sl
650     ;;
651   ia64*)
652     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64']
653     lt_cv_file_magic_cmd=/usr/bin/file
654     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
655     ;;
656   esac
657   ;;
658
659 irix5* | irix6*)
660   case $host_os in
661   irix5*)
662     # this will be overridden with pass_all, but let us keep it just in case
663     lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
664     ;;
665   *)
666     case $LD in
667     *-32|*"-32 ") libmagic=32-bit;;
668     *-n32|*"-n32 ") libmagic=N32;;
669     *-64|*"-64 ") libmagic=64-bit;;
670     *) libmagic=never-match;;
671     esac
672     # this will be overridden with pass_all, but let us keep it just in case
673     lt_cv_deplibs_check_method=["file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"]
674     ;;
675   esac
676   lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
677   lt_cv_deplibs_check_method=pass_all
678   ;;
679
680 # This must be Linux ELF.
681 linux-gnu*)
682   case $host_cpu in
683   alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* )
684     lt_cv_deplibs_check_method=pass_all ;;
685   *)
686     # glibc up to 2.1.1 does not perform some relocations on ARM
687     lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'] ;;
688   esac
689   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
690   ;;
691
692 netbsd*)
693   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
694     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
695   else
696     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$']
697   fi
698   ;;
699
700 newsos6)
701   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
702   lt_cv_file_magic_cmd=/usr/bin/file
703   lt_cv_file_magic_test_file=/usr/lib/libnls.so
704   ;;
705
706 osf3* | osf4* | osf5*)
707   # this will be overridden with pass_all, but let us keep it just in case
708   lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
709   lt_cv_file_magic_test_file=/shlib/libc.so
710   lt_cv_deplibs_check_method=pass_all
711   ;;
712
713 sco3.2v5*)
714   lt_cv_deplibs_check_method=pass_all
715   ;;
716
717 solaris*)
718   lt_cv_deplibs_check_method=pass_all
719   lt_cv_file_magic_test_file=/lib/libc.so
720   ;;
721
722 [sysv5uw[78]* | sysv4*uw2*)]
723   lt_cv_deplibs_check_method=pass_all
724   ;;
725
726 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
727   case $host_vendor in
728   ncr)
729     lt_cv_deplibs_check_method=pass_all
730     ;;
731   motorola)
732     lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]']
733     lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
734     ;;
735   esac
736   ;;
737 esac
738 ])
739 file_magic_cmd=$lt_cv_file_magic_cmd
740 deplibs_check_method=$lt_cv_deplibs_check_method
741 ])
742
743
744 # AC_PROG_NM - find the path to a BSD-compatible name lister
745 AC_DEFUN([AC_PROG_NM],
746 [AC_MSG_CHECKING([for BSD-compatible nm])
747 AC_CACHE_VAL(lt_cv_path_NM,
748 [if test -n "$NM"; then
749   # Let the user override the test.
750   lt_cv_path_NM="$NM"
751 else
752   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
753   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
754     test -z "$ac_dir" && ac_dir=.
755     tmp_nm=$ac_dir/${ac_tool_prefix}nm
756     if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
757       # Check to see if the nm accepts a BSD-compat flag.
758       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
759       #   nm: unknown option "B" ignored
760       # Tru64's nm complains that /dev/null is an invalid object file
761       if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
762         lt_cv_path_NM="$tmp_nm -B"
763         break
764       elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
765         lt_cv_path_NM="$tmp_nm -p"
766         break
767       else
768         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
769         continue # so that we can try to find one that supports BSD flags
770       fi
771     fi
772   done
773   IFS="$ac_save_ifs"
774   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
775 fi])
776 NM="$lt_cv_path_NM"
777 AC_MSG_RESULT([$NM])
778 ])
779
780 # AC_CHECK_LIBM - check for math library
781 AC_DEFUN([AC_CHECK_LIBM],
782 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
783 LIBM=
784 case $host in
785 *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
786   # These system don't have libm
787   # on darwin the libm is a symbolic link to libSystem.dylib
788   ;;
789 *-ncr-sysv4.3*)
790   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
791   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
792   ;;
793 *)
794   AC_CHECK_LIB(m, main, LIBM="-lm")
795   ;;
796 esac
797 ])
798
799 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
800 # the libltdl convenience library and INCLTDL to the include flags for
801 # the libltdl header and adds --enable-ltdl-convenience to the
802 # configure arguments.  Note that LIBLTDL and INCLTDL are not
803 # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If DIR is not
804 # provided, it is assumed to be `libltdl'.  LIBLTDL will be prefixed
805 # with '${top_builddir}/' and INCLTDL will be prefixed with
806 # '${top_srcdir}/' (note the single quotes!).  If your package is not
807 # flat and you're not using automake, define top_builddir and
808 # top_srcdir appropriately in the Makefiles.
809 AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
810 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
811   case $enable_ltdl_convenience in
812   no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
813   "") enable_ltdl_convenience=yes
814       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
815   esac
816   LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
817   INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
818 ])
819
820 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
821 # the libltdl installable library and INCLTDL to the include flags for
822 # the libltdl header and adds --enable-ltdl-install to the configure
823 # arguments.  Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
824 # AC_CONFIG_SUBDIRS called.  If DIR is not provided and an installed
825 # libltdl is not found, it is assumed to be `libltdl'.  LIBLTDL will
826 # be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
827 # with '${top_srcdir}/' (note the single quotes!).  If your package is
828 # not flat and you're not using automake, define top_builddir and
829 # top_srcdir appropriately in the Makefiles.
830 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
831 AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
832 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
833   AC_CHECK_LIB(ltdl, main,
834   [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
835   [if test x"$enable_ltdl_install" = xno; then
836      AC_MSG_WARN([libltdl not installed, but installation disabled])
837    else
838      enable_ltdl_install=yes
839    fi
840   ])
841   if test x"$enable_ltdl_install" = x"yes"; then
842     ac_configure_args="$ac_configure_args --enable-ltdl-install"
843     LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
844     INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
845   else
846     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
847     LIBLTDL="-lltdl"
848     INCLTDL=
849   fi
850 ])
851
852 # If this macro is not defined by Autoconf, define it here.
853 ifdef([AC_PROVIDE_IFELSE],
854       [],
855       [define([AC_PROVIDE_IFELSE],
856               [ifdef([AC_PROVIDE_$1],
857                      [$2], [$3])])])
858
859 # AC_LIBTOOL_CXX - enable support for C++ libraries
860 AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_AC_LIBTOOL_CXX])])
861
862 AC_DEFUN([_AC_LIBTOOL_CXX],
863 [AC_REQUIRE([AC_PROG_CXX])
864 AC_REQUIRE([AC_PROG_CXXCPP])
865 LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
866 lt_save_CC="$CC"
867 lt_save_CFLAGS="$CFLAGS"
868 dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
869 dnl is set to the C++ compiler.
870 AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
871 MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
872 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
873 AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
874 objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
875 deplibs_check_method="$deplibs_check_method" \
876 file_magic_cmd="$file_magic_cmd" \
877 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
878 --build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
879 || AC_MSG_ERROR([libtool tag configuration failed])
880 CC="$lt_save_CC"
881 CFLAGS="$lt_save_CFLAGS"
882
883 # Redirect the config.log output again, so that the ltconfig log is not
884 # clobbered by the next message.
885 exec 5>>./config.log
886 ])
887
888 # AC_LIBTOOL_GCJ - enable support for GCJ libraries
889 AC_DEFUN([AC_LIBTOOL_GCJ],[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
890
891 AC_DEFUN([_AC_LIBTOOL_GCJ],
892 [AC_REQUIRE([AC_PROG_LIBTOOL])
893 AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
894   [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
895     [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
896       [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
897          [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
898            [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
899 LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
900 lt_save_CC="$CC"
901 lt_save_CFLAGS="$CFLAGS"
902 dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
903 dnl is set to the C++ compiler.
904 AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="$CPPFLAGS" \
905 MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
906 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
907 AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
908 objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
909 deplibs_check_method="$deplibs_check_method" \
910 file_magic_cmd="$file_magic_cmd" \
911 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
912 --build="$build" --add-tag=GCJ $ac_aux_dir/ltcf-gcj.sh $host \
913 || AC_MSG_ERROR([libtool tag configuration failed])
914 CC="$lt_save_CC"
915 CFLAGS="$lt_save_CFLAGS"
916
917 # Redirect the config.log output again, so that the ltconfig log is not
918 # clobbered by the next message.
919 exec 5>>./config.log
920 ])
921
922 dnl old names
923 AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
924 AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
925 AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
926 AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
927 AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
928 AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
929 AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
930
931 dnl This is just to silence aclocal about the macro not being used
932 ifelse([AC_DISABLE_FAST_INSTALL])dnl
933
934 AC_DEFUN([LT_AC_PROG_GCJ],
935 [AC_CHECK_TOOL(GCJ, gcj, no)
936   test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
937   AC_SUBST(GCJFLAGS)
938 ])