source: trunk/src/binutils/libtool.m4@ 608

Last change on this file since 608 was 193, checked in by bird, 23 years ago

OS/2 should set lt_cv_deplibs_check_method=pass_all.

  • Property cvs2svn:cvs-rev set to 1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 28.5 KB
Line 
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 <[email protected]>, 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],
41 [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
42 [AC_LIBTOOL_GCJ],
43 [ifdef([AC_PROG_GCJ],
44 [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ
45])])
46 ifdef([A][M_PROG_GCJ],
47 [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ
48])])
49 ifdef([LT_AC_PROG_GCJ],
50 [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ
51])])])])])])
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" \
63MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
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*)
108 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
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],
177[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
178 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
179 AC_CHECK_TOOL(AS, as, false)
180 AC_CHECK_TOOL(OBJDUMP, objdump, false)
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" ;;
199 *-*-cygwin* | *-*-pw32*)
200 # cygwin systems need to pass --dll to the linker, and not link
201 # crt.o which will require a WinMain@16 definition.
202 lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
203 esac
204 ;;
205 ])
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