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