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