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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
26AC_DEFUN([AC_PROG_LIBTOOL],
27[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
28dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
29dnl 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
35dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
36dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
37dnl 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
54AC_DEFUN([_AC_PROG_LIBTOOL],
55[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
56AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
57AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
58
59# Save cache, so that ltconfig can load it
60AC_CACHE_SAVE
61
62# Actually configure libtool.  ac_aux_dir is where install-sh is found.
63AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
64MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
65LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
66AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
67objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
68deplibs_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
74AC_CACHE_LOAD
75
76# This can be used to rebuild libtool when needed
77LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
78
79# Always use our own libtool.
80LIBTOOL='$(SHELL) $(top_builddir)/libtool'
81AC_SUBST(LIBTOOL)dnl
82
83# Redirect the config.log output again, so that the ltconfig log is not
84# clobbered by the next message.
85exec 5>>./config.log
86])
87
88AC_DEFUN([AC_LIBTOOL_SETUP],
89[AC_PREREQ(2.13)dnl
90AC_REQUIRE([AC_ENABLE_SHARED])dnl
91AC_REQUIRE([AC_ENABLE_STATIC])dnl
92AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
93AC_REQUIRE([AC_CANONICAL_HOST])dnl
94AC_REQUIRE([AC_CANONICAL_BUILD])dnl
95AC_REQUIRE([AC_PROG_CC])dnl
96AC_REQUIRE([AC_PROG_LD])dnl
97AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
98AC_REQUIRE([AC_PROG_NM])dnl
99AC_REQUIRE([AC_PROG_LN_S])dnl
100AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
101# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
102AC_REQUIRE([AC_OBJEXT])dnl
103AC_REQUIRE([AC_EXEEXT])dnl
104dnl
105
106AC_LIBTOOL_SYS_MAX_CMD_LEN
107
108# Only perform the check for file, if the check method requires it
109case $deplibs_check_method in
110file_magic*)
111  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
112    AC_PATH_MAGIC
113  fi
114  ;;
115esac
116
117AC_CHECK_TOOL(RANLIB, ranlib, :)
118AC_CHECK_TOOL(STRIP, strip, :)
119
120# Check for any special flags to pass to ltconfig.
121libtool_flags="--cache-file=$cache_file"
122test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
123test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
124test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
125test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
126test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
127ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
128[libtool_flags="$libtool_flags --enable-dlopen"])
129ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
130[libtool_flags="$libtool_flags --enable-win32-dll"])
131AC_ARG_ENABLE(libtool-lock,
132  [  --disable-libtool-lock  avoid locking (might break parallel builds)])
133test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
134test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
135
136AC_ARG_WITH(pic,
137  [  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
138     pic_mode="$withval", pic_mode=default)
139test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
140test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
141
142# Some flags need to be propagated to the compiler or linker for good
143# libtool support.
144case $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  ;;
177
178ia64-*-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  ;;
193
194x86_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  ;;
235
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  ;;
250
251ifdef([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)
256
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])])
264
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  ])
281esac
282])
283
284
285# AC_LIBTOOL_SYS_MAX_CMD_LEN
286# --------------------------
287AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
288[# find the maximum length of command line arguments
289AC_MSG_CHECKING([the maximum length of command line arguments])
290AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
291  i=0
292  teststring="ABCD"
293
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    ;;
302
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    ;;
313
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    ;;
319
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
334])
335if test -n "$lt_cv_sys_max_cmd_len" ; then
336  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
337else
338  AC_MSG_RESULT(none)
339fi
340])# AC_LIBTOOL_SYS_MAX_CMD_LEN
341
342
343# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
344AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
345
346# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
347AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
348
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'.
353AC_DEFUN([AC_ENABLE_SHARED],
354[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
355AC_ARG_ENABLE(shared,
356changequote(<<, >>)dnl
357<<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
358changequote([, ])dnl
359[p=${PACKAGE-default}
360case $enableval in
361yes) enable_shared=yes ;;
362no) enable_shared=no ;;
363*)
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  ;;
374esac],
375enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
376])
377
378# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
379AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
380AC_ENABLE_SHARED(no)])
381
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'.
386AC_DEFUN([AC_ENABLE_STATIC],
387[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
388AC_ARG_ENABLE(static,
389changequote(<<, >>)dnl
390<<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
391changequote([, ])dnl
392[p=${PACKAGE-default}
393case $enableval in
394yes) enable_static=yes ;;
395no) enable_static=no ;;
396*)
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  ;;
407esac],
408enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
409])
410
411# AC_DISABLE_STATIC - set the default static flag to --disable-static
412AC_DEFUN([AC_DISABLE_STATIC],
413[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
414AC_ENABLE_STATIC(no)])
415
416
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'.
421AC_DEFUN([AC_ENABLE_FAST_INSTALL],
422[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
423AC_ARG_ENABLE(fast-install,
424changequote(<<, >>)dnl
425<<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
426changequote([, ])dnl
427[p=${PACKAGE-default}
428case $enableval in
429yes) enable_fast_install=yes ;;
430no) enable_fast_install=no ;;
431*)
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  ;;
442esac],
443enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
444])
445
446# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
447AC_DEFUN([AC_DISABLE_FAST_INSTALL],
448[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
449AC_ENABLE_FAST_INSTALL(no)])
450
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'.
455AC_DEFUN([AC_LIBTOOL_PICMODE],
456[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
457pic_mode=ifelse($#,1,$1,default)])
458
459
460# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
461AC_DEFUN([AC_PATH_TOOL_PREFIX],
462[AC_MSG_CHECKING([for $1])
463AC_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=":"
474dnl $ac_dummy forces splitting on constant user-supplied paths.
475dnl POSIX.2 word splitting is done only on the output of word expansions,
476dnl 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
492
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
501
502EOF
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  ;;
512esac])
513MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
514if test -n "$MAGIC_CMD"; then
515  AC_MSG_RESULT($MAGIC_CMD)
516else
517  AC_MSG_RESULT(no)
518fi
519])
520
521
522# AC_PATH_MAGIC - find a file program which can recognise a shared library
523AC_DEFUN([AC_PATH_MAGIC],
524[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
525AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
526if 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
532fi
533])
534
535
536# AC_PROG_LD - find the path to the GNU or non-GNU linker
537AC_DEFUN([AC_PROG_LD],
538[AC_ARG_WITH(gnu-ld,
539[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
540test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
541AC_REQUIRE([AC_PROG_CC])dnl
542AC_REQUIRE([AC_CANONICAL_HOST])dnl
543AC_REQUIRE([AC_CANONICAL_BUILD])dnl
544ac_prog=ld
545if 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
575elif test "$with_gnu_ld" = yes; then
576  AC_MSG_CHECKING([for GNU ld])
577else
578  AC_MSG_CHECKING([for non-GNU ld])
579fi
580AC_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"
598else
599  lt_cv_path_LD="$LD" # Let the user override the test with a path.
600fi])
601LD="$lt_cv_path_LD"
602if test -n "$LD"; then
603  AC_MSG_RESULT($LD)
604else
605  AC_MSG_RESULT(no)
606fi
607test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
608AC_PROG_LD_GNU
609])
610
611AC_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.
614if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
615  lt_cv_prog_gnu_ld=yes
616else
617  lt_cv_prog_gnu_ld=no
618fi])
619with_gnu_ld=$lt_cv_prog_gnu_ld
620])
621
622# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
623#   -- PORTME Some linkers may need a different reload flag.
624AC_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'])
627reload_flag=$lt_cv_ld_reload_flag
628test -n "$reload_flag" && reload_flag=" $reload_flag"
629])
630
631# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
632#  -- PORTME fill in with the dynamic library characteristics
633AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
634[AC_CACHE_CHECK([how to recognise dependant libraries],
635lt_cv_deplibs_check_method,
636[lt_cv_file_magic_cmd='$MAGIC_CMD'
637lt_cv_file_magic_test_file=
638lt_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.
649
650case $host_os in
651aix*)
652  lt_cv_deplibs_check_method=pass_all
653  ;;
654
655beos*)
656  lt_cv_deplibs_check_method=pass_all
657  ;;
658
659bsdi4*)
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  ;;
664
665cygwin* | 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  ;;
669
670darwin* | 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  ;;
684
685freebsd* | 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  ;;
700
701gnu*)
702  lt_cv_deplibs_check_method=pass_all
703  ;;
704
705hpux10.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  ;;
719
720irix5* | 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  ;;
740
741# This must be Linux ELF.
742linux-gnu*)
743  lt_cv_deplibs_check_method=pass_all
744  ;;
745
746netbsd* | 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  ;;
753
754newsos6)
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  ;;
759
760osf3* | 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  ;;
766
767sco3.2v5*)
768  lt_cv_deplibs_check_method=pass_all
769  ;;
770
771solaris*)
772  lt_cv_deplibs_check_method=pass_all
773  lt_cv_file_magic_test_file=/lib/libc.so
774  ;;
775
776[sysv5uw[78]* | sysv4*uw2*)]
777  lt_cv_deplibs_check_method=pass_all
778  ;;
779
780sysv4 | 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  ;;
791esac
792])
793file_magic_cmd=$lt_cv_file_magic_cmd
794deplibs_check_method=$lt_cv_deplibs_check_method
795])
796
797
798# AC_PROG_NM - find the path to a BSD-compatible name lister
799AC_DEFUN([AC_PROG_NM],
800[AC_MSG_CHECKING([for BSD-compatible nm])
801AC_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"
805else
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
829fi])
830NM="$lt_cv_path_NM"
831AC_MSG_RESULT([$NM])
832])
833
834# AC_CHECK_LIBM - check for math library
835AC_DEFUN([AC_CHECK_LIBM],
836[AC_REQUIRE([AC_CANONICAL_HOST])dnl
837LIBM=
838case $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  ;;
847*)
848  AC_CHECK_LIB(m, main, LIBM="-lm")
849  ;;
850esac
851])
852
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.
863AC_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'])
872])
873
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.
885AC_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
904])
905
906# If this macro is not defined by Autoconf, define it here.
907ifdef([AC_PROVIDE_IFELSE],
908      [],
909      [define([AC_PROVIDE_IFELSE],
910              [ifdef([AC_PROVIDE_$1],
911                     [$2], [$3])])])
912
913# AC_LIBTOOL_CXX - enable support for C++ libraries
914AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_AC_LIBTOOL_CXX])])
915
916AC_DEFUN([_AC_LIBTOOL_CXX],
917[AC_REQUIRE([AC_PROG_CXX])
918AC_REQUIRE([AC_PROG_CXXCPP])
919LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
920lt_save_CC="$CC"
921lt_save_CFLAGS="$CFLAGS"
922dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
923dnl is set to the C++ compiler.
924AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
925MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
926LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
927AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
928objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
929deplibs_check_method="$deplibs_check_method" \
930file_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])
934CC="$lt_save_CC"
935CFLAGS="$lt_save_CFLAGS"
936
937# Redirect the config.log output again, so that the ltconfig log is not
938# clobbered by the next message.
939exec 5>>./config.log
940])
941
942# AC_LIBTOOL_GCJ - enable support for GCJ libraries
943AC_DEFUN([AC_LIBTOOL_GCJ],[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
944
945AC_DEFUN([_AC_LIBTOOL_GCJ],
946[AC_REQUIRE([AC_PROG_LIBTOOL])
947AC_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])])])])])])
953LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
954lt_save_CC="$CC"
955lt_save_CFLAGS="$CFLAGS"
956dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
957dnl is set to the C++ compiler.
958AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="$CPPFLAGS" \
959MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
960LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
961AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
962objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
963deplibs_check_method="$deplibs_check_method" \
964file_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])
968CC="$lt_save_CC"
969CFLAGS="$lt_save_CFLAGS"
970
971# Redirect the config.log output again, so that the ltconfig log is not
972# clobbered by the next message.
973exec 5>>./config.log
974])
975
976dnl old names
977AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
978AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
979AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
980AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
981AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
982AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
983AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
984
985dnl This is just to silence aclocal about the macro not being used
986ifelse([AC_DISABLE_FAST_INSTALL])dnl
987
988AC_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)
992])
993