PR binutils/4292
[binutils.git] / libtool.m4
blobcbd74d57161e5d1b4e8c47b241c80032f69d2074
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.
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.
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
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.
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 ])])
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 ])])])])])])
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
59 # Save cache, so that ltconfig can load it
60 AC_CACHE_SAVE
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])
73 # Reload cache, that may have been modified by ltconfig
74 AC_CACHE_LOAD
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"
79 # Always use our own libtool.
80 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
81 AC_SUBST(LIBTOOL)dnl
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
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
106 AC_LIBTOOL_SYS_MAX_CMD_LEN
108 # Only perform the check for file, if the check method requires it
109 case $deplibs_check_method in
110 file_magic*)
111   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
112     AC_PATH_MAGIC
113   fi
114   ;;
115 esac
117 AC_CHECK_TOOL(RANLIB, ranlib, :)
118 AC_CHECK_TOOL(STRIP, strip, :)
120 # Check for any special flags to pass to ltconfig.
121 libtool_flags="--cache-file=$cache_file"
122 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
123 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
124 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
125 test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
126 test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
127 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
128 [libtool_flags="$libtool_flags --enable-dlopen"])
129 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
130 [libtool_flags="$libtool_flags --enable-win32-dll"])
131 AC_ARG_ENABLE(libtool-lock,
132   [  --disable-libtool-lock  avoid locking (might break parallel builds)])
133 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
134 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
136 AC_ARG_WITH(pic,
137   [  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
138      pic_mode="$withval", pic_mode=default)
139 test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
140 test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
142 # Some flags need to be propagated to the compiler or linker for good
143 # libtool support.
144 case $host in
145 *-*-irix6*)
146   # Find out which ABI we are using.
147   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
148   if AC_TRY_EVAL(ac_compile); then
149    if test "$lt_cv_prog_gnu_ld" = yes; then
150     case `/usr/bin/file conftest.$ac_objext` in
151     *32-bit*)
152       LD="${LD-ld} -melf32bsmip"
153       ;;
154     *N32*)
155       LD="${LD-ld} -melf32bmipn32"
156       ;;
157     *64-bit*)
158       LD="${LD-ld} -melf64bmip"
159       ;;
160     esac
161    else
162     case `/usr/bin/file conftest.$ac_objext` in
163     *32-bit*)
164       LD="${LD-ld} -32"
165       ;;
166     *N32*)
167       LD="${LD-ld} -n32"
168       ;;
169     *64-bit*)
170       LD="${LD-ld} -64"
171       ;;
172     esac
173    fi
174   fi
175   rm -rf conftest*
176   ;;
178 ia64-*-hpux*)
179   # Find out which ABI we are using.
180   echo 'int i;' > conftest.$ac_ext
181   if AC_TRY_EVAL(ac_compile); then
182     case "`/usr/bin/file conftest.o`" in
183     *ELF-32*)
184       HPUX_IA64_MODE="32"
185       ;;
186     *ELF-64*)
187       HPUX_IA64_MODE="64"
188       ;;
189     esac
190   fi
191   rm -rf conftest*
192   ;;
194 x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
195   # Find out which ABI we are using.
196   echo 'int i;' > conftest.$ac_ext
197   if AC_TRY_EVAL(ac_compile); then
198     case "`/usr/bin/file conftest.o`" in
199     *32-bit*)
200       case $host in
201         x86_64-*linux*)
202           LD="${LD-ld} -m elf_i386"
203           ;;
204         ppc64-*linux*|powerpc64-*linux*)
205           LD="${LD-ld} -m elf32ppclinux"
206           ;;
207         s390x-*linux*)
208           LD="${LD-ld} -m elf_s390"
209           ;;
210         sparc64-*linux*)
211           LD="${LD-ld} -m elf32_sparc"
212           ;;
213       esac
214       ;;
215     *64-bit*)
216       case $host in
217         x86_64-*linux*)
218           LD="${LD-ld} -m elf_x86_64"
219           ;;
220         ppc*-*linux*|powerpc*-*linux*)
221           LD="${LD-ld} -m elf64ppc"
222           ;;
223         s390*-*linux*)
224           LD="${LD-ld} -m elf64_s390"
225           ;;
226         sparc*-*linux*)
227           LD="${LD-ld} -m elf64_sparc"
228           ;;
229       esac
230       ;;
231     esac
232   fi
233   rm -rf conftest*
234   ;;
236 *-*-sco3.2v5*)
237   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
238   SAVE_CFLAGS="$CFLAGS"
239   CFLAGS="$CFLAGS -belf"
240   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
241     [AC_LANG_SAVE
242      AC_LANG_C
243      AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
244      AC_LANG_RESTORE])
245   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
246     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
247     CFLAGS="$SAVE_CFLAGS"
248   fi
249   ;;
251 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
252 [*-*-cygwin* | *-*-mingw* | *-*-pw32*)
253   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
254   AC_CHECK_TOOL(AS, as, false)
255   AC_CHECK_TOOL(OBJDUMP, objdump, false)
257   # recent cygwin and mingw systems supply a stub DllMain which the user
258   # can override, but on older systems we have to supply one
259   AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
260     [AC_TRY_LINK([],
261       [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
262       DllMain (0, 0, 0);],
263       [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
265   case $host/$CC in
266   *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
267     # old mingw systems require "-dll" to link a DLL, while more recent ones
268     # require "-mdll"
269     SAVE_CFLAGS="$CFLAGS"
270     CFLAGS="$CFLAGS -mdll"
271     AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
272       [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
273     CFLAGS="$SAVE_CFLAGS" ;;
274   *-*-cygwin* | *-*-pw32*)
275     # cygwin systems need to pass --dll to the linker, and not link
276     # crt.o which will require a WinMain@16 definition.
277     lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
278   esac
279   ;;
280   ])
281 esac
285 # AC_LIBTOOL_SYS_MAX_CMD_LEN
286 # --------------------------
287 AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
288 [# find the maximum length of command line arguments
289 AC_MSG_CHECKING([the maximum length of command line arguments])
290 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
291   i=0
292   teststring="ABCD"
294   case $build_os in
295   msdosdjgpp*)
296     # On DJGPP, this test can blow up pretty badly due to problems in libc
297     # (any single argument exceeding 2000 bytes causes a buffer overrun
298     # during glob expansion).  Even if it were fixed, the result of this
299     # check would be larger than it should be.
300     lt_cv_sys_max_cmd_len=12288;    # 12K is about right
301     ;;
303   cygwin* | mingw*)
304     # On Win9x/ME, this test blows up -- it succeeds, but takes
305     # about 5 minutes as the teststring grows exponentially.
306     # Worse, since 9x/ME are not pre-emptively multitasking,
307     # you end up with a "frozen" computer, even though with patience
308     # the test eventually succeeds (with a max line length of 256k).
309     # Instead, let's just punt: use the minimum linelength reported by
310     # all of the supported platforms: 8192 (on NT/2K/XP).
311     lt_cv_sys_max_cmd_len=8192;
312     ;;
314   amigaos*)
315     # On AmigaOS with pdksh, this test takes hours, literally.
316     # So we just punt and use a minimum line length of 8192.
317     lt_cv_sys_max_cmd_len=8192;
318     ;;
320   netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
321     # This has been around since 386BSD, at least.  Likely further.
322     if test -x /sbin/sysctl; then
323       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
324     elif test -x /usr/sbin/sysctl; then
325       lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
326     else
327       lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
328     fi
329     # And add a safety zone
330     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
331     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
332     ;;
333   esac
335 if test -n "$lt_cv_sys_max_cmd_len" ; then
336   AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
337 else
338   AC_MSG_RESULT(none)
340 ])# AC_LIBTOOL_SYS_MAX_CMD_LEN
343 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
344 AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
346 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
347 AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
349 # AC_ENABLE_SHARED - implement the --enable-shared flag
350 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
351 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
352 #   `yes'.
353 AC_DEFUN([AC_ENABLE_SHARED],
354 [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
355 AC_ARG_ENABLE(shared,
356 changequote(<<, >>)dnl
357 <<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
358 changequote([, ])dnl
359 [p=${PACKAGE-default}
360 case $enableval in
361 yes) enable_shared=yes ;;
362 no) enable_shared=no ;;
364   enable_shared=no
365   # Look at the argument we got.  We use all the common list separators.
366   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
367   for pkg in $enableval; do
368     if test "X$pkg" = "X$p"; then
369       enable_shared=yes
370     fi
371   done
372   IFS="$ac_save_ifs"
373   ;;
374 esac],
375 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
378 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
379 AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
380 AC_ENABLE_SHARED(no)])
382 # AC_ENABLE_STATIC - implement the --enable-static flag
383 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
384 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
385 #   `yes'.
386 AC_DEFUN([AC_ENABLE_STATIC],
387 [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
388 AC_ARG_ENABLE(static,
389 changequote(<<, >>)dnl
390 <<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
391 changequote([, ])dnl
392 [p=${PACKAGE-default}
393 case $enableval in
394 yes) enable_static=yes ;;
395 no) enable_static=no ;;
397   enable_static=no
398   # Look at the argument we got.  We use all the common list separators.
399   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
400   for pkg in $enableval; do
401     if test "X$pkg" = "X$p"; then
402       enable_static=yes
403     fi
404   done
405   IFS="$ac_save_ifs"
406   ;;
407 esac],
408 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
411 # AC_DISABLE_STATIC - set the default static flag to --disable-static
412 AC_DEFUN([AC_DISABLE_STATIC],
413 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
414 AC_ENABLE_STATIC(no)])
417 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
418 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
419 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
420 #   `yes'.
421 AC_DEFUN([AC_ENABLE_FAST_INSTALL],
422 [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
423 AC_ARG_ENABLE(fast-install,
424 changequote(<<, >>)dnl
425 <<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
426 changequote([, ])dnl
427 [p=${PACKAGE-default}
428 case $enableval in
429 yes) enable_fast_install=yes ;;
430 no) enable_fast_install=no ;;
432   enable_fast_install=no
433   # Look at the argument we got.  We use all the common list separators.
434   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
435   for pkg in $enableval; do
436     if test "X$pkg" = "X$p"; then
437       enable_fast_install=yes
438     fi
439   done
440   IFS="$ac_save_ifs"
441   ;;
442 esac],
443 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
446 # AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
447 AC_DEFUN([AC_DISABLE_FAST_INSTALL],
448 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
449 AC_ENABLE_FAST_INSTALL(no)])
451 # AC_LIBTOOL_PICMODE - implement the --with-pic flag
452 # Usage: AC_LIBTOOL_PICMODE[(MODE)]
453 #   Where MODE is either `yes' or `no'.  If omitted, it defaults to
454 #   `both'.
455 AC_DEFUN([AC_LIBTOOL_PICMODE],
456 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
457 pic_mode=ifelse($#,1,$1,default)])
460 # AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
461 AC_DEFUN([AC_PATH_TOOL_PREFIX],
462 [AC_MSG_CHECKING([for $1])
463 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
464 [case $MAGIC_CMD in
465   /*)
466   lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
467   ;;
468   ?:/*)
469   lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
470   ;;
471   *)
472   ac_save_MAGIC_CMD="$MAGIC_CMD"
473   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
474 dnl $ac_dummy forces splitting on constant user-supplied paths.
475 dnl POSIX.2 word splitting is done only on the output of word expansions,
476 dnl not every word.  This closes a longstanding sh security hole.
477   ac_dummy="ifelse([$2], , $PATH, [$2])"
478   for ac_dir in $ac_dummy; do
479     test -z "$ac_dir" && ac_dir=.
480     if test -f $ac_dir/$1; then
481       lt_cv_path_MAGIC_CMD="$ac_dir/$1"
482       if test -n "$file_magic_test_file"; then
483         case $deplibs_check_method in
484         "file_magic "*)
485           file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
486           MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
487           if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
488             egrep "$file_magic_regex" > /dev/null; then
489             :
490           else
491             cat <<EOF 1>&2
493 *** Warning: the command libtool uses to detect shared libraries,
494 *** $file_magic_cmd, produces output that libtool cannot recognize.
495 *** The result is that libtool may fail to recognize shared libraries
496 *** as such.  This will affect the creation of libtool libraries that
497 *** depend on shared libraries, but programs linked with such libtool
498 *** libraries will work regardless of this problem.  Nevertheless, you
499 *** may want to report the problem to your system manager and/or to
500 *** bug-libtool@gnu.org
503           fi ;;
504         esac
505       fi
506       break
507     fi
508   done
509   IFS="$ac_save_ifs"
510   MAGIC_CMD="$ac_save_MAGIC_CMD"
511   ;;
512 esac])
513 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
514 if test -n "$MAGIC_CMD"; then
515   AC_MSG_RESULT($MAGIC_CMD)
516 else
517   AC_MSG_RESULT(no)
522 # AC_PATH_MAGIC - find a file program which can recognise a shared library
523 AC_DEFUN([AC_PATH_MAGIC],
524 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
525 AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
526 if test -z "$lt_cv_path_MAGIC_CMD"; then
527   if test -n "$ac_tool_prefix"; then
528     AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
529   else
530     MAGIC_CMD=:
531   fi
536 # AC_PROG_LD - find the path to the GNU or non-GNU linker
537 AC_DEFUN([AC_PROG_LD],
538 [AC_ARG_WITH(gnu-ld,
539 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
540 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
541 AC_REQUIRE([AC_PROG_CC])dnl
542 AC_REQUIRE([AC_CANONICAL_HOST])dnl
543 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
544 ac_prog=ld
545 if test "$GCC" = yes; then
546   # Check if gcc -print-prog-name=ld gives a path.
547   AC_MSG_CHECKING([for ld used by GCC])
548   case $host in
549   *-*-mingw*)
550     # gcc leaves a trailing carriage return which upsets mingw
551     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
552   *)
553     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
554   esac
555   case $ac_prog in
556     # Accept absolute paths.
557     [[\\/]* | [A-Za-z]:[\\/]*)]
558       re_direlt=['/[^/][^/]*/\.\./']
559       # Canonicalize the path of ld
560       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
561       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
562         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
563       done
564       test -z "$LD" && LD="$ac_prog"
565       ;;
566   "")
567     # If it fails, then pretend we aren't using GCC.
568     ac_prog=ld
569     ;;
570   *)
571     # If it is relative, then search for the first ld in PATH.
572     with_gnu_ld=unknown
573     ;;
574   esac
575 elif test "$with_gnu_ld" = yes; then
576   AC_MSG_CHECKING([for GNU ld])
577 else
578   AC_MSG_CHECKING([for non-GNU ld])
580 AC_CACHE_VAL(lt_cv_path_LD,
581 [if test -z "$LD"; then
582   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
583   for ac_dir in $PATH; do
584     test -z "$ac_dir" && ac_dir=.
585     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
586       lt_cv_path_LD="$ac_dir/$ac_prog"
587       # Check to see if the program is GNU ld.  I'd rather use --version,
588       # but apparently some GNU ld's only accept -v.
589       # Break only if it was the GNU/non-GNU ld that we prefer.
590       if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
591         test "$with_gnu_ld" != no && break
592       else
593         test "$with_gnu_ld" != yes && break
594       fi
595     fi
596   done
597   IFS="$ac_save_ifs"
598 else
599   lt_cv_path_LD="$LD" # Let the user override the test with a path.
600 fi])
601 LD="$lt_cv_path_LD"
602 if test -n "$LD"; then
603   AC_MSG_RESULT($LD)
604 else
605   AC_MSG_RESULT(no)
607 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
608 AC_PROG_LD_GNU
611 AC_DEFUN([AC_PROG_LD_GNU],
612 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
613 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
614 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
615   lt_cv_prog_gnu_ld=yes
616 else
617   lt_cv_prog_gnu_ld=no
618 fi])
619 with_gnu_ld=$lt_cv_prog_gnu_ld
622 # AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
623 #   -- PORTME Some linkers may need a different reload flag.
624 AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
625 [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
626 [lt_cv_ld_reload_flag='-r'])
627 reload_flag=$lt_cv_ld_reload_flag
628 test -n "$reload_flag" && reload_flag=" $reload_flag"
631 # AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
632 #  -- PORTME fill in with the dynamic library characteristics
633 AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
634 [AC_CACHE_CHECK([how to recognise dependant libraries],
635 lt_cv_deplibs_check_method,
636 [lt_cv_file_magic_cmd='$MAGIC_CMD'
637 lt_cv_file_magic_test_file=
638 lt_cv_deplibs_check_method='unknown'
639 # Need to set the preceding variable on all platforms that support
640 # interlibrary dependencies.
641 # 'none' -- dependencies not supported.
642 # `unknown' -- same as none, but documents that we really don't know.
643 # 'pass_all' -- all dependencies passed with no checks.
644 # 'test_compile' -- check by making test program.
645 # 'file_magic [regex]' -- check by looking for files in library path
646 # which responds to the $file_magic_cmd with a given egrep regex.
647 # If you have `file' or equivalent on your system and you're not sure
648 # whether `pass_all' will *always* work, you probably want this one.
650 case $host_os in
651 aix*)
652   lt_cv_deplibs_check_method=pass_all
653   ;;
655 beos*)
656   lt_cv_deplibs_check_method=pass_all
657   ;;
659 bsdi4*)
660   lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)']
661   lt_cv_file_magic_cmd='/usr/bin/file -L'
662   lt_cv_file_magic_test_file=/shlib/libc.so
663   ;;
665 cygwin* | mingw* |pw32*)
666   lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
667   lt_cv_file_magic_cmd='$OBJDUMP -f'
668   ;;
670 darwin* | rhapsody*)
671   # this will be overwritten by pass_all, but leave it in just in case
672   lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
673   lt_cv_file_magic_cmd='/usr/bin/file -L'
674   case "$host_os" in
675   rhapsody* | darwin1.[012])
676     lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
677     ;;
678   *) # Darwin 1.3 on
679     lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
680     ;;
681   esac
682   lt_cv_deplibs_check_method=pass_all
683   ;;
685 freebsd* | kfreebsd*-gnu)
686   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
687     case $host_cpu in
688     i*86 )
689       # Not sure whether the presence of OpenBSD here was a mistake.
690       # Let's accept both of them until this is cleared up.
691       lt_cv_deplibs_check_method=['file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library']
692       lt_cv_file_magic_cmd=/usr/bin/file
693       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
694       ;;
695     esac
696   else
697     lt_cv_deplibs_check_method=pass_all
698   fi
699   ;;
701 gnu*)
702   lt_cv_deplibs_check_method=pass_all
703   ;;
705 hpux10.20*|hpux11*)
706   case $host_cpu in
707   hppa*)
708     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
709     lt_cv_file_magic_cmd=/usr/bin/file
710     lt_cv_file_magic_test_file=/usr/lib/libc.sl
711     ;;
712   ia64*)
713     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64']
714     lt_cv_file_magic_cmd=/usr/bin/file
715     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
716     ;;
717   esac
718   ;;
720 irix5* | irix6*)
721   case $host_os in
722   irix5*)
723     # this will be overridden with pass_all, but let us keep it just in case
724     lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
725     ;;
726   *)
727     case $LD in
728     *-32|*"-32 ") libmagic=32-bit;;
729     *-n32|*"-n32 ") libmagic=N32;;
730     *-64|*"-64 ") libmagic=64-bit;;
731     *) libmagic=never-match;;
732     esac
733     # this will be overridden with pass_all, but let us keep it just in case
734     lt_cv_deplibs_check_method=["file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"]
735     ;;
736   esac
737   lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
738   lt_cv_deplibs_check_method=pass_all
739   ;;
741 # This must be Linux ELF.
742 linux-gnu*)
743   lt_cv_deplibs_check_method=pass_all
744   ;;
746 netbsd* | knetbsd*-gnu)
747   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
748     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
749   else
750     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$']
751   fi
752   ;;
754 newsos6)
755   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
756   lt_cv_file_magic_cmd=/usr/bin/file
757   lt_cv_file_magic_test_file=/usr/lib/libnls.so
758   ;;
760 osf3* | osf4* | osf5*)
761   # this will be overridden with pass_all, but let us keep it just in case
762   lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
763   lt_cv_file_magic_test_file=/shlib/libc.so
764   lt_cv_deplibs_check_method=pass_all
765   ;;
767 sco3.2v5*)
768   lt_cv_deplibs_check_method=pass_all
769   ;;
771 solaris*)
772   lt_cv_deplibs_check_method=pass_all
773   lt_cv_file_magic_test_file=/lib/libc.so
774   ;;
776 [sysv5uw[78]* | sysv4*uw2*)]
777   lt_cv_deplibs_check_method=pass_all
778   ;;
780 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
781   case $host_vendor in
782   ncr)
783     lt_cv_deplibs_check_method=pass_all
784     ;;
785   motorola)
786     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]']
787     lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
788     ;;
789   esac
790   ;;
791 esac
793 file_magic_cmd=$lt_cv_file_magic_cmd
794 deplibs_check_method=$lt_cv_deplibs_check_method
798 # AC_PROG_NM - find the path to a BSD-compatible name lister
799 AC_DEFUN([AC_PROG_NM],
800 [AC_MSG_CHECKING([for BSD-compatible nm])
801 AC_CACHE_VAL(lt_cv_path_NM,
802 [if test -n "$NM"; then
803   # Let the user override the test.
804   lt_cv_path_NM="$NM"
805 else
806   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
807   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
808     test -z "$ac_dir" && ac_dir=.
809     tmp_nm=$ac_dir/${ac_tool_prefix}nm
810     if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
811       # Check to see if the nm accepts a BSD-compat flag.
812       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
813       #   nm: unknown option "B" ignored
814       # Tru64's nm complains that /dev/null is an invalid object file
815       if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
816         lt_cv_path_NM="$tmp_nm -B"
817         break
818       elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
819         lt_cv_path_NM="$tmp_nm -p"
820         break
821       else
822         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
823         continue # so that we can try to find one that supports BSD flags
824       fi
825     fi
826   done
827   IFS="$ac_save_ifs"
828   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
829 fi])
830 NM="$lt_cv_path_NM"
831 AC_MSG_RESULT([$NM])
834 # AC_CHECK_LIBM - check for math library
835 AC_DEFUN([AC_CHECK_LIBM],
836 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
837 LIBM=
838 case $host in
839 *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
840   # These system don't have libm
841   # on darwin the libm is a symbolic link to libSystem.dylib
842   ;;
843 *-ncr-sysv4.3*)
844   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
845   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
846   ;;
848   AC_CHECK_LIB(m, main, LIBM="-lm")
849   ;;
850 esac
853 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
854 # the libltdl convenience library and INCLTDL to the include flags for
855 # the libltdl header and adds --enable-ltdl-convenience to the
856 # configure arguments.  Note that LIBLTDL and INCLTDL are not
857 # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If DIR is not
858 # provided, it is assumed to be `libltdl'.  LIBLTDL will be prefixed
859 # with '${top_builddir}/' and INCLTDL will be prefixed with
860 # '${top_srcdir}/' (note the single quotes!).  If your package is not
861 # flat and you're not using automake, define top_builddir and
862 # top_srcdir appropriately in the Makefiles.
863 AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
864 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
865   case $enable_ltdl_convenience in
866   no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
867   "") enable_ltdl_convenience=yes
868       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
869   esac
870   LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
871   INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
874 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
875 # the libltdl installable library and INCLTDL to the include flags for
876 # the libltdl header and adds --enable-ltdl-install to the configure
877 # arguments.  Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
878 # AC_CONFIG_SUBDIRS called.  If DIR is not provided and an installed
879 # libltdl is not found, it is assumed to be `libltdl'.  LIBLTDL will
880 # be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
881 # with '${top_srcdir}/' (note the single quotes!).  If your package is
882 # not flat and you're not using automake, define top_builddir and
883 # top_srcdir appropriately in the Makefiles.
884 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
885 AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
886 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
887   AC_CHECK_LIB(ltdl, main,
888   [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
889   [if test x"$enable_ltdl_install" = xno; then
890      AC_MSG_WARN([libltdl not installed, but installation disabled])
891    else
892      enable_ltdl_install=yes
893    fi
894   ])
895   if test x"$enable_ltdl_install" = x"yes"; then
896     ac_configure_args="$ac_configure_args --enable-ltdl-install"
897     LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
898     INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
899   else
900     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
901     LIBLTDL="-lltdl"
902     INCLTDL=
903   fi
906 # If this macro is not defined by Autoconf, define it here.
907 ifdef([AC_PROVIDE_IFELSE],
908       [],
909       [define([AC_PROVIDE_IFELSE],
910               [ifdef([AC_PROVIDE_$1],
911                      [$2], [$3])])])
913 # AC_LIBTOOL_CXX - enable support for C++ libraries
914 AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_AC_LIBTOOL_CXX])])
916 AC_DEFUN([_AC_LIBTOOL_CXX],
917 [AC_REQUIRE([AC_PROG_CXX])
918 AC_REQUIRE([AC_PROG_CXXCPP])
919 LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
920 lt_save_CC="$CC"
921 lt_save_CFLAGS="$CFLAGS"
922 dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
923 dnl is set to the C++ compiler.
924 AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
925 MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
926 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
927 AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
928 objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
929 deplibs_check_method="$deplibs_check_method" \
930 file_magic_cmd="$file_magic_cmd" \
931 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
932 --build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
933 || AC_MSG_ERROR([libtool tag configuration failed])
934 CC="$lt_save_CC"
935 CFLAGS="$lt_save_CFLAGS"
937 # Redirect the config.log output again, so that the ltconfig log is not
938 # clobbered by the next message.
939 exec 5>>./config.log
942 # AC_LIBTOOL_GCJ - enable support for GCJ libraries
943 AC_DEFUN([AC_LIBTOOL_GCJ],[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
945 AC_DEFUN([_AC_LIBTOOL_GCJ],
946 [AC_REQUIRE([AC_PROG_LIBTOOL])
947 AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
948   [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
949     [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
950       [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
951          [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
952            [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
953 LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
954 lt_save_CC="$CC"
955 lt_save_CFLAGS="$CFLAGS"
956 dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
957 dnl is set to the C++ compiler.
958 AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="$CPPFLAGS" \
959 MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
960 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
961 AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
962 objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
963 deplibs_check_method="$deplibs_check_method" \
964 file_magic_cmd="$file_magic_cmd" \
965 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
966 --build="$build" --add-tag=GCJ $ac_aux_dir/ltcf-gcj.sh $host \
967 || AC_MSG_ERROR([libtool tag configuration failed])
968 CC="$lt_save_CC"
969 CFLAGS="$lt_save_CFLAGS"
971 # Redirect the config.log output again, so that the ltconfig log is not
972 # clobbered by the next message.
973 exec 5>>./config.log
976 dnl old names
977 AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
978 AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
979 AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
980 AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
981 AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
982 AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
983 AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
985 dnl This is just to silence aclocal about the macro not being used
986 ifelse([AC_DISABLE_FAST_INSTALL])dnl
988 AC_DEFUN([LT_AC_PROG_GCJ],
989 [AC_CHECK_TOOL(GCJ, gcj, no)
990   test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
991   AC_SUBST(GCJFLAGS)