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