source: trunk/src/gcc/libtool.m4@ 1660

Last change on this file since 1660 was 1479, checked in by bird, 21 years ago

Joined gcc 3.3.4 with head.

  • Property cvs2svn:cvs-rev set to 1.6
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 30.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 46 AC_PROG_LIBTOOL
26AC_DEFUN([AC_PROG_LIBTOOL],
27[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
28dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
29dnl 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
35dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
36dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
37dnl 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
54AC_DEFUN([_AC_PROG_LIBTOOL],
55[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
56AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
57AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
58
59# Save cache, so that ltconfig can load it
60AC_CACHE_SAVE
61
62# Actually configure libtool. ac_aux_dir is where install-sh is found.
63AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
64MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
65LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
66AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
67objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
68deplibs_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
74AC_CACHE_LOAD
75
76# This can be used to rebuild libtool when needed
77LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
78
79# Always use our own libtool.
80LIBTOOL='$(SHELL) $(top_builddir)/libtool'
81AC_SUBST(LIBTOOL)dnl
82
83# Redirect the config.log output again, so that the ltconfig log is not
84# clobbered by the next message.
85exec 5>>./config.log
86])
87
88AC_DEFUN([AC_LIBTOOL_SETUP],
89[AC_PREREQ(2.13)dnl
90AC_REQUIRE([AC_ENABLE_SHARED])dnl
91AC_REQUIRE([AC_ENABLE_STATIC])dnl
92AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
93AC_REQUIRE([AC_CANONICAL_HOST])dnl
94AC_REQUIRE([AC_CANONICAL_BUILD])dnl
95AC_REQUIRE([AC_PROG_CC])dnl
96AC_REQUIRE([AC_PROG_LD])dnl
97AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
98AC_REQUIRE([AC_PROG_NM])dnl
99AC_REQUIRE([AC_PROG_LN_S])dnl
100AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
101# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
102AC_REQUIRE([AC_OBJEXT])dnl
103AC_REQUIRE([AC_EXEEXT])dnl
104dnl
105
106# Only perform the check for file, if the check method requires it
107case $deplibs_check_method in
108file_magic*)
109 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
110 AC_PATH_MAGIC
111 fi
112 ;;
113esac
114
115AC_CHECK_TOOL(RANLIB, ranlib, :)
116AC_CHECK_TOOL(STRIP, strip, :)
117
118# Check for any special flags to pass to ltconfig.
119libtool_flags="--cache-file=$cache_file"
120test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
121test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
122test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
123test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
124test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
125ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
126[libtool_flags="$libtool_flags --enable-dlopen"])
127ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
128[libtool_flags="$libtool_flags --enable-win32-dll"])
129AC_ARG_ENABLE(libtool-lock,
130 [ --disable-libtool-lock avoid locking (might break parallel builds)])
131test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
132test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
133
134AC_ARG_WITH(pic,
135 [ --with-pic try to use only PIC/non-PIC objects [default=use both]],
136 pic_mode="$withval", pic_mode=default)
137test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
138test 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.
142case $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 if test "$lt_cv_prog_gnu_ld" = yes; then
148 case `/usr/bin/file conftest.$ac_objext` in
149 *32-bit*)
150 LD="${LD-ld} -melf32bsmip"
151 ;;
152 *N32*)
153 LD="${LD-ld} -melf32bmipn32"
154 ;;
155 *64-bit*)
156 LD="${LD-ld} -melf64bmip"
157 ;;
158 esac
159 else
160 case `/usr/bin/file conftest.$ac_objext` in
161 *32-bit*)
162 LD="${LD-ld} -32"
163 ;;
164 *N32*)
165 LD="${LD-ld} -n32"
166 ;;
167 *64-bit*)
168 LD="${LD-ld} -64"
169 ;;
170 esac
171 fi
172 fi
173 rm -rf conftest*
174 ;;
175
176ia64-*-hpux*)
177 # Find out which ABI we are using.
178 echo 'int i;' > conftest.$ac_ext
179 if AC_TRY_EVAL(ac_compile); then
180 case "`/usr/bin/file conftest.o`" in
181 *ELF-32*)
182 HPUX_IA64_MODE="32"
183 ;;
184 *ELF-64*)
185 HPUX_IA64_MODE="64"
186 ;;
187 esac
188 fi
189 rm -rf conftest*
190 ;;
191
192x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
193 # Find out which ABI we are using.
194 echo 'int i;' > conftest.$ac_ext
195 if AC_TRY_EVAL(ac_compile); then
196 case "`/usr/bin/file conftest.o`" in
197 *32-bit*)
198 case $host in
199 x86_64-*linux*)
200 LD="${LD-ld} -m elf_i386"
201 ;;
202 ppc64-*linux*|powerpc64-*linux*)
203 LD="${LD-ld} -m elf32ppclinux"
204 ;;
205 s390x-*linux*)
206 LD="${LD-ld} -m elf_s390"
207 ;;
208 sparc64-*linux*)
209 LD="${LD-ld} -m elf32_sparc"
210 ;;
211 esac
212 ;;
213 *64-bit*)
214 case $host in
215 x86_64-*linux*)
216 LD="${LD-ld} -m elf_x86_64"
217 ;;
218 ppc*-*linux*|powerpc*-*linux*)
219 LD="${LD-ld} -m elf64ppc"
220 ;;
221 s390*-*linux*)
222 LD="${LD-ld} -m elf64_s390"
223 ;;
224 sparc*-*linux*)
225 LD="${LD-ld} -m elf64_sparc"
226 ;;
227 esac
228 ;;
229 esac
230 fi
231 rm -rf conftest*
232 ;;
233
234*-*-sco3.2v5*)
235 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
236 SAVE_CFLAGS="$CFLAGS"
237 CFLAGS="$CFLAGS -belf"
238 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
239 [AC_LANG_SAVE
240 AC_LANG_C
241 AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
242 AC_LANG_RESTORE])
243 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
244 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
245 CFLAGS="$SAVE_CFLAGS"
246 fi
247 ;;
248
249ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
250[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
251 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
252 AC_CHECK_TOOL(AS, as, false)
253 AC_CHECK_TOOL(OBJDUMP, objdump, false)
254
255 # recent cygwin and mingw systems supply a stub DllMain which the user
256 # can override, but on older systems we have to supply one
257 AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
258 [AC_TRY_LINK([],
259 [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
260 DllMain (0, 0, 0);],
261 [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
262
263 case $host/$CC in
264 *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
265 # old mingw systems require "-dll" to link a DLL, while more recent ones
266 # require "-mdll"
267 SAVE_CFLAGS="$CFLAGS"
268 CFLAGS="$CFLAGS -mdll"
269 AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
270 [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
271 CFLAGS="$SAVE_CFLAGS" ;;
272 *-*-cygwin* | *-*-pw32*)
273 # cygwin systems need to pass --dll to the linker, and not link
274 # crt.o which will require a WinMain@16 definition.
275 lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
276 esac
277 ;;
278 ])
279esac
280])
281
282# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
283AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
284
285# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
286AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
287
288# AC_ENABLE_SHARED - implement the --enable-shared flag
289# Usage: AC_ENABLE_SHARED[(DEFAULT)]
290# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
291# `yes'.
292AC_DEFUN([AC_ENABLE_SHARED],
293[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
294AC_ARG_ENABLE(shared,
295changequote(<<, >>)dnl
296<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
297changequote([, ])dnl
298[p=${PACKAGE-default}
299case $enableval in
300yes) enable_shared=yes ;;
301no) enable_shared=no ;;
302*)
303 enable_shared=no
304 # Look at the argument we got. We use all the common list separators.
305 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
306 for pkg in $enableval; do
307 if test "X$pkg" = "X$p"; then
308 enable_shared=yes
309 fi
310 done
311 IFS="$ac_save_ifs"
312 ;;
313esac],
314enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
315])
316
317# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
318AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
319AC_ENABLE_SHARED(no)])
320
321# AC_ENABLE_STATIC - implement the --enable-static flag
322# Usage: AC_ENABLE_STATIC[(DEFAULT)]
323# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
324# `yes'.
325AC_DEFUN([AC_ENABLE_STATIC],
326[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
327AC_ARG_ENABLE(static,
328changequote(<<, >>)dnl
329<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
330changequote([, ])dnl
331[p=${PACKAGE-default}
332case $enableval in
333yes) enable_static=yes ;;
334no) enable_static=no ;;
335*)
336 enable_static=no
337 # Look at the argument we got. We use all the common list separators.
338 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
339 for pkg in $enableval; do
340 if test "X$pkg" = "X$p"; then
341 enable_static=yes
342 fi
343 done
344 IFS="$ac_save_ifs"
345 ;;
346esac],
347enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
348])
349
350# AC_DISABLE_STATIC - set the default static flag to --disable-static
351AC_DEFUN([AC_DISABLE_STATIC],
352[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
353AC_ENABLE_STATIC(no)])
354
355
356# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
357# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
358# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
359# `yes'.
360AC_DEFUN([AC_ENABLE_FAST_INSTALL],
361[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
362AC_ARG_ENABLE(fast-install,
363changequote(<<, >>)dnl
364<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
365changequote([, ])dnl
366[p=${PACKAGE-default}
367case $enableval in
368yes) enable_fast_install=yes ;;
369no) enable_fast_install=no ;;
370*)
371 enable_fast_install=no
372 # Look at the argument we got. We use all the common list separators.
373 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
374 for pkg in $enableval; do
375 if test "X$pkg" = "X$p"; then
376 enable_fast_install=yes
377 fi
378 done
379 IFS="$ac_save_ifs"
380 ;;
381esac],
382enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
383])
384
385# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
386AC_DEFUN([AC_DISABLE_FAST_INSTALL],
387[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
388AC_ENABLE_FAST_INSTALL(no)])
389
390# AC_LIBTOOL_PICMODE - implement the --with-pic flag
391# Usage: AC_LIBTOOL_PICMODE[(MODE)]
392# Where MODE is either `yes' or `no'. If omitted, it defaults to
393# `both'.
394AC_DEFUN([AC_LIBTOOL_PICMODE],
395[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
396pic_mode=ifelse($#,1,$1,default)])
397
398
399# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
400AC_DEFUN([AC_PATH_TOOL_PREFIX],
401[AC_MSG_CHECKING([for $1])
402AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
403[case $MAGIC_CMD in
404 /*)
405 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
406 ;;
407 ?:/*)