]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - libtool.m4
2001-03-22 Ben Elliston <bje@redhat.com>
[thirdparty/binutils-gdb.git] / libtool.m4
CommitLineData
6cf86f7f 1## libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
ef099754
AO
2## Copyright 1996, 1997, 1998, 1999, 2000, 2001
3## Free Software Foundation, Inc.
6cf86f7f
AO
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 45 AC_PROG_LIBTOOL
26AC_DEFUN(AC_PROG_LIBTOOL,[AC_REQUIRE([_AC_PROG_LIBTOOL])
27dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
28dnl 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])])
33
34dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
35dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
36dnl 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],
d64552c5
AO
41 [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
42 [AC_LIBTOOL_GCJ],
6cf86f7f
AO
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
d64552c5
AO
48])])
49 ifdef([LT_AC_PROG_GCJ],
50 [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ
51])])])])])])
6cf86f7f
AO
52
53AC_DEFUN(_AC_PROG_LIBTOOL,
54[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
55AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
56AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
57
58# Save cache, so that ltconfig can load it
59AC_CACHE_SAVE
60
61# Actually configure libtool. ac_aux_dir is where install-sh is found.
62AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
d64552c5 63MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
6cf86f7f
AO
64LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
65AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
66objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
67deplibs_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])
71
72# Reload cache, that may have been modified by ltconfig
73AC_CACHE_LOAD
74
75# This can be used to rebuild libtool when needed
76LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
77
78# Always use our own libtool.
79LIBTOOL='$(SHELL) $(top_builddir)/libtool'
80AC_SUBST(LIBTOOL)dnl
81
82# Redirect the config.log output again, so that the ltconfig log is not
83# clobbered by the next message.
84exec 5>>./config.log
85])
86
87AC_DEFUN(AC_LIBTOOL_SETUP,
88[AC_PREREQ(2.13)dnl
89AC_REQUIRE([AC_ENABLE_SHARED])dnl
90AC_REQUIRE([AC_ENABLE_STATIC])dnl
91AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
92AC_REQUIRE([AC_CANONICAL_HOST])dnl
93AC_REQUIRE([AC_CANONICAL_BUILD])dnl
94AC_REQUIRE([AC_PROG_CC])dnl
95AC_REQUIRE([AC_PROG_LD])dnl
96AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
97AC_REQUIRE([AC_PROG_NM])dnl
98AC_REQUIRE([AC_PROG_LN_S])dnl
99AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
100# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
101AC_REQUIRE([AC_OBJEXT])dnl
102AC_REQUIRE([AC_EXEEXT])dnl
103dnl
104
105# Only perform the check for file, if the check method requires it
106case "$deplibs_check_method" in
107file_magic*)
d64552c5 108 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
6cf86f7f
AO
109 AC_PATH_MAGIC
110 fi
111 ;;
112esac
113
114AC_CHECK_TOOL(RANLIB, ranlib, :)
115AC_CHECK_TOOL(STRIP, strip, :)
116
117# Check for any special flags to pass to ltconfig.
118libtool_flags="--cache-file=$cache_file"
119test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
120test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
121test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
122test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
123test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
124ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
125[libtool_flags="$libtool_flags --enable-dlopen"])
126ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
127[libtool_flags="$libtool_flags --enable-win32-dll"])
128AC_ARG_ENABLE(libtool-lock,
129 [ --disable-libtool-lock avoid locking (might break parallel builds)])
130test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
131test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
132
133AC_ARG_WITH(pic,
134 [ --with-pic try to use only PIC/non-PIC objects [default=use both]],
135 pic_mode="$withval", pic_mode=default)
136test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
137test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
138
139# Some flags need to be propagated to the compiler or linker for good
140# libtool support.
141case "$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 ;;
160
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 ;;
175
176ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
d64552c5 177[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
6cf86f7f
AO
178 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
179 AC_CHECK_TOOL(AS, as, false)
180 AC_CHECK_TOOL(OBJDUMP, objdump, false)
181
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])])
189
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" ;;
d64552c5 199 *-*-cygwin* | *-*-pw32*)
6cf86f7f
AO
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 ])
206esac
207])
208
209# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
210AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
211
212# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
213AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
214
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'.
219AC_DEFUN(AC_ENABLE_SHARED, [dnl
220define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
221AC_ARG_ENABLE(shared,
222changequote(<<, >>)dnl
223<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
224changequote([, ])dnl
225[p=${PACKAGE-default}
226case "$enableval" in
227yes) enable_shared=yes ;;
228no) enable_shared=no ;;
229*)
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 ;;
240esac],
241enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
242])
243
244# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
245AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
246AC_ENABLE_SHARED(no)])
247
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'.
252AC_DEFUN(AC_ENABLE_STATIC, [dnl
253define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
254AC_ARG_ENABLE(static,
255changequote(<<, >>)dnl
256<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
257changequote([, ])dnl
258[p=${PACKAGE-default}
259case "$enableval" in
260yes) enable_static=yes ;;
261no) enable_static=no ;;
262*)
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 ;;
273esac],
274enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
275])
276
277# AC_DISABLE_STATIC - set the default static flag to --disable-static
278AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
279AC_ENABLE_STATIC(no)])
280
281
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'.
286AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
287define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
288AC_ARG_ENABLE(fast-install,
289changequote(<<, >>)dnl
290<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
291changequote([, ])dnl
292[p=${PACKAGE-default}
293case "$enableval" in
294yes) enable_fast_install=yes ;;
295no) enable_fast_install=no ;;
296*)
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 ;;
307esac],
308enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
309])
310
311# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
312AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
313AC_ENABLE_FAST_INSTALL(no)])
314
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'.
319AC_DEFUN(AC_LIBTOOL_PICMODE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
320pic_mode=ifelse($#,1,$1,default)])
321
322
323# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
324AC_DEFUN(AC_PATH_TOOL_PREFIX,
325[AC_MSG_CHECKING([for $1])
d64552c5
AO
326AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
327[case "$MAGIC_CMD" in
6cf86f7f 328 /*)
d64552c5 329 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
6cf86f7f
AO
330 ;;
331 ?:/*)
d64552c5 332 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
6cf86f7f
AO
333 ;;
334 *)
d64552c5 335 ac_save_MAGIC_CMD="$MAGIC_CMD"
6cf86f7f
AO
336 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
337dnl $ac_dummy forces splitting on constant user-supplied paths.
338dnl POSIX.2 word splitting is done only on the output of word expansions,
339dnl 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
d64552c5 344 lt_cv_path_MAGIC_CMD="$ac_dir/$1"
6cf86f7f
AO
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 \(.*\)\"`"
d64552c5 349 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
6cf86f7f
AO
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
355
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
364
365EOF
366 fi ;;
367 esac
368 fi
369 break
370 fi
371 done
372 IFS="$ac_save_ifs"
d64552c5 373 MAGIC_CMD="$ac_save_MAGIC_CMD"
6cf86f7f
AO
374 ;;
375esac])
d64552c5
AO
376MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
377if test -n "$MAGIC_CMD"; then
378 AC_MSG_RESULT($MAGIC_CMD)
6cf86f7f
AO
379else
380 AC_MSG_RESULT(no)
381fi
382])
383
384
385# AC_PATH_MAGIC - find a file program which can recognise a shared library
386AC_DEFUN(AC_PATH_MAGIC,
387[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
388AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
d64552c5 389if test -z "$lt_cv_path_MAGIC_CMD"; then
6cf86f7f
AO
390 if test -n "$ac_tool_prefix"; then
391 AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
392 else
d64552c5 393 MAGIC_CMD=:
6cf86f7f
AO
394 fi
395fi
396])
397
398
399# AC_PROG_LD - find the path to the GNU or non-GNU linker
400AC_DEFUN(AC_PROG_LD,
401[AC_ARG_WITH(gnu-ld,
402[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
403test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
404AC_REQUIRE([AC_PROG_CC])dnl
405AC_REQUIRE([AC_CANONICAL_HOST])dnl
406AC_REQUIRE([AC_CANONICAL_BUILD])dnl
407ac_prog=ld
408if 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.
420changequote(,)dnl
421 [\\/]* | [A-Za-z]:[\\/]*)
422 re_direlt='/[^/][^/]*/\.\./'
423changequote([,])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
440elif test "$with_gnu_ld" = yes; then
441 AC_MSG_CHECKING([for GNU ld])
442else
443 AC_MSG_CHECKING([for non-GNU ld])
444fi
445AC_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"
463else
464 ac_cv_path_LD="$LD" # Let the user override the test with a path.
465fi])
466LD="$ac_cv_path_LD"
467if test -n "$LD"; then
468 AC_MSG_RESULT($LD)
469else
470 AC_MSG_RESULT(no)
471fi
472test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
473AC_PROG_LD_GNU
474])
475
476AC_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.
479if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
480 ac_cv_prog_gnu_ld=yes
481else
482 ac_cv_prog_gnu_ld=no
483fi])
484with_gnu_ld=$ac_cv_prog_gnu_ld
485])
486
487# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
488# -- PORTME Some linkers may need a different reload flag.
489AC_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'])
492reload_flag=$lt_cv_ld_reload_flag
493test -n "$reload_flag" && reload_flag=" $reload_flag"
494])
495
496# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
497# -- PORTME fill in with the dynamic library characteristics
498AC_DEFUN(AC_DEPLIBS_CHECK_METHOD,
499[AC_CACHE_CHECK([how to recognise dependant libraries],
500lt_cv_deplibs_check_method,
d64552c5 501[lt_cv_file_magic_cmd='$MAGIC_CMD'
6cf86f7f
AO
502lt_cv_file_magic_test_file=
503lt_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.
514
515case "$host_os" in
516aix4*)
517 lt_cv_deplibs_check_method=pass_all
518 ;;
519
520beos*)
521 lt_cv_deplibs_check_method=pass_all
522 ;;
523
524bsdi4*)
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 ;;
531
d64552c5 532cygwin* | mingw* |pw32*)
6cf86f7f 533 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
d64552c5 534 lt_cv_file_magic_cmd='$OBJDUMP -f'
6cf86f7f
AO
535 ;;
536
537freebsd* )
538 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
539 case "$host_cpu" in
540 i*86 )
103a2e99
AO
541 # Not sure whether the presence of OpenBSD here was a mistake.
542 # Let's accept both of them until this is cleared up.
6cf86f7f 543 changequote(,)dnl
103a2e99 544 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
6cf86f7f
AO
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 ;;
554
555gnu*)
556 lt_cv_deplibs_check_method=pass_all
557 ;;
558
559hpux10.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 ;;
565
566irix5* | 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 ;;
588
589# This must be Linux ELF.
103a2e99 590linux-gnu*)
6cf86f7f
AO
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 ;;
602
603netbsd*)
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 ;;
613
614osf3* | 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 ;;
620
621sco3.2v5*)
622 lt_cv_deplibs_check_method=pass_all
623 ;;
624
625solaris*)
626 lt_cv_deplibs_check_method=pass_all
627 lt_cv_file_magic_test_file=/lib/libc.so
628 ;;
629
630sysv4 | 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 ;;
643esac
644])
645file_magic_cmd=$lt_cv_file_magic_cmd
646deplibs_check_method=$lt_cv_deplibs_check_method
647])
648
649
650# AC_PROG_NM - find the path to a BSD-compatible name lister
651AC_DEFUN(AC_PROG_NM,
652[AC_MSG_CHECKING([for BSD-compatible nm])
653AC_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"
657else
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
103a2e99
AO
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
6cf86f7f
AO
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
681fi])
682NM="$ac_cv_path_NM"
683AC_MSG_RESULT([$NM])
684])
685
686# AC_CHECK_LIBM - check for math library
687AC_DEFUN(AC_CHECK_LIBM,
688[AC_REQUIRE([AC_CANONICAL_HOST])dnl
689LIBM=
690case "$host" in
d64552c5 691*-*-beos* | *-*-cygwin* | *-*-pw32*)
6cf86f7f
AO
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 ;;
698*)
699 AC_CHECK_LIB(m, main, LIBM="-lm")
700 ;;
701esac
702])
703
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.
714AC_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'])
722])
723
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.
735AC_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
753])
754
755# If this macro is not defined by Autoconf, define it here.
756ifdef([AC_PROVIDE_IFELSE],
757 [],
758 [define([AC_PROVIDE_IFELSE],
759 [ifdef([AC_PROVIDE_$1],
760 [$2], [$3])])])
761
762# AC_LIBTOOL_CXX - enable support for C++ libraries
763AC_DEFUN(AC_LIBTOOL_CXX,[AC_REQUIRE([_AC_LIBTOOL_CXX])])
764AC_DEFUN(_AC_LIBTOOL_CXX,
765[AC_REQUIRE([AC_PROG_LIBTOOL])
766AC_REQUIRE([AC_PROG_CXX])
767AC_REQUIRE([AC_PROG_CXXCPP])
768LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
769lt_save_CC="$CC"
770lt_save_CFLAGS="$CFLAGS"
771dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
772dnl is set to the C++ compiler.
773AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
d64552c5 774MAGIC_CMD="$MAGIC_CMD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
6cf86f7f
AO
775LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
776AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
777objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
778deplibs_check_method="$deplibs_check_method" \
779file_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])
783CC="$lt_save_CC"
784CFLAGS="$lt_save_CFLAGS"
785
786# Redirect the config.log output again, so that the ltconfig log is not
787# clobbered by the next message.
788exec 5>>./config.log
789])
790
791# AC_LIBTOOL_GCJ - enable support for GCJ libraries
792AC_DEFUN(AC_LIBTOOL_GCJ,[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
793AC_DEFUN(_AC_LIBTOOL_GCJ,
794[AC_REQUIRE([AC_PROG_LIBTOOL])
795AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
796 [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
d64552c5
AO
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])])])])])])
6cf86f7f
AO
801LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
802lt_save_CC="$CC"
803lt_save_CFLAGS="$CFLAGS"
804dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
805dnl is set to the C++ compiler.
ef099754 806AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="$CPPFLAGS" \
d64552c5 807MAGIC_CMD="$MAGIC_CMD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
6cf86f7f
AO
808LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
809AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
810objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
811deplibs_check_method="$deplibs_check_method" \
812file_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])
816CC="$lt_save_CC"
817CFLAGS="$lt_save_CFLAGS"
818
819# Redirect the config.log output again, so that the ltconfig log is not
820# clobbered by the next message.
821exec 5>>./config.log
822])
823
824dnl old names
825AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
826AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
827AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
828AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
829AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
830AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
831AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
832
833dnl This is just to silence aclocal about the macro not being used
834ifelse([AC_DISABLE_FAST_INSTALL])dnl
103a2e99
AO
835
836AC_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)
840])