]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/configure.in
java-tree.h (otable_methods, [...]): New field/global tree definitions.
[thirdparty/gcc.git] / gcc / configure.in
CommitLineData
1322177d 1# configure.in for GCC
46f18e7b
RK
2# Process this file with autoconf to generate a configuration script.
3
fd939e46 4# Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
46f18e7b 5
1322177d 6#This file is part of GCC.
46f18e7b 7
1322177d
LB
8#GCC is free software; you can redistribute it and/or modify it under
9#the terms of the GNU General Public License as published by the Free
10#Software Foundation; either version 2, or (at your option) any later
11#version.
46f18e7b 12
1322177d
LB
13#GCC is distributed in the hope that it will be useful, but WITHOUT
14#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16#for more details.
46f18e7b
RK
17
18#You should have received a copy of the GNU General Public License
1322177d
LB
19#along with GCC; see the file COPYING. If not, write to the Free
20#Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21#02111-1307, USA.
46f18e7b
RK
22
23# Initialization and defaults
890ad3ea 24AC_PREREQ(2.13)
46f18e7b 25AC_INIT(tree.c)
b7cb92ad 26AC_CONFIG_HEADER(auto-host.h:config.in)
cdcc6a01 27
46f18e7b
RK
28remove=rm
29hard_link=ln
30symbolic_link='ln -s'
31copy=cp
32
75a39864
JL
33# Check for bogus environment variables.
34# Test if LIBRARY_PATH contains the notation for the current directory
35# since this would lead to problems installing/building glibc.
36# LIBRARY_PATH contains the current directory if one of the following
37# is true:
38# - one of the terminals (":" and ";") is the first or last sign
39# - two terminals occur directly after each other
40# - the path contains an element with a dot in it
41AC_MSG_CHECKING(LIBRARY_PATH variable)
42changequote(,)dnl
43case ${LIBRARY_PATH} in
44 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
45 library_path_setting="contains current directory"
46 ;;
47 *)
48 library_path_setting="ok"
49 ;;
50esac
51changequote([,])dnl
52AC_MSG_RESULT($library_path_setting)
53if test "$library_path_setting" != "ok"; then
54AC_MSG_ERROR([
55*** LIBRARY_PATH shouldn't contain the current directory when
079bd08e 56*** building gcc. Please change the environment variable
75a39864
JL
57*** and run configure again.])
58fi
59
60# Test if GCC_EXEC_PREFIX contains the notation for the current directory
61# since this would lead to problems installing/building glibc.
62# GCC_EXEC_PREFIX contains the current directory if one of the following
63# is true:
64# - one of the terminals (":" and ";") is the first or last sign
65# - two terminals occur directly after each other
66# - the path contains an element with a dot in it
67AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
68changequote(,)dnl
69case ${GCC_EXEC_PREFIX} in
70 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
71 gcc_exec_prefix_setting="contains current directory"
72 ;;
73 *)
74 gcc_exec_prefix_setting="ok"
75 ;;
76esac
77changequote([,])dnl
78AC_MSG_RESULT($gcc_exec_prefix_setting)
79if test "$gcc_exec_prefix_setting" != "ok"; then
80AC_MSG_ERROR([
81*** GCC_EXEC_PREFIX shouldn't contain the current directory when
079bd08e 82*** building gcc. Please change the environment variable
75a39864
JL
83*** and run configure again.])
84fi
85
46f18e7b
RK
86# Check for additional parameters
87
88# With GNU ld
89AC_ARG_WITH(gnu-ld,
90[ --with-gnu-ld arrange to work with GNU ld.],
df6faf79
JW
91gnu_ld_flag="$with_gnu_ld",
92gnu_ld_flag=no)
46f18e7b 93
ab339d62
AO
94# With pre-defined ld
95AC_ARG_WITH(ld,
e8bec136 96[ --with-ld arrange to use the specified ld (full pathname)],
3ccc3a56
AO
97DEFAULT_LINKER="$with_ld")
98if test x"${DEFAULT_LINKER+set}" = x"set"; then
99 if test ! -x "$DEFAULT_LINKER"; then
100 AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
e154a394 101 elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
ab339d62
AO
102 gnu_ld_flag=yes
103 fi
119d24d1
KG
104 AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
105 [Define to enable the use of a default linker.])
ab339d62
AO
106fi
107
46f18e7b
RK
108# With GNU as
109AC_ARG_WITH(gnu-as,
e8bec136 110[ --with-gnu-as arrange to work with GNU as],
df6faf79
JW
111gas_flag="$with_gnu_as",
112gas_flag=no)
46f18e7b 113
ab339d62 114AC_ARG_WITH(as,
e8bec136 115[ --with-as arrange to use the specified as (full pathname)],
3ccc3a56
AO
116DEFAULT_ASSEMBLER="$with_as")
117if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
118 if test ! -x "$DEFAULT_ASSEMBLER"; then
119 AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
e154a394 120 elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
ab339d62
AO
121 gas_flag=yes
122 fi
119d24d1
KG
123 AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
124 [Define to enable the use of a default assembler.])
3ccc3a56 125fi
ab339d62 126
46f18e7b
RK
127# With stabs
128AC_ARG_WITH(stabs,
e8bec136 129[ --with-stabs arrange to use stabs instead of host debug format],
535b86ce 130stabs="$with_stabs",
46f18e7b
RK
131stabs=no)
132
133# With ELF
134AC_ARG_WITH(elf,
e8bec136 135[ --with-elf arrange to use ELF instead of host debug format],
535b86ce 136elf="$with_elf",
46f18e7b
RK
137elf=no)
138
4d8392b7 139# Specify the local prefix
4e88d51b 140local_prefix=
4d8392b7 141AC_ARG_WITH(local-prefix,
e8bec136 142[ --with-local-prefix=DIR specifies directory to put local include],
4e88d51b
JM
143[case "${withval}" in
144yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
145no) ;;
146*) local_prefix=$with_local_prefix ;;
147esac])
4d8392b7
RK
148
149# Default local prefix if it is empty
75bffa71 150if test x$local_prefix = x; then
4d8392b7
RK
151 local_prefix=/usr/local
152fi
153
8f8d3278
NC
154# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
155# passed in by the toplevel make and thus we'd get different behavior
156# depending on where we built the sources.
157gcc_gxx_include_dir=
9514f0d1
RK
158# Specify the g++ header file directory
159AC_ARG_WITH(gxx-include-dir,
160[ --with-gxx-include-dir=DIR
e8bec136 161 specifies directory to put g++ header files],
4e88d51b
JM
162[case "${withval}" in
163yes) AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
164no) ;;
8f8d3278 165*) gcc_gxx_include_dir=$with_gxx_include_dir ;;
4e88d51b
JM
166esac])
167
8f8d3278 168if test x${gcc_gxx_include_dir} = x; then
4e88d51b 169 if test x${enable_version_specific_runtime_libs} = xyes; then
8f8d3278 170 gcc_gxx_include_dir='${libsubdir}/include/g++'
4e88d51b 171 else
a270b446 172 topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
de82584d 173changequote(<<, >>)dnl
e2187d3b 174 gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
de82584d 175changequote([, ])dnl
4e88d51b
JM
176 fi
177fi
46f18e7b 178
39d6f2e8
MM
179# Determine whether or not multilibs are enabled.
180AC_ARG_ENABLE(multilib,
e8bec136 181[ --enable-multilib enable library support for multiple ABIs],
39d6f2e8
MM
182[], [enable_multilib=yes])
183AC_SUBST(enable_multilib)
184
a494747c
MM
185# Enable expensive internal checks
186AC_ARG_ENABLE(checking,
f4524c9e
ZW
187[ --enable-checking[=LIST]
188 enable expensive run-time checks. With LIST,
189 enable only specific categories of checks.
190 Categories are: misc,tree,rtl,gc,gcac; default
59f406b7 191 is misc,tree,gc],
119d24d1
KG
192[ac_checking=
193ac_tree_checking=
194ac_rtl_checking=
195ac_gc_checking=
196ac_gc_always_collect=
197case "${enableval}" in
51d0e20c 198yes) ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;;
4e88d51b 199no) ;;
59f406b7 200*) IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
f4524c9e
ZW
201 set fnord $enableval; shift
202 IFS="$ac_save_IFS"
c62e45ad
KG
203 for check
204 do
f4524c9e 205 case $check in
119d24d1
KG
206 misc) ac_checking=1 ;;
207 tree) ac_tree_checking=1 ;;
208 rtl) ac_rtl_checking=1 ;;
209 gc) ac_gc_checking=1 ;;
210 gcac) ac_gc_always_collect=1 ;;
f4524c9e
ZW
211 *) AC_MSG_ERROR(unknown check category $check) ;;
212 esac
213 done
214 ;;
119d24d1 215esac
51d0e20c
AJ
216],
217# Enable some checks by default for development versions of GCC
218[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1;])
119d24d1
KG
219if test x$ac_checking != x ; then
220 AC_DEFINE(ENABLE_CHECKING, 1,
221[Define if you want more run-time sanity checks. This one gets a grab
222 bag of miscellaneous but relatively cheap checks.])
223fi
224if test x$ac_tree_checking != x ; then
225 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
226[Define if you want all operations on trees (the basic data
227 structure of the front ends) to be checked for dynamic type safety
228 at runtime. This is moderately expensive.])
229fi
230if test x$ac_rtl_checking != x ; then
231 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
232[Define if you want all operations on RTL (the basic data structure
233 of the optimizer and back end) to be checked for dynamic type safety
234 at runtime. This is quite expensive.])
235fi
236if test x$ac_gc_checking != x ; then
237 AC_DEFINE(ENABLE_GC_CHECKING, 1,
238[Define if you want the garbage collector to do object poisoning and
239 other memory allocation checks. This is quite expensive.])
240fi
241if test x$ac_gc_always_collect != x ; then
242 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
243[Define if you want the garbage collector to operate in maximally
244 paranoid mode, validating the entire heap and collecting garbage at
245 every opportunity. This is extremely expensive.])
246fi
51d0e20c 247
a494747c 248
3ecc3258 249AC_ARG_ENABLE(cpp,
e8bec136 250[ --disable-cpp don't provide a user-visible C preprocessor],
3ecc3258
ZW
251[], [enable_cpp=yes])
252
253AC_ARG_WITH(cpp_install_dir,
254[ --with-cpp-install-dir=DIR
255 install the user visible C preprocessor in DIR
e8bec136 256 (relative to PREFIX) as well as PREFIX/bin],
3ecc3258
ZW
257[if test x$withval = xyes; then
258 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
259elif test x$withval != xno; then
260 cpp_install_dir=$withval
261fi])
262
c5c76735
JL
263# Enable Multibyte Characters for C/C++
264AC_ARG_ENABLE(c-mbchar,
e8bec136 265[ --enable-c-mbchar enable multibyte characters for C and C++],
2618c083 266if test x$enable_c_mbchar != xno; then
9ec7291f
ZW
267 AC_DEFINE(MULTIBYTE_CHARS, 1,
268 [Define if you want the C and C++ compilers to support multibyte
269 character sets for source code.])
c5c76735
JL
270fi)
271
0bbb1697
RK
272# Enable threads
273# Pass with no value to take the default
274# Pass with a value to specify a thread package
275AC_ARG_ENABLE(threads,
e8bec136
RO
276[ --enable-threads enable thread usage for target GCC
277 --enable-threads=LIB use LIB thread package for target GCC],,
0bbb1697
RK
278enable_threads='')
279
e445171e 280enable_threads_flag=$enable_threads
0bbb1697 281# Check if a valid thread package
e445171e 282case x${enable_threads_flag} in
0bbb1697
RK
283 x | xno)
284 # No threads
a851212a 285 target_thread_file='single'
0bbb1697
RK
286 ;;
287 xyes)
288 # default
a851212a 289 target_thread_file=''
0bbb1697
RK
290 ;;
291 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
e08f13ee 292 xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
e445171e 293 target_thread_file=$enable_threads_flag
0bbb1697
RK
294 ;;
295 *)
296 echo "$enable_threads is an unknown thread package" 1>&2
297 exit 1
298 ;;
299esac
300
d8bb17c8
OP
301AC_ARG_ENABLE(objc-gc,
302[ --enable-objc-gc enable the use of Boehm's garbage collector with
e8bec136 303 the GNU Objective-C runtime],
2618c083 304if test x$enable_objc_gc = xno; then
d8bb17c8
OP
305 objc_boehm_gc=''
306else
307 objc_boehm_gc=1
308fi,
309objc_boehm_gc='')
310
90e6a802 311AC_ARG_WITH(dwarf2,
e8bec136 312[ --with-dwarf2 force the default debug format to be DWARF 2],
90e6a802
RL
313dwarf2="$with_dwarf2",
314dwarf2=no)
315
50503ac8 316AC_ARG_ENABLE(shared,
e8bec136 317[ --disable-shared don't provide a shared libgcc],
c785e0fa
AO
318[
319 case $enable_shared in
320 yes | no) ;;
321 *)
322 enable_shared=no
323 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
324 for pkg in $enableval; do
325 if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
326 enable_shared=yes
327 fi
328 done
329 IFS="$ac_save_ifs"
330 ;;
331 esac
332], [enable_shared=yes])
50503ac8
RH
333AC_SUBST(enable_shared)
334
46f18e7b
RK
335# Determine the host, build, and target systems
336AC_CANONICAL_SYSTEM
337
b21d216c
AF
338# Set program_transform_name
339AC_ARG_PROGRAM
340
e9a25f70
JL
341# Find the native compiler
342AC_PROG_CC
3ec83fc2 343AC_PROG_CC_C_O
b8dad04b 344# autoconf is lame and doesn't give us any substitution variable for this.
e38df833 345if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
b4c7e567 346 NO_MINUS_C_MINUS_O=yes
b8dad04b
ZW
347else
348 OUTPUT_OPTION='-o $@'
b4c7e567 349fi
3ec83fc2 350AC_SUBST(NO_MINUS_C_MINUS_O)
b8dad04b 351AC_SUBST(OUTPUT_OPTION)
3ec83fc2 352
97d81d66
JM
353AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
354ac_cv_prog_cc_no_long_long,
355[save_CFLAGS="$CFLAGS"
356CFLAGS="-Wno-long-long"
357AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
358 ac_cv_prog_cc_no_long_long=no)
359CFLAGS="$save_CFLAGS"])
b8dad04b
ZW
360strict1_warn=
361if test $ac_cv_prog_cc_no_long_long = yes; then
362 strict1_warn="-pedantic -Wno-long-long"
363fi
364AC_SUBST(strict1_warn)
ff5def20 365
84c041a1 366AC_PROG_CPP
75e93faa
ZW
367AC_C_INLINE
368gcc_AC_C_VOLATILE
369
370gcc_AC_C_LONG_DOUBLE
371gcc_AC_C_LONG_LONG
827ae6cf 372gcc_AC_C__BOOL
75e93faa
ZW
373
374# sizeof(char) is 1 by definition.
375gcc_AC_COMPILE_CHECK_SIZEOF(short)
376gcc_AC_COMPILE_CHECK_SIZEOF(int)
377gcc_AC_COMPILE_CHECK_SIZEOF(long)
378if test $ac_cv_c_long_long = yes; then
379 gcc_AC_COMPILE_CHECK_SIZEOF(long long)
380fi
381if test $ac_cv_c___int64 = yes; then
382 gcc_AC_COMPILE_CHECK_SIZEOF(__int64)
383fi
384
84c041a1 385gcc_AC_C_CHARSET
84c041a1 386
61842080
MM
387# If the native compiler is GCC, we can enable warnings even in stage1.
388# That's useful for people building cross-compilers, or just running a
389# quick `make'.
b8dad04b
ZW
390warn_cflags=
391if test "x$GCC" = "xyes"; then
392 warn_cflags='$(GCC_WARN_CFLAGS)'
61842080 393fi
b8dad04b 394AC_SUBST(warn_cflags)
5b67ad6f
DA
395
396# Stage specific cflags for build.
b8dad04b 397stage1_cflags=
5b67ad6f
DA
398case $build in
399vax-*-*)
400 if test x$GCC = xyes
401 then
b8dad04b 402 stage1_cflags="-Wa,-J"
5b67ad6f 403 else
b8dad04b 404 stage1_cflags="-J"
5b67ad6f
DA
405 fi
406 ;;
407esac
b8dad04b 408AC_SUBST(stage1_cflags)
61842080 409
e9a25f70
JL
410AC_PROG_MAKE_SET
411
ab339d62 412AC_MSG_CHECKING([whether a default assembler was specified])
3ccc3a56 413if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
e154a394 414 if test x"$gas_flag" = x"no"; then
3ccc3a56 415 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
ab339d62 416 else
3ccc3a56 417 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
ab339d62
AO
418 fi
419else
420 AC_MSG_RESULT(no)
421fi
422
423AC_MSG_CHECKING([whether a default linker was specified])
3ccc3a56 424if test x"${DEFAULT_LINKER+set}" = x"set"; then
e154a394 425 if test x"$gnu_ld_flag" = x"no"; then
3ccc3a56 426 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
ab339d62 427 else
3ccc3a56 428 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
ab339d62
AO
429 fi
430else
431 AC_MSG_RESULT(no)
432fi
433
4070d885
AJ
434AC_MSG_CHECKING(for GNU C library)
435AC_CACHE_VAL(gcc_cv_glibc,
436[AC_TRY_COMPILE(
437 [#include <features.h>],[
438#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
439#error Not a GNU C library system
440#endif],
441 [gcc_cv_glibc=yes],
442 gcc_cv_glibc=no)])
443AC_MSG_RESULT($gcc_cv_glibc)
c2f7d403 444if test $gcc_cv_glibc = yes; then
4070d885
AJ
445 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
446fi
4797e955 447
46f18e7b
RK
448# Find some useful tools
449AC_PROG_AWK
99e757d5
KG
450gcc_AC_PROG_LN
451gcc_AC_PROG_LN_S
46f18e7b 452AC_PROG_RANLIB
99e757d5 453gcc_AC_PROG_INSTALL
46f18e7b 454
956d6950
JL
455AC_HEADER_STDC
456AC_HEADER_TIME
827ae6cf 457gcc_AC_HEADER_STDBOOL
99e757d5 458gcc_AC_HEADER_STRING
e9831ca0 459AC_HEADER_SYS_WAIT
03c41c05 460AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
7719ffbf 461 fcntl.h unistd.h sys/file.h sys/time.h \
03c41c05 462 sys/resource.h sys/param.h sys/times.h sys/stat.h \
f91abfce 463 direct.h malloc.h langinfo.h)
7636d567 464
f24af81b
TT
465# Check for thread headers.
466AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
467AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
468
84c041a1 469# These tests can't be done till we know if we have limits.h.
75e93faa 470gcc_AC_C_CHAR_BIT
2d6eb5bf
ZW
471gcc_AC_C_COMPILE_ENDIAN
472gcc_AC_C_FLOAT_FORMAT
75e93faa 473
bcf12124 474# See if GNAT has been installed
67f28219 475gcc_AC_PROG_GNAT
bcf12124 476
955be633
JM
477# See if we have the mktemp command.
478AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
479
09fa0705
ZW
480# Do we have a single-tree copy of texinfo?
481if test -f $srcdir/../texinfo/Makefile.in; then
482 MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
483 gcc_cv_prog_makeinfo_modern=yes
484 AC_MSG_RESULT([Using makeinfo from the unified source tree.])
485else
486 # See if makeinfo has been installed and is modern enough
487 # that we can use it.
488 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
489 [GNU texinfo.* \([0-9][0-9.]*\)],
fd939e46 490 [4.*])
09fa0705
ZW
491fi
492
493if test $gcc_cv_prog_makeinfo_modern = no; then
494 AC_MSG_WARN([
495*** Makeinfo is missing or too old.
17db6582 496*** Info documentation will not be built.])
09fa0705 497 BUILD_INFO=
09fa0705
ZW
498else
499 BUILD_INFO=info AC_SUBST(BUILD_INFO)
09fa0705
ZW
500fi
501
3f896fc2
JM
502# Is pod2man recent enough to regenerate manpages?
503AC_MSG_CHECKING([for recent Pod::Man])
504if perl -e 'use 1.10 Pod::Man' >/dev/null 2>&1; then
fd939e46
JM
505 AC_MSG_RESULT(yes)
506 GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES)
507else
508 AC_MSG_RESULT(no)
509 GENERATED_MANPAGES=
510fi
511
1e608388
ZW
512# How about lex?
513dnl Don't use AC_PROG_LEX; we insist on flex.
514dnl LEXLIB is not useful in gcc.
515if test -f $srcdir/../flex/skel.c; then
516 FLEX='$(objdir)/../flex/flex'
517else
518 AC_CHECK_PROG(FLEX, flex, flex, false)
519fi
520
521# Bison?
522# The -L switch is so bison can find its skeleton file.
523if test -f $srcdir/../bison/bison.simple; then
524 BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
525else
526 AC_CHECK_PROG(BISON, bison, bison, false)
527fi
528
4e70264f
ZW
529# These libraries may be used by collect2.
530# We may need a special search path to get them linked.
531AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
532[save_LIBS="$LIBS"
7f2749d4 533for libs in '' -lld -lmld \
4e70264f
ZW
534 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
535 '-L/usr/lib/cmplrs/cc3.11 -lmld'
536do
537 LIBS="$libs"
538 AC_TRY_LINK_FUNC(ldopen,
539 [gcc_cv_collect2_libs="$libs"; break])
540done
541LIBS="$save_LIBS"
542test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
543case $gcc_cv_collect2_libs in
544 "none required") ;;
545 *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
546esac
547AC_SUBST(COLLECT2_LIBS)
548
7f2749d4
RK
549# When building Ada code on Alpha, we need exc_resume which is usually in
550# -lexc. So test for it.
551save_LIBS="$LIBS"
552LIBS=
553AC_SEARCH_LIBS(exc_resume, exc)
554GNAT_LIBEXC="$LIBS"
555LIBS="$save_LIBS"
556AC_SUBST(GNAT_LIBEXC)
557
890ad3ea 558# See if the stage1 system preprocessor understands the ANSI C
4bc5fbd4 559# preprocessor stringification operator. (Used by symcat.h.)
890ad3ea 560AC_C_STRINGIZE
76844337 561
7636d567
JW
562# Use <inttypes.h> only if it exists,
563# doesn't clash with <sys/types.h>, and declares intmax_t.
564AC_MSG_CHECKING(for inttypes.h)
565AC_CACHE_VAL(gcc_cv_header_inttypes_h,
566[AC_TRY_COMPILE(
567 [#include <sys/types.h>
568#include <inttypes.h>],
569 [intmax_t i = -1;],
9da0e39b 570 [gcc_cv_header_inttypes_h=yes],
7636d567
JW
571 gcc_cv_header_inttypes_h=no)])
572AC_MSG_RESULT($gcc_cv_header_inttypes_h)
9da0e39b 573if test $gcc_cv_header_inttypes_h = yes; then
119d24d1
KG
574 AC_DEFINE(HAVE_INTTYPES_H, 1,
575 [Define if you have a working <inttypes.h> header file.])
9da0e39b 576fi
cdcc6a01 577
9612ab65
ZW
578dnl Disabled until we have a complete test for buggy enum bitfields.
579dnl gcc_AC_C_ENUM_BF_UNSIGNED
c149cc37 580
6af8c740
KG
581AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
582 sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
583 fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat)
a81fb89e 584
f12bc141 585AC_CHECK_TYPE(ssize_t, int)
56f48ce9 586
e256b8b6
DA
587# Try to determine the array type of the second argument of getgroups
588# for the target system (int or gid_t).
589AC_TYPE_GETGROUPS
590if test "${target}" = "${build}"; then
591 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
592else
593 case "${target}" in
594 # This condition may need some tweaking. It should include all
595 # targets where the array type of the second argument of getgroups
596 # is int and the type of gid_t is not equivalent to int.
597 *-*-sunos* | *-*-ultrix*)
598 TARGET_GETGROUPS_T=int
599 ;;
600 *)
601 TARGET_GETGROUPS_T=gid_t
602 ;;
603 esac
604fi
605AC_SUBST(TARGET_GETGROUPS_T)
606
99e757d5 607gcc_AC_FUNC_PRINTF_PTR
b27d2bd5
MK
608
609case "${host}" in
610*-*-uwin*)
34fa3e7d
MM
611 AC_MSG_ERROR([
612*** UWIN may not be used as a host platform because
613*** linking with posix.dll is not allowed by the GNU GPL])
b27d2bd5 614 ;;
ee262b6f
DR
615*-*-*vms*)
616 # Under VMS, vfork works very different than on Unix. The standard test
617 # won't work, and it isn't easily adaptable. It makes more sense to
618 # just force it.
619 ac_cv_func_vfork_works=yes
620 ;;
b27d2bd5 621esac
c375c43b 622AC_FUNC_VFORK
4acab94b 623AC_FUNC_MMAP_ANYWHERE
56f02b88 624AC_FUNC_MMAP_FILE
f1b54f9b 625
f91abfce
TT
626AM_ICONV
627
86cf1cbd
KG
628# We will need to find libiberty.h and ansidecl.h
629saved_CFLAGS="$CFLAGS"
630CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
8e944909 631gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
3b681e9d
ZW
632 strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
633 fprintf_unlocked strstr environ errno \
c1800ec8 634 malloc realloc calloc free basename getopt clock, , ,[
d02af173 635#include "ansidecl.h"
86cf1cbd 636#include "system.h"])
c5c76735 637
f31e826b 638gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
d02af173 639#include "ansidecl.h"
86cf1cbd 640#include "system.h"
d2cabf16
KG
641#ifdef HAVE_SYS_RESOURCE_H
642#include <sys/resource.h>
643#endif
644])
645
c1800ec8
ZW
646gcc_AC_CHECK_DECLS(times, , ,[
647#include "ansidecl.h"
648#include "system.h"
649#ifdef HAVE_SYS_TIMES_H
650#include <sys/times.h>
651#endif
652])
653
654# More time-related stuff.
655AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
656AC_TRY_COMPILE([
657#include "ansidecl.h"
658#include "system.h"
659#ifdef HAVE_SYS_TIMES_H
660#include <sys/times.h>
661#endif
662], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
663if test $ac_cv_struct_tms = yes; then
664 AC_DEFINE(HAVE_STRUCT_TMS, 1,
665 [Define if <sys/times.h> defines struct tms.])
666fi
667
668# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
669# revisit after autoconf 2.50.
670AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
671AC_TRY_COMPILE([
672#include "ansidecl.h"
673#include "system.h"
674], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
675if test $gcc_cv_type_clock_t = yes; then
676 AC_DEFINE(HAVE_CLOCK_T, 1,
677 [Define if <time.h> defines clock_t.])
678fi
679
86cf1cbd
KG
680# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
681CFLAGS="$saved_CFLAGS"
682
75923b2f 683# mkdir takes a single argument on some systems.
99e757d5 684gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
75923b2f 685
46f18e7b
RK
686# File extensions
687manext='.1'
688objext='.o'
46f18e7b
RK
689AC_SUBST(manext)
690AC_SUBST(objext)
46f18e7b
RK
691
692build_xm_file=
61536478 693build_xm_defines=
46f18e7b
RK
694build_install_headers_dir=install-headers-tar
695build_exeext=
696host_xm_file=
61536478 697host_xm_defines=
46f18e7b
RK
698host_xmake_file=
699host_truncate_target=
6e26218f 700host_exeext=
46f18e7b
RK
701
702# Decode the host machine, then the target machine.
703# For the host machine, we save the xm_file variable as host_xm_file;
704# then we decode the target machine and forget everything else
705# that came from the host machine.
706for machine in $build $host $target; do
61ed06c3 707 . ${srcdir}/config.gcc
46f18e7b
RK
708done
709
710extra_objs="${host_extra_objs} ${extra_objs}"
711
712# Default the target-machine variables that were not explicitly set.
75bffa71 713if test x"$tm_file" = x
46f18e7b
RK
714then tm_file=$cpu_type/$cpu_type.h; fi
715
6b2adea9 716if test x"$extra_headers" = x
46f18e7b
RK
717then extra_headers=; fi
718
75bffa71 719if test x$md_file = x
e98e406f 720then md_file=$cpu_type/$cpu_type.md; fi
46f18e7b 721
75bffa71 722if test x$out_file = x
46f18e7b
RK
723then out_file=$cpu_type/$cpu_type.c; fi
724
75bffa71 725if test x"$tmake_file" = x
46f18e7b
RK
726then tmake_file=$cpu_type/t-$cpu_type
727fi
728
90e6a802 729if test x"$dwarf2" = xyes
756ee602 730then tm_file="$tm_file tm-dwarf2.h"
90e6a802
RL
731fi
732
75bffa71 733if test x$float_format = x
46f18e7b
RK
734then float_format=i64
735fi
736
027ea2a7
JW
737if test $float_format = none
738then float_h_file=Makefile.in
739else float_h_file=float-$float_format.h
740fi
741
9fc9b82a 742# Handle cpp installation.
3ecc3258 743if test x$enable_cpp != xno
9fc9b82a
L
744then
745 tmake_file="$tmake_file t-install-cpp"
746fi
747
46f18e7b 748# Say what files are being used for the output code and MD file.
11642c3a 749echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
46f18e7b
RK
750echo "Using \`$srcdir/config/$md_file' as machine description file."
751
11642c3a 752# If any of the xm_file variables contain nonexistent files, warn
4dc0535b
ZW
753# about them and drop them.
754
11642c3a
ZW
755bx=
756for x in $build_xm_file; do
757 if test -f $srcdir/config/$x
758 then bx="$bx $x"
11642c3a
ZW
759 else AC_MSG_WARN($srcdir/config/$x does not exist.)
760 fi
761done
762build_xm_file="$bx"
763
764hx=
765for x in $host_xm_file; do
766 if test -f $srcdir/config/$x
767 then hx="$hx $x"
11642c3a
ZW
768 else AC_MSG_WARN($srcdir/config/$x does not exist.)
769 fi
770done
771host_xm_file="$hx"
772
773tx=
774for x in $xm_file; do
775 if test -f $srcdir/config/$x
776 then tx="$tx $x"
11642c3a
ZW
777 else AC_MSG_WARN($srcdir/config/$x does not exist.)
778 fi
779done
780xm_file="$tx"
781
46f18e7b
RK
782count=a
783for f in $tm_file; do
784 count=${count}x
785done
75bffa71 786if test $count = ax; then
46f18e7b
RK
787 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
788else
789 echo "Using the following target machine macro files:"
790 for f in $tm_file; do
791 echo " $srcdir/config/$f"
792 done
793fi
794
795count=a
796for f in $host_xm_file; do
797 count=${count}x
798done
11642c3a
ZW
799if test $count = a; then
800 :
801elif test $count = ax; then
46f18e7b
RK
802 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
803else
804 echo "Using the following host machine macro files:"
805 for f in $host_xm_file; do
806 echo " $srcdir/config/$f"
807 done
808fi
809
75bffa71 810if test "$host_xm_file" != "$build_xm_file"; then
46f18e7b
RK
811 count=a
812 for f in $build_xm_file; do
813 count=${count}x
814 done
11642c3a
ZW
815 if test $count = a; then
816 :
817 elif test $count = ax; then
46f18e7b
RK
818 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
819 else
820 echo "Using the following build machine macro files:"
821 for f in $build_xm_file; do
822 echo " $srcdir/config/$f"
823 done
824 fi
825fi
826
75bffa71
ILT
827if test x$thread_file = x; then
828 if test x$target_thread_file != x; then
a851212a
JW
829 thread_file=$target_thread_file
830 else
831 thread_file='single'
832 fi
46f18e7b 833fi
46f18e7b 834
b7cb92ad 835# auto-host.h is the file containing items generated by autoconf and is
e9a25f70 836# the first file included by config.h.
b7cb92ad 837# If host=build, it is correct to have hconfig include auto-host.h
db81d74a
RH
838# as well. If host!=build, we are in error and need to do more
839# work to find out the build config parameters.
75bffa71 840if test x$host = x$build
db81d74a 841then
eaf4e618 842 build_auto=auto-host.h
06f0b04c 843 FORBUILD=..
b7cb92ad
JL
844else
845 # We create a subdir, then run autoconf in the subdir.
846 # To prevent recursion we set host and build for the new
847 # invocation of configure to the build for this invocation
848 # of configure.
849 tempdir=build.$$
850 rm -rf $tempdir
851 mkdir $tempdir
852 cd $tempdir
853 case ${srcdir} in
b86ecfa9 854 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
b7cb92ad
JL
855 *) realsrcdir=../${srcdir};;
856 esac
d920e825
L
857 saved_CFLAGS="${CFLAGS}"
858 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
859 ${realsrcdir}/configure \
b7cb92ad 860 --target=$target --host=$build --build=$build
d920e825 861 CFLAGS="${saved_CFLAGS}"
b7cb92ad
JL
862
863 # We just finished tests for the build machine, so rename
864 # the file auto-build.h in the gcc directory.
865 mv auto-host.h ../auto-build.h
866 cd ..
867 rm -rf $tempdir
eaf4e618 868 build_auto=auto-build.h
06f0b04c 869 FORBUILD=../$build
db81d74a 870fi
06f0b04c 871AC_SUBST(FORBUILD)
db81d74a 872
eaf4e618 873tm_file="${tm_file} defaults.h"
d02af173
ZW
874host_xm_file="auto-host.h ansidecl.h ${host_xm_file} ${tm_file}"
875build_xm_file="${build_auto} ansidecl.h ${build_xm_file} ${tm_file}"
876xm_file="ansidecl.h ${xm_file} ${tm_file}"
0056a9b5 877
46f18e7b 878# Truncate the target if necessary
75bffa71 879if test x$host_truncate_target != x; then
46f18e7b
RK
880 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
881fi
882
f1943b77 883# Get the version trigger filename from the toplevel
75bffa71 884if test "${with_gcc_version_trigger+set}" = set; then
f1943b77
MH
885 gcc_version_trigger=$with_gcc_version_trigger
886else
887 gcc_version_trigger=${srcdir}/version.c
888fi
75bffa71 889changequote(,)dnl
022dae81 890gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
8763704d 891gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
cc1e60ea
JM
892
893# Compile in configure arguments.
8105825d 894if test -f configargs.h ; then
cc1e60ea 895 # Being re-configured.
022dae81 896 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
cc1e60ea
JM
897 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
898else
899 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
900fi
901cat > configargs.h <<EOF
902/* Generated automatically. */
903static const char configuration_arguments[] = "$gcc_config_arguments";
a6687d2b 904static const char thread_model[] = "$thread_file";
cc1e60ea 905EOF
75bffa71 906changequote([,])dnl
46f18e7b 907
ab87f8c8
JL
908# Internationalization
909PACKAGE=gcc
910VERSION="$gcc_version"
119d24d1
KG
911AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",
912 [Define to the name of the distribution.])
913AC_DEFINE_UNQUOTED(VERSION, "$VERSION",
914 [Define to the version of the distribution.])
ab87f8c8
JL
915AC_SUBST(PACKAGE)
916AC_SUBST(VERSION)
917
dc6746e7 918# Enable NLS support by default
ab87f8c8 919AC_ARG_ENABLE(nls,
dc6746e7
PT
920 [ --enable-nls use Native Language Support (default)],
921 , enable_nls=yes)
922
923# if cross compiling, disable NLS support.
924# It's not worth the trouble, at least for now.
925
063a4b85 926if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
dc6746e7
PT
927 AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
928 enable_nls=no
929fi
ab87f8c8
JL
930
931AM_GNU_GETTEXT
ab87f8c8 932
f4ab28e3
MK
933# Windows32 Registry support for specifying GCC installation paths.
934AC_ARG_ENABLE(win32-registry,
935[ --disable-win32-registry
e8bec136
RO
936 disable lookup of installation paths in the
937 Registry on Windows hosts
938 --enable-win32-registry enable registry lookup (default)
f4ab28e3 939 --enable-win32-registry=KEY
e8bec136
RO
940 use KEY instead of GCC version as the last portion
941 of the registry key],,)
4e70264f
ZW
942case $host_os in
943 win32 | pe | cygwin* | mingw32* | uwin*)
f4ab28e3 944AC_MSG_CHECKING(whether windows registry support is requested)
9dd53f2c 945if test "x$enable_win32_registry" != xno; then
119d24d1
KG
946 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
947[Define to 1 if installation paths should be looked up in Windows32
91029a29 948 Registry. Ignored on non windows32 hosts.])
f4ab28e3 949 AC_MSG_RESULT(yes)
4e70264f 950 AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
f4ab28e3
MK
951else
952 AC_MSG_RESULT(no)
953fi
954
955# Check if user specified a different registry key.
9dd53f2c 956case "x${enable_win32_registry}" in
f4ab28e3
MK
957x | xyes)
958 # default.
959 gcc_cv_win32_registry_key="$VERSION"
960 ;;
961xno)
962 # no registry lookup.
963 gcc_cv_win32_registry_key=''
964 ;;
965*)
966 # user-specified key.
967 gcc_cv_win32_registry_key="$enable_win32_registry"
968 ;;
969esac
970
9dd53f2c 971if test "x$enable_win32_registry" != xno; then
f4ab28e3 972 AC_MSG_CHECKING(registry key on windows hosts)
119d24d1
KG
973 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
974 [Define to be the last portion of registry key on windows hosts.])
f4ab28e3
MK
975 AC_MSG_RESULT($gcc_cv_win32_registry_key)
976fi
4e70264f
ZW
977;;
978esac
f4ab28e3 979
7fa10b25
RK
980# Get an absolute path to the GCC top-level source directory
981holddir=`pwd`
982cd $srcdir
983topdir=`pwd`
984cd $holddir
985
af5e4ada 986# Conditionalize the makefile for this host machine.
94f42018
DE
987# Make-host contains the concatenation of all host makefile fragments
988# [there can be more than one]. This file is built by configure.frag.
989host_overrides=Make-host
af5e4ada 990dep_host_xmake_file=
94f42018
DE
991for f in .. ${host_xmake_file}
992do
75bffa71 993 if test -f ${srcdir}/config/$f
94f42018
DE
994 then
995 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
996 fi
997done
46f18e7b 998
af5e4ada 999# Conditionalize the makefile for this target machine.
94f42018
DE
1000# Make-target contains the concatenation of all host makefile fragments
1001# [there can be more than one]. This file is built by configure.frag.
1002target_overrides=Make-target
af5e4ada 1003dep_tmake_file=
94f42018
DE
1004for f in .. ${tmake_file}
1005do
75bffa71 1006 if test -f ${srcdir}/config/$f
94f42018
DE
1007 then
1008 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1009 fi
1010done
5891b37d 1011
af5e4ada
DE
1012# If the host doesn't support symlinks, modify CC in
1013# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1014# Otherwise, we can use "CC=$(CC)".
1015rm -f symtest.tem
61536478 1016if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
af5e4ada
DE
1017then
1018 cc_set_by_configure="\$(CC)"
5aa82ace 1019 quoted_cc_set_by_configure="\$(CC)"
af5e4ada
DE
1020 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1021else
61536478
JL
1022 rm -f symtest.tem
1023 if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1024 then
1025 symbolic_link="cp -p"
1026 else
1027 symbolic_link="cp"
1028 fi
af5e4ada 1029 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
5aa82ace 1030 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
af5e4ada
DE
1031 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1032fi
1033rm -f symtest.tem
5891b37d 1034
af5e4ada 1035out_object_file=`basename $out_file .c`.o
5891b37d 1036
af5e4ada
DE
1037tm_file_list=
1038for f in $tm_file; do
64ccbc99 1039 case $f in
d02af173
ZW
1040 ansidecl.h )
1041 tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1042 defaults.h )
64ccbc99
KG
1043 tm_file_list="${tm_file_list} $f" ;;
1044 *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1045 esac
af5e4ada 1046done
46f18e7b 1047
11642c3a
ZW
1048tm_p_file_list=
1049for f in $tm_p_file; do
1050 tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1051done
1052
af5e4ada
DE
1053host_xm_file_list=
1054for f in $host_xm_file; do
64ccbc99 1055 case $f in
d02af173
ZW
1056 ansidecl.h )
1057 host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1058 auto-host.h | defaults.h )
64ccbc99
KG
1059 host_xm_file_list="${host_xm_file_list} $f" ;;
1060 *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1061 esac
af5e4ada
DE
1062done
1063
1064build_xm_file_list=
1065for f in $build_xm_file; do
64ccbc99 1066 case $f in
d02af173
ZW
1067 ansidecl.h )
1068 build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1069 auto-build.h | auto-host.h | defaults.h )
64ccbc99
KG
1070 build_xm_file_list="${build_xm_file_list} $f" ;;
1071 *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1072 esac
af5e4ada 1073done
46f18e7b 1074
a078a589
ZW
1075# Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1076# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1077CROSS= AC_SUBST(CROSS)
1078ALL=all.internal AC_SUBST(ALL)
1079SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
75bffa71 1080if test x$host != x$target
af5e4ada 1081then
a078a589
ZW
1082 CROSS="-DCROSS_COMPILE"
1083 ALL=all.cross
1084 SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
af5e4ada 1085fi
46f18e7b 1086
b39d221a
EC
1087# If this is a cross-compiler that does not
1088# have its own set of headers then define
1089# inhibit_libc
1090
fecd6201
ZW
1091# If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1092# This prevents libgcc2 from containing any code which requires libc
1093# support.
b39d221a
EC
1094inhibit_libc=
1095if [test x$host != x$target] && [test x$with_headers = x]; then
1096 inhibit_libc=-Dinhibit_libc
1097else
1098 if [test x$with_newlib = xyes]; then
1099 inhibit_libc=-Dinhibit_libc
1100 fi
1101fi
1102AC_SUBST(inhibit_libc)
1103
a078a589
ZW
1104# When building gcc with a cross-compiler, we need to adjust things so
1105# that the generator programs are still built with the native compiler.
1106# Also, we cannot run fixincludes or fix-header.
1107# Note that the terminology here is wrong; it should be BUILD_* throughout.
1108# FIXME.
1109
1110# These are the normal (build=host) settings:
1111HOST_PREFIX= AC_SUBST(HOST_PREFIX)
1112HOST_PREFIX_1=ignore- AC_SUBST(HOST_PREFIX_1)
1113HOST_CC='$(CC)' AC_SUBST(HOST_CC)
1114HOST_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(HOST_CFLAGS)
1115
1116STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
1117STMP_FIXPROTO=stmp-fixproto AC_SUBST(STMP_FIXPROTO)
1118
1119# And these apply if build != host.
75bffa71 1120if test x$build != x$host
af5e4ada 1121then
a078a589
ZW
1122 HOST_PREFIX=build-
1123 HOST_PREFIX_1=build-
1124 HOST_CC='$(CC_FOR_BUILD)'
1125 HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1126
1127 STMP_FIXINC=
1128 STMP_FIXPROTO=
af5e4ada 1129fi
46f18e7b 1130
ae3a15bb
DE
1131# Expand extra_headers to include complete path.
1132# This substitutes for lots of t-* files.
1133extra_headers_list=
75bffa71 1134if test "x$extra_headers" = x
ae3a15bb
DE
1135then true
1136else
1137 # Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
1138 for file in $extra_headers;
1139 do
1140 extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}"
1141 done
1142fi
1143
75bffa71 1144if test x$use_collect2 = xno; then
2ce3c6c6
JM
1145 use_collect2=
1146fi
1147
af5e4ada 1148# Add a definition of USE_COLLECT2 if system wants one.
2cc07db4 1149if test x$use_collect2 != x
af5e4ada 1150then
2cc07db4
RH
1151 host_xm_defines="${host_xm_defines} USE_COLLECT2"
1152 xm_defines="${xm_defines} USE_COLLECT2"
af5e4ada
DE
1153fi
1154
af5e4ada 1155# If we have gas in the build tree, make a link to it.
75bffa71 1156if test -f ../gas/Makefile; then
6e26218f 1157 rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
af5e4ada
DE
1158fi
1159
3cae5780 1160# If we have nm and objdump in the build tree, make a link to them.
75bffa71 1161if test -f ../binutils/Makefile; then
4b95eb49 1162 rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
3cae5780 1163 rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
4b95eb49
JL
1164fi
1165
af5e4ada 1166# If we have ld in the build tree, make a link to it.
75bffa71 1167if test -f ../ld/Makefile; then
2cc07db4 1168 rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
af5e4ada
DE
1169fi
1170
981d4858
JM
1171# Figure out what assembler we will be using.
1172AC_MSG_CHECKING(what assembler to use)
9e423e6d 1173gcc_cv_as=
981d4858
JM
1174gcc_cv_gas_major_version=
1175gcc_cv_gas_minor_version=
a2f319ea 1176gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
0936a455 1177gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
3ccc3a56
AO
1178if test -x "$DEFAULT_ASSEMBLER"; then
1179 gcc_cv_as="$DEFAULT_ASSEMBLER"
1180elif test -x "$AS"; then
1181 gcc_cv_as="$AS"
ab339d62 1182elif test -x as$host_exeext; then
9e423e6d
JW
1183 # Build using assembler in the current directory.
1184 gcc_cv_as=./as$host_exeext
5585c1bc 1185elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
9e423e6d 1186 # Single tree build which includes gas.
0936a455 1187 for f in $gcc_cv_as_bfd_srcdir/configure $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
9e423e6d 1188 do
75bffa71
ILT
1189changequote(,)dnl
1190 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1191changequote([,])dnl
1192 if test x$gcc_cv_gas_version != x; then
9e423e6d
JW
1193 break
1194 fi
1195 done
75bffa71
ILT
1196changequote(,)dnl
1197 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1198 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1199changequote([,])dnl
981d4858
JM
1200fi
1201
1202if test "x$gcc_cv_as" = x -a x$host = x$target; then
9e423e6d 1203 # Native build.
779243f7
JL
1204 # Search the same directories that the installed compiler will
1205 # search. Else we may find the wrong assembler and lose. If we
1206 # do not find a suitable assembler binary, then try the user's
1207 # path.
1208 #
1209 # Also note we have to check MD_EXEC_PREFIX before checking the
1210 # user's path. Unfortunately, there is no good way to get at the
1211 # value of MD_EXEC_PREFIX here. So we do a brute force search
1212 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1213 # to be fixed as part of the make/configure rewrite too.
1214
1215 if test "x$exec_prefix" = xNONE; then
1216 if test "x$prefix" = xNONE; then
1217 test_prefix=/usr/local
1218 else
1219 test_prefix=$prefix
1220 fi
1221 else
1222 test_prefix=$exec_prefix
1223 fi
1224
1225 # If the loop below does not find an assembler, then use whatever
1226 # one we can find in the users's path.
1227 # user's path.
16a0fe50 1228 gcc_cv_as=as$host_exeext
779243f7
JL
1229
1230 test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
1231 $test_prefix/lib/gcc-lib/$target \
1232 /usr/lib/gcc/$target/$gcc_version \
1233 /usr/lib/gcc/$target \
1234 $test_prefix/$target/bin/$target/$gcc_version \
1235 $test_prefix/$target/bin \
1236 /usr/libexec \
1237 /usr/ccs/gcc \
1238 /usr/ccs/bin \
1239 /udk/usr/ccs/bin \
1240 /bsd43/usr/lib/cmplrs/cc \
1241 /usr/cross64/usr/bin \
1242 /usr/lib/cmplrs/cc \
1243 /sysv/usr/lib/cmplrs/cc \
1244 /svr4/usr/lib/cmplrs/cc \
1245 /usr/bin"
1246
1247 for dir in $test_dirs; do
1248 if test -f $dir/as$host_exeext; then
1249 gcc_cv_as=$dir/as$host_exeext
1250 break;
1251 fi
1252 done
9e423e6d 1253fi
981d4858
JM
1254if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1255 AC_MSG_RESULT("newly built gas")
1256else
1257 AC_MSG_RESULT($gcc_cv_as)
1258fi
1259
1260# Figure out what nm we will be using.
1261AC_MSG_CHECKING(what nm to use)
1262if test -x nm$host_exeext; then
1263 gcc_cv_nm=./nm$host_exeext
1264elif test x$host = x$target; then
1265 # Native build.
1266 gcc_cv_nm=nm$host_exeext
1267fi
1268AC_MSG_RESULT($gcc_cv_nm)
1269
3cae5780
AS
1270# Figure out what objdump we will be using.
1271AC_MSG_CHECKING(what objdump to use)
1272if test -x objdump$host_exeext; then
1273 gcc_cv_objdump=./objdump$host_exeext
1274elif test x$host = x$target; then
1275 # Native build.
1276 gcc_cv_objdump=objdump$host_exeext
1277fi
1278AC_MSG_RESULT($gcc_cv_objdump)
1279
981d4858
JM
1280# Figure out what assembler alignment features are present.
1281AC_MSG_CHECKING(assembler alignment features)
9d147085 1282gcc_cv_as_alignment_features=none
981d4858
JM
1283if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1284 # Gas version 2.6 and later support for .balign and .p2align.
1285 # bytes to skip when using .p2align.
1286 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then
1287 gcc_cv_as_alignment_features=".balign and .p2align"
1288 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1289 fi
1290 # Gas version 2.8 and later support specifying the maximum
1291 # bytes to skip when using .p2align.
1292 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then
1293 gcc_cv_as_alignment_features=".p2align including maximum skip"
1294 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1295 fi
1296elif test x$gcc_cv_as != x; then
00ccc16d
JL
1297 # Check if we have .balign and .p2align
1298 echo ".balign 4" > conftest.s
1299 echo ".p2align 2" >> conftest.s
1300 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1301 gcc_cv_as_alignment_features=".balign and .p2align"
1302 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1303 fi
1304 rm -f conftest.s conftest.o
9e423e6d
JW
1305 # Check if specifying the maximum bytes to skip when
1306 # using .p2align is supported.
1307 echo ".p2align 4,,7" > conftest.s
1308 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1309 gcc_cv_as_alignment_features=".p2align including maximum skip"
1310 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1311 fi
1312 rm -f conftest.s conftest.o
1313fi
1314AC_MSG_RESULT($gcc_cv_as_alignment_features)
1315
d1accaa3 1316AC_MSG_CHECKING(assembler subsection support)
9d147085 1317gcc_cv_as_subsections=no
981d4858
JM
1318if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1319 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1320 gcc_cv_as_subsections="working .subsection -1"
1321 fi
1322elif test x$gcc_cv_as != x; then
d1accaa3
JJ
1323 # Check if we have .subsection
1324 echo ".subsection 1" > conftest.s
1325 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1326 gcc_cv_as_subsections=".subsection"
d1accaa3
JJ
1327 if test x$gcc_cv_nm != x; then
1328 cat > conftest.s <<EOF
1329conftest_label1: .word 0
1330.subsection -1
1331conftest_label2: .word 0
1332.previous
1333EOF
1334 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1335 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1336 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1b015bec
AO
1337 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1338 :
1339 else
d1accaa3 1340 gcc_cv_as_subsections="working .subsection -1"
d1accaa3
JJ
1341 fi
1342 fi
1343 fi
1344 fi
1345 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1346fi
981d4858
JM
1347if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1348 AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1349[Define if your assembler supports .subsection and .subsection -1 starts
1350 emitting at the beginning of your section.])
1351fi
d1accaa3
JJ
1352AC_MSG_RESULT($gcc_cv_as_subsections)
1353
12822146 1354AC_MSG_CHECKING(assembler weak support)
9d147085 1355gcc_cv_as_weak=no
981d4858
JM
1356if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1357 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
1358 gcc_cv_as_weak="yes"
1359 fi
1360elif test x$gcc_cv_as != x; then
12822146
JL
1361 # Check if we have .weak
1362 echo " .weak foobar" > conftest.s
1363 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
12822146
JL
1364 gcc_cv_as_weak="yes"
1365 fi
1366 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1367fi
981d4858
JM
1368if test x"$gcc_cv_as_weak" = xyes; then
1369 AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1370fi
12822146
JL
1371AC_MSG_RESULT($gcc_cv_as_weak)
1372
6a9c5260 1373AC_MSG_CHECKING(assembler hidden support)
9d147085 1374gcc_cv_as_hidden=no
981d4858
JM
1375if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1376 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 10 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1377 gcc_cv_as_hidden="yes"
1378 fi
1379elif test x$gcc_cv_as != x; then
6a9c5260
UD
1380 # Check if we have .hidden
1381 echo " .hidden foobar" > conftest.s
1382 echo "foobar:" >> conftest.s
1383 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
6a9c5260
UD
1384 gcc_cv_as_hidden="yes"
1385 fi
1386 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1387fi
981d4858
JM
1388if test x"$gcc_cv_as_hidden" = xyes; then
1389 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1390 [Define if your assembler supports .hidden.])
1391fi
6a9c5260
UD
1392AC_MSG_RESULT($gcc_cv_as_hidden)
1393
b7460f24 1394AC_MSG_CHECKING(assembler leb128 support)
fbe42b1b 1395gcc_cv_as_leb128=no
b7460f24 1396if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
fbe42b1b 1397 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
b7460f24
RH
1398 gcc_cv_as_leb128="yes"
1399 fi
1400elif test x$gcc_cv_as != x; then
1401 # Check if we have .[us]leb128, and support symbol arithmetic with it.
1402 cat > conftest.s <<EOF
1403 .data
1404 .uleb128 L2 - L1
1405L1:
1406 .uleb128 1280
1407 .sleb128 -1010
1408L2:
1409EOF
1410 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
78e766a0
RH
1411 gcc_cv_as_leb128="yes"
1412
1413 # GAS versions before 2.11 do not support uleb128,
1414 # despite appearing to.
1415 # ??? There exists an elf-specific test that will crash
1416 # the assembler. Perhaps it's better to figure out whether
1417 # arbitrary sections are supported and try the test.
1418 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1419 if echo "$as_ver" | grep GNU > /dev/null; then
78e766a0 1420changequote(,)dnl
5fed851d 1421 as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
0461a052 1422 as_major=`echo $as_ver | sed 's/\..*//'`
3d399d67 1423 as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
78e766a0
RH
1424changequote([,])dnl
1425 if test $as_major -eq 2 -a $as_minor -lt 11; then
1426 gcc_cv_as_leb128="no"
1427 fi
fbe42b1b 1428 fi
b7460f24
RH
1429 fi
1430 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1431fi
1432if test x"$gcc_cv_as_leb128" = xyes; then
1433 AC_DEFINE(HAVE_AS_LEB128, 1,
1434 [Define if your assembler supports .uleb128.])
1435fi
1436AC_MSG_RESULT($gcc_cv_as_leb128)
1437
c64688ae
RH
1438AC_MSG_CHECKING(assembler eh_frame optimization)
1439gcc_cv_as_eh_frame=no
1440if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1441 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1442 gcc_cv_as_eh_frame="yes"
1443 fi
1444elif test x$gcc_cv_as != x; then
1445 # Check if this is GAS.
41948db5
SS
1446 as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1447 rm -f a.out 2> /dev/null
c64688ae
RH
1448 if echo "$as_ver" | grep GNU > /dev/null; then
1449 # Versions up to and including 2.11.0 may mis-optimize
1450 # .eh_frame data. Try something.
1451 cat > conftest.s <<EOF
1452 .text
1453.LFB1:
1454 .4byte 0
1455.L1:
1456 .4byte 0
1457.LFE1:
1458 .section .eh_frame,"aw",@progbits
1459__FRAME_BEGIN__:
1460 .4byte .LECIE1-.LSCIE1
1461.LSCIE1:
1462 .4byte 0x0
1463 .byte 0x1
1464 .ascii "z\0"
1465 .byte 0x1
1466 .byte 0x78
1467 .byte 0x1a
1468 .byte 0x0
1469 .byte 0x4
1470 .4byte 1
1471 .p2align 1
1472.LECIE1:
1473.LSFDE1:
1474 .4byte .LEFDE1-.LASFDE1
1475.LASFDE1:
1476 .4byte .LASFDE1-__FRAME_BEGIN__
1477 .4byte .LFB1
1478 .4byte .LFE1-.LFB1
1479 .byte 0x4
1480 .4byte .LFE1-.LFB1
1481 .byte 0x4
1482 .4byte .L1-.LFB1
1483.LEFDE1:
1484EOF
01efb963 1485 cat > conftest.lit <<EOF
c64688ae
RH
1486 0000 10000000 00000000 017a0001 781a0004 .........z..x...
1487 0010 01000000 12000000 18000000 00000000 ................
1488 0020 08000000 04080000 0044 .........D
01efb963
AS
1489EOF
1490 cat > conftest.big <<EOF
1491 0000 00000010 00000000 017a0001 781a0004 .........z..x...
1492 0010 00000001 00000012 00000018 00000000 ................
1493 0020 00000008 04000000 0844 .........D
c64688ae
RH
1494EOF
1495 # If the assembler didn't choke, and we can objdump,
1496 # and we got the correct data, then succeed.
1497 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
3cae5780 1498 && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
c64688ae 1499 | tail -3 > conftest.got \
01efb963
AS
1500 && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1501 || cmp conftest.big conftest.got > /dev/null 2>&1; }
c64688ae
RH
1502 then
1503 gcc_cv_as_eh_frame="yes"
1504 else
1505 gcc_cv_as_eh_frame="bad"
1506 if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1507 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1508 [Define if your assembler mis-optimizes .eh_frame data.])
1509 fi
1510 fi
1511 fi
1512 rm -f conftest.*
1513fi
1514AC_MSG_RESULT($gcc_cv_as_eh_frame)
1515
201556f0
JJ
1516AC_MSG_CHECKING(assembler section merging support)
1517gcc_cv_as_shf_merge=no
1518if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1519 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
a8b7afb9 1520 gcc_cv_as_shf_merge=yes
201556f0
JJ
1521 fi
1522elif test x$gcc_cv_as != x; then
1523 # Check if we support SHF_MERGE sections
1524 echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
a8b7afb9 1525 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
201556f0
JJ
1526 gcc_cv_as_shf_merge=yes
1527 fi
1528 rm -f conftest.s conftest.o
1529fi
1530if test x"$gcc_cv_as_shf_merge" = xyes; then
1531 AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1532[Define if your assembler supports marking sections with SHF_MERGE flag.])
1533fi
1534AC_MSG_RESULT($gcc_cv_as_shf_merge)
1535
1cb36a98
RH
1536case "$target" in
1537 sparc*-*-*)
5b68c389
AO
1538 AC_CACHE_CHECK([assembler .register pseudo-op support],
1539 gcc_cv_as_register_pseudo_op, [
1540 gcc_cv_as_register_pseudo_op=unknown
1541 if test x$gcc_cv_as != x; then
1542 # Check if we have .register
1543 echo ".register %g2, #scratch" > conftest.s
1544 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1cb36a98 1545 gcc_cv_as_register_pseudo_op=yes
5b68c389
AO
1546 else
1547 gcc_cv_as_register_pseudo_op=no
1548 fi
1549 rm -f conftest.s conftest.o
1cb36a98 1550 fi
5b68c389
AO
1551 ])
1552 if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
119d24d1
KG
1553 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
1554 [Define if your assembler supports .register.])
1cb36a98 1555 fi
1cb36a98 1556
e95b1e6a
JJ
1557 AC_CACHE_CHECK([assembler supports -relax],
1558 gcc_cv_as_relax_opt, [
1559 gcc_cv_as_relax_opt=unknown
1560 if test x$gcc_cv_as != x; then
1561 # Check if gas supports -relax
1562 echo ".text" > conftest.s
1563 if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
1564 gcc_cv_as_relax_opt=yes
1565 else
1566 gcc_cv_as_relax_opt=no
1567 fi
1568 rm -f conftest.s conftest.o
1569 fi
1570 ])
1571 if test "x$gcc_cv_as_relax_opt" = xyes; then
1572 AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
1573 [Define if your assembler supports -relax option.])
1574 fi
1575
5b68c389
AO
1576 case "$tm_file" in
1577 *64*)
1578 AC_CACHE_CHECK([for 64 bit support in assembler ($gcc_cv_as)],
1579 gcc_cv_as_flags64, [
1580 if test -n "$gcc_cv_as"; then
1581 echo ".xword foo" > conftest.s
1582 gcc_cv_as_flags64=no
8a90b95d 1583 for flag in "-xarch=v9" "-64 -Av9"; do
5b68c389
AO
1584 if $gcc_cv_as $flag -o conftest.o conftest.s \
1585 > /dev/null 2>&1; then
1586 gcc_cv_as_flags64=$flag
1587 break
1588 fi
1589 done
1590 rm -f conftest.s conftest.o
1591 else
1592 if test "$gas" = yes; then
1593 gcc_cv_as_flags64="-64 -Av9"
1594 else
1595 gcc_cv_as_flags64="-xarch=v9"
1596 fi
1cb36a98 1597 fi
5b68c389
AO
1598 ])
1599 if test "x$gcc_cv_as_flags64" = xno; then
1600changequote(, )
1601 tmake_file=`echo " $tmake_file " | sed -e 's, sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1602 dep_tmake_file=`echo " $dep_tmake_file " | sed -e 's, [^ ]*/config/sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1603changequote([, ])
1604 else
119d24d1
KG
1605 AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64",
1606 [Define if the assembler supports 64bit sparc.])
1cb36a98 1607 fi
5b68c389
AO
1608 ;;
1609 *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
1610 ;;
1611 esac
1612
1613 if test "x$gcc_cv_as_flags64" != xno; then
1614 AC_CACHE_CHECK([for assembler offsetable %lo() support],
1615 gcc_cv_as_offsetable_lo10, [
1616 gcc_cv_as_offsetable_lo10=unknown
1617 if test "x$gcc_cv_as" != x; then
1618 # Check if assembler has offsetable %lo()
1619 echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
1620 echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
1621 if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \
1622 > /dev/null 2>&1 &&
1623 $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \
1624 > /dev/null 2>&1; then
1625 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
1626 gcc_cv_as_offsetable_lo10=no
1627 else
1628 gcc_cv_as_offsetable_lo10=yes
1629 fi
1630 else
1631 gcc_cv_as_offsetable_lo10=no
1cb36a98 1632 fi
5b68c389
AO
1633 rm -f conftest.s conftest.o conftest1.s conftest1.o
1634 fi
1635 ])
1636 if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
119d24d1
KG
1637 AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
1638 [Define if your assembler supports offsetable %lo().])
1cb36a98 1639 fi
1cb36a98 1640 fi
cb65112a 1641
1cb36a98
RH
1642 ;;
1643
1644changequote(,)dnl
c307e6dd 1645 i[34567]86-*-* | x86_64-*-*)
1cb36a98
RH
1646changequote([,])dnl
1647 AC_MSG_CHECKING(assembler instructions)
1648 gcc_cv_as_instructions=
981d4858
JM
1649 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1650 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
1651 gcc_cv_as_instructions="filds fists"
1652 fi
1653 elif test x$gcc_cv_as != x; then
53b5ce19
JW
1654 set "filds fists" "filds mem; fists mem"
1655 while test $# -gt 0
1656 do
1657 echo "$2" > conftest.s
1658 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1659 gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
53b5ce19
JW
1660 fi
1661 shift 2
1662 done
1663 rm -f conftest.s conftest.o
1cb36a98 1664 fi
981d4858 1665 if test x"$gcc_cv_as_instructions" != x; then
ee7692d2 1666 AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
981d4858 1667 fi
1cb36a98 1668 AC_MSG_RESULT($gcc_cv_as_instructions)
f88c65f7
RH
1669
1670 AC_MSG_CHECKING(assembler GOTOFF in data directives)
1671 gcc_cv_as_gotoff_in_data=no
1672 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
1673 then
1674 if test "$gcc_cv_gas_major_version" -eq 2 \
1675 -a "$gcc_cv_gas_minor_version" -ge 11 \
1676 -o "$gcc_cv_gas_major_version" -gt 2; then
1677 gcc_cv_as_gotoff_in_data=yes
1678 fi
1679 elif test x$gcc_cv_as != x; then
1680 cat > conftest.s <<EOF
1681 .text
1682.L0:
1683 nop
1684 .data
1685 .long .L0@GOTOFF
1686EOF
1687 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1688 gcc_cv_as_gotoff_in_data=yes
1689 fi
1690 fi
1691 AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
1692 [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
1693 [Define true if the assembler supports '.long foo@GOTOFF'.])
1694 AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
1cb36a98
RH
1695 ;;
1696esac
53b5ce19 1697
9d147085
RH
1698AC_MSG_CHECKING(assembler dwarf2 debug_line support)
1699gcc_cv_as_dwarf2_debug_line=no
1700# ??? Not all targets support dwarf2 debug_line, even within a version
1701# of gas. Moreover, we need to emit a valid instruction to trigger any
1702# info to the output file. So, as supported targets are added to gas 2.11,
1703# add some instruction here to (also) show we expect this might work.
1704# ??? Once 2.11 is released, probably need to add first known working
1705# version to the per-target configury.
1706case "$target" in
c307e6dd 1707 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* | x86_64*-*-*)
9d147085
RH
1708 insn="nop"
1709 ;;
1710 ia64*-*-*)
1711 insn="nop 0"
1712 ;;
1713 esac
1714if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1715then
1716 if test "$gcc_cv_gas_major_version" -eq 2 \
1717 -a "$gcc_cv_gas_minor_version" -ge 11 \
1718 -o "$gcc_cv_gas_major_version" -gt 2 \
1719 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1720 && test x"$insn" != x ; then
1721 gcc_cv_as_dwarf2_debug_line="yes"
1722 fi
1723elif test x$gcc_cv_as != x -a x"$insn" != x ; then
acc187f5
RH
1724 echo ' .file 1 "conftest.s"' > conftest.s
1725 echo ' .loc 1 3 0' >> conftest.s
9d147085 1726 echo " $insn" >> conftest.s
981975b6 1727 # ??? This fails with non-gnu grep.
9d147085
RH
1728 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1729 && grep debug_line conftest.o > /dev/null 2>&1 ; then
981975b6 1730 # The .debug_line file table must be in the exact order that
eaec9b3d 1731 # we specified the files, since these indices are also used
981975b6
RH
1732 # by DW_AT_decl_file. Approximate this test by testing if
1733 # the assembler bitches if the same index is assigned twice.
1734 echo ' .file 1 "foo.s"' > conftest.s
1735 echo ' .file 1 "bar.s"' >> conftest.s
1736 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
1737 then
1738 gcc_cv_as_dwarf2_debug_line="no"
1739 else
1740 gcc_cv_as_dwarf2_debug_line="yes"
1741 fi
9d147085
RH
1742 fi
1743 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1744fi
1745if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
1746 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
981975b6 1747[Define if your assembler supports dwarf2 .file/.loc directives,
eaec9b3d 1748 and preserves file table indices exactly as given.])
9d147085
RH
1749fi
1750AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
1751
5f0e9ea2
GK
1752AC_MSG_CHECKING(assembler --gdwarf2 support)
1753gcc_cv_as_gdwarf2_flag=no
1754if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1755then
1756 if test "$gcc_cv_gas_major_version" -eq 2 \
1757 -a "$gcc_cv_gas_minor_version" -ge 11 \
1758 -o "$gcc_cv_gas_major_version" -gt 2 \
1759 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1760 && test x"$insn" != x ; then
1761 gcc_cv_as_gdwarf2_debug_flag="yes"
1762 fi
1763elif test x$gcc_cv_as != x -a x"$insn" != x ; then
1764 echo '' > conftest.s
1765 # ??? This fails with non-gnu grep.
1766 if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
1767 then
1768 gcc_cv_as_gdwarf2_flag="yes"
1769 fi
1770 rm -f conftest.s conftest.o
1771fi
1772if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
1773 AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
1774[Define if your assembler supports the --gdwarf2 option.])
1775fi
1776AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
1777
1778AC_MSG_CHECKING(assembler --gstabs support)
1779gcc_cv_as_gstabs_flag=no
1780if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1781then
1782 if test "$gcc_cv_gas_major_version" -eq 2 \
1783 -a "$gcc_cv_gas_minor_version" -ge 11 \
1784 -o "$gcc_cv_gas_major_version" -gt 2 \
1785 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1786 && test x"$insn" != x ; then
1787 gcc_cv_as_gstabs_debug_flag="yes"
1788 fi
1789elif test x$gcc_cv_as != x -a x"$insn" != x ; then
1790 echo '' > conftest.s
1791 # ??? This fails with non-gnu grep.
1792 if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
1793 gcc_cv_as_gstabs_flag="yes"
1794 fi
1795 rm -f conftest.s conftest.o
1796fi
1797if test x"$gcc_cv_as_gstabs_flag" = xyes; then
1798 AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
1799[Define if your assembler supports the --gstabs option.])
1800fi
1801AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
1802
793e9558
PB
1803if test "$prefix" != "/usr" && test "$prefix" != "/usr/local" ; then
1804 AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
1805fi
1806
571a8de5 1807# Figure out what language subdirectories are present.
71205e0b
MH
1808# Look if the user specified --enable-languages="..."; if not, use
1809# the environment variable $LANGUAGES if defined. $LANGUAGES might
1810# go away some day.
cc9a08e0 1811# NB: embedded tabs in this IF block -- do not untabify
71205e0b
MH
1812if test x"${enable_languages+set}" != xset; then
1813 if test x"${LANGUAGES+set}" = xset; then
cc9a08e0
PE
1814 enable_languages="${LANGUAGES}"
1815 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
1816
71205e0b
MH
1817 else
1818 enable_languages=all
1819 fi
d6c6b553 1820else
cc9a08e0
PE
1821 if test x"${enable_languages}" = x ||
1822 test x"${enable_languages}" = xyes;
1823 then
1824 AC_MSG_ERROR([--enable-languages needs at least one language argument])
d6c6b553 1825 fi
71205e0b 1826fi
cc9a08e0 1827enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
75382c6d
TT
1828
1829# First scan to see if an enabled language requires some other language.
1830# We assume that a given config-lang.in will list all the language
1831# front ends it requires, even if some are required indirectly.
1832for lang in ${srcdir}/*/config-lang.in ..
1833do
1834 case $lang in
1835 ..)
1836 ;;
1837 # The odd quoting in the next line works around
1838 # an apparent bug in bash 1.12 on linux.
1839changequote(,)dnl
1840 ${srcdir}/[*]/config-lang.in)
1841 ;;
1842 *)
1843 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
1844 this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
1845 for other in $this_lang_requires
1846 do
1847 case ,${enable_languages}, in
1848 *,$other,*)
1849 ;;
1850 *,all,*)
1851 ;;
1bf17cc4 1852 *,$lang_alias,*)
75382c6d
TT
1853 enable_languages="$enable_languages,$other"
1854 ;;
1855 esac
1856 done
1857 ;;
1858changequote([,])dnl
1859 esac
1860done
1861
571a8de5
DE
1862subdirs=
1863for lang in ${srcdir}/*/config-lang.in ..
1864do
1865 case $lang in
1866 ..) ;;
1867 # The odd quoting in the next line works around
1868 # an apparent bug in bash 1.12 on linux.
75bffa71
ILT
1869changequote(,)dnl
1870 ${srcdir}/[*]/config-lang.in) ;;
71205e0b
MH
1871 *)
1872 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2b60b2cb
AO
1873 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
1874 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
71205e0b
MH
1875 if test "x$lang_alias" = x
1876 then
1877 echo "$lang doesn't set \$language." 1>&2
1878 exit 1
1879 fi
2b60b2cb
AO
1880 case ${build_by_default},${enable_languages}, in
1881 *,$lang_alias,*) add_this_lang=yes ;;
1882 no,*) add_this_lang=no ;;
1883 *,all,*) add_this_lang=yes ;;
1884 *) add_this_lang=no ;;
1885 esac
71205e0b
MH
1886 if test x"${add_this_lang}" = xyes; then
1887 case $lang in
1888 ${srcdir}/ada/config-lang.in)
1ffc5c6e 1889 if test x$have_gnat = xyes ; then
71205e0b
MH
1890 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
1891 fi
1892 ;;
1893 *)
1894 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
1895 ;;
1896 esac
1897 fi
1898 ;;
75bffa71 1899changequote([,])dnl
571a8de5
DE
1900 esac
1901done
1902
f24af81b
TT
1903# Make gthr-default.h if we have a thread file.
1904gthread_flags=
75bffa71 1905if test $thread_file != single; then
f24af81b 1906 rm -f gthr-default.h
db0d1ed9 1907 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
f24af81b
TT
1908 gthread_flags=-DHAVE_GTHR_DEFAULT
1909fi
1910AC_SUBST(gthread_flags)
1911
81bf3d9e
RH
1912# Find out what GC implementation we want, or may, use.
1913AC_ARG_WITH(gc,
e8bec136
RO
1914[ --with-gc={simple,page} choose the garbage collection mechanism to use
1915 with the compiler],
81bf3d9e
RH
1916[case "$withval" in
1917 simple | page)
1918 GGC=ggc-$withval
1919 ;;
1920 *)
1921 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
1922 ;;
1923esac],
130fadbb 1924[GGC=ggc-page])
81bf3d9e
RH
1925AC_SUBST(GGC)
1926echo "Using $GGC for garbage collection."
1927
3c809ba4 1928# Use the system's zlib library.
b8dad04b
ZW
1929zlibdir=-L../zlib
1930zlibinc="-I\$(srcdir)/../zlib"
3c809ba4
AG
1931AC_ARG_WITH(system-zlib,
1932[ --with-system-zlib use installed libz],
1933zlibdir=
1934zlibinc=
1935)
1936AC_SUBST(zlibdir)
1937AC_SUBST(zlibinc)
1938
dc6746e7
PT
1939dnl Very limited version of automake's enable-maintainer-mode
1940
1941AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
1942 dnl maintainer-mode is disabled by default
1943 AC_ARG_ENABLE(maintainer-mode,
e8bec136
RO
1944[ --enable-maintainer-mode
1945 enable make rules and dependencies not useful
dc6746e7
PT
1946 (and sometimes confusing) to the casual installer],
1947 maintainer_mode=$enableval,
1948 maintainer_mode=no)
1949
1950AC_MSG_RESULT($maintainer_mode)
1951
1952if test "$maintainer_mode" = "yes"; then
1953 MAINT=''
1954else
1955 MAINT='#'
1956fi
1957AC_SUBST(MAINT)dnl
1958
531073e7
RH
1959# With Setjmp/Longjmp based exception handling.
1960AC_ARG_ENABLE(sjlj-exceptions,
e8bec136
RO
1961[ --enable-sjlj-exceptions
1962 arrange to use setjmp/longjmp exception handling],
531073e7
RH
1963[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
1964AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
1965 [Define 0/1 to force the choice for exception handling model.])])
1966
571a8de5
DE
1967# Make empty files to contain the specs and options for each language.
1968# Then add #include lines to for a compiler that has specs and/or options.
1969
1970lang_specs_files=
1971lang_options_files=
3103b7db
ML
1972lang_tree_files=
1973rm -f specs.h options.h gencheck.h
1974touch specs.h options.h gencheck.h
571a8de5
DE
1975for subdir in . $subdirs
1976do
75bffa71 1977 if test -f $srcdir/$subdir/lang-specs.h; then
571a8de5
DE
1978 echo "#include \"$subdir/lang-specs.h\"" >>specs.h
1979 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
1980 fi
75bffa71 1981 if test -f $srcdir/$subdir/lang-options.h; then
571a8de5
DE
1982 echo "#include \"$subdir/lang-options.h\"" >>options.h
1983 lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
1984 fi
3103b7db
ML
1985 if test -f $srcdir/$subdir/$subdir-tree.def; then
1986 echo "#include \"$subdir/$subdir-tree.def\"" >>gencheck.h
1987 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
1988 fi
571a8de5
DE
1989done
1990
1991# These (without "all_") are set in each config-lang.in.
1992# `language' must be a single word so is spelled singularly.
1993all_languages=
1994all_boot_languages=
1995all_compilers=
1996all_stagestuff=
1997all_diff_excludes=
5b7874aa 1998all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc'
571a8de5
DE
1999# List of language makefile fragments.
2000all_lang_makefiles=
2001all_headers=
2002all_lib2funcs=
2003
2004# Add the language fragments.
2005# Languages are added via two mechanisms. Some information must be
2006# recorded in makefile variables, these are defined in config-lang.in.
2007# We accumulate them and plug them into the main Makefile.
2008# The other mechanism is a set of hooks for each of the main targets
2009# like `clean', `install', etc.
2010
2011language_fragments="Make-lang"
2012language_hooks="Make-hooks"
2013
2014for s in .. $subdirs
2015do
75bffa71 2016 if test $s != ".."
571a8de5
DE
2017 then
2018 language=
2019 boot_language=
2020 compilers=
2021 stagestuff=
2022 diff_excludes=
2023 headers=
0280cf84 2024 outputs=
571a8de5
DE
2025 lib2funcs=
2026 . ${srcdir}/$s/config-lang.in
75bffa71 2027 if test "x$language" = x
571a8de5
DE
2028 then
2029 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2030 exit 1
2031 fi
72aaffbd
ZW
2032 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2033 if test -f ${srcdir}/$s/Makefile.in
2034 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2035 fi
571a8de5 2036 all_languages="$all_languages $language"
75bffa71 2037 if test "x$boot_language" = xyes
571a8de5
DE
2038 then
2039 all_boot_languages="$all_boot_languages $language"
2040 fi
2041 all_compilers="$all_compilers $compilers"
2042 all_stagestuff="$all_stagestuff $stagestuff"
2043 all_diff_excludes="$all_diff_excludes $diff_excludes"
2044 all_headers="$all_headers $headers"
0280cf84 2045 all_outputs="$all_outputs $outputs"
571a8de5
DE
2046 all_lib2funcs="$all_lib2funcs $lib2funcs"
2047 fi
2048done
2049
cbc59f01
DD
2050check_languages=
2051for language in .. $all_languages
2052do
2053 if test $language != ".."
2054 then
2055 check_languages="$check_languages check-$language"
2056 fi
2057done
2058
571a8de5
DE
2059# Since we can't use `::' targets, we link each language in
2060# with a set of hooks, reached indirectly via lang.${target}.
2061
2062rm -f Make-hooks
2063touch Make-hooks
2064target_list="all.build all.cross start.encap rest.encap \
d3945f0a 2065 info dvi generated-manpages \
571a8de5 2066 install-normal install-common install-info install-man \
436a88a6 2067 uninstall \
571a8de5
DE
2068 mostlyclean clean distclean extraclean maintainer-clean \
2069 stage1 stage2 stage3 stage4"
2070for t in $target_list
2071do
2072 x=
ab87f8c8 2073 for lang in .. $all_languages
571a8de5 2074 do
ab87f8c8
JL
2075 if test $lang != ".."; then
2076 x="$x $lang.$t"
571a8de5
DE
2077 fi
2078 done
2079 echo "lang.$t: $x" >> Make-hooks
2080done
2081
cc06d68c 2082# Create .gdbinit.
296e46bd 2083
cc06d68c
GP
2084echo "dir ." > .gdbinit
2085echo "dir ${srcdir}" >> .gdbinit
2086if test x$gdb_needs_out_file_path = xyes
2087then
2088 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2089fi
2090if test "x$subdirs" != x; then
2091 for s in $subdirs
2092 do
2093 echo "dir ${srcdir}/$s" >> .gdbinit
2094 done
296e46bd 2095fi
cc06d68c 2096echo "source ${srcdir}/gdbinit.in" >> .gdbinit
296e46bd 2097
88111b26
JL
2098# Define variables host_canonical and build_canonical
2099# because some Cygnus local changes in the Makefile depend on them.
2100build_canonical=${build}
2101host_canonical=${host}
2102target_subdir=
75bffa71 2103if test "${host}" != "${target}" ; then
924c96eb 2104 target_subdir=${target_alias}/
88111b26
JL
2105fi
2106AC_SUBST(build_canonical)
2107AC_SUBST(host_canonical)
2108AC_SUBST(target_subdir)
2109
8f8d3278
NC
2110# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2111# absolute path for gcc_tooldir based on inserting the number of up-directory
2112# movements required to get from $(exec_prefix) to $(prefix) into the basic
2113# $(libsubdir)/@(unlibsubdir) based path.
82cbf8f7
JL
2114# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2115# make and thus we'd get different behavior depending on where we built the
2116# sources.
5949a9fc 2117if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
d062c304
JL
2118 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2119else
8f8d3278
NC
2120changequote(<<, >>)dnl
2121# An explanation of the sed strings:
2122# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
2123# -e 's|/$||' match a trailing forward slash and eliminates it
2124# -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
ff7cc307 2125# -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
8f8d3278
NC
2126#
2127# (*) Note this pattern overwrites the first character of the string
2128# with a forward slash if one is not already present. This is not a
2129# problem because the exact names of the sub-directories concerned is
2130# unimportant, just the number of them matters.
2131#
2132# The practical upshot of these patterns is like this:
2133#
2134# prefix exec_prefix result
2135# ------ ----------- ------
2136# /foo /foo/bar ../
2137# /foo/ /foo/bar ../
2138# /foo /foo/bar/ ../
2139# /foo/ /foo/bar/ ../
2140# /foo /foo/bar/ugg ../../
2141#
4c112cda
NC
2142 dollar='$$'
2143 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
8f8d3278 2144changequote([, ])dnl
d062c304
JL
2145fi
2146AC_SUBST(gcc_tooldir)
4c112cda 2147AC_SUBST(dollar)
d062c304 2148
2bbea3a6
RH
2149# Find a directory in which to install a shared libgcc.
2150
2151AC_ARG_ENABLE(version-specific-runtime-libs,
e8bec136
RO
2152[ --enable-version-specific-runtime-libs
2153 specify that runtime libraries should be
2154 installed in a compiler-specific directory])
2bbea3a6 2155
5b15f277
RH
2156AC_ARG_WITH(slibdir,
2157[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
2158slibdir="$with_slibdir",
2159if test "${enable_version_specific_runtime_libs+set}" = set; then
2bbea3a6 2160 slibdir='$(libsubdir)'
5b15f277 2161elif test "$host" != "$target"; then
2bbea3a6
RH
2162 slibdir='$(build_tooldir)/lib'
2163else
5b15f277
RH
2164 slibdir='$(libdir)'
2165fi)
2bbea3a6
RH
2166AC_SUBST(slibdir)
2167
7e717196
JL
2168# Nothing to do for FLOAT_H, float_format already handled.
2169objdir=`pwd`
2170AC_SUBST(objdir)
2171
94f42018
DE
2172# Process the language and host/target makefile fragments.
2173${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
47866ac0 2174
46f18e7b
RK
2175# Substitute configuration variables
2176AC_SUBST(subdirs)
46f18e7b
RK
2177AC_SUBST(all_boot_languages)
2178AC_SUBST(all_compilers)
46f18e7b 2179AC_SUBST(all_diff_excludes)
46f18e7b 2180AC_SUBST(all_headers)
9f3d1bc2
BK
2181AC_SUBST(all_lang_makefiles)
2182AC_SUBST(all_languages)
2183AC_SUBST(all_lib2funcs)
2184AC_SUBST(all_stagestuff)
2185AC_SUBST(build_exeext)
2186AC_SUBST(build_install_headers_dir)
2187AC_SUBST(build_xm_file_list)
11642c3a
ZW
2188AC_SUBST(build_xm_file)
2189AC_SUBST(build_xm_defines)
cbc59f01 2190AC_SUBST(check_languages)
9f3d1bc2 2191AC_SUBST(cc_set_by_configure)
5aa82ace 2192AC_SUBST(quoted_cc_set_by_configure)
9f3d1bc2 2193AC_SUBST(cpp_install_dir)
9f3d1bc2
BK
2194AC_SUBST(dep_host_xmake_file)
2195AC_SUBST(dep_tmake_file)
9f3d1bc2 2196AC_SUBST(extra_headers_list)
46f18e7b 2197AC_SUBST(extra_objs)
9f3d1bc2
BK
2198AC_SUBST(extra_parts)
2199AC_SUBST(extra_passes)
2200AC_SUBST(extra_programs)
9f3d1bc2 2201AC_SUBST(float_h_file)
cc1e60ea 2202AC_SUBST(gcc_config_arguments)
9f3d1bc2 2203AC_SUBST(gcc_gxx_include_dir)
e2187d3b 2204AC_SUBST(libstdcxx_incdir)
9f3d1bc2 2205AC_SUBST(gcc_version)
8763704d 2206AC_SUBST(gcc_version_full)
9f3d1bc2
BK
2207AC_SUBST(gcc_version_trigger)
2208AC_SUBST(host_exeext)
46f18e7b 2209AC_SUBST(host_extra_gcc_objs)
46f18e7b 2210AC_SUBST(host_xm_file_list)
11642c3a
ZW
2211AC_SUBST(host_xm_file)
2212AC_SUBST(host_xm_defines)
9f3d1bc2 2213AC_SUBST(install)
46f18e7b 2214AC_SUBST(lang_options_files)
9f3d1bc2 2215AC_SUBST(lang_specs_files)
3103b7db 2216AC_SUBST(lang_tree_files)
46f18e7b 2217AC_SUBST(local_prefix)
9f3d1bc2
BK
2218AC_SUBST(md_file)
2219AC_SUBST(objc_boehm_gc)
2220AC_SUBST(out_file)
2221AC_SUBST(out_object_file)
46f18e7b 2222AC_SUBST(stage_prefix_set_by_configure)
e9a25f70 2223AC_SUBST(symbolic_link)
9f3d1bc2
BK
2224AC_SUBST(thread_file)
2225AC_SUBST(tm_file_list)
11642c3a
ZW
2226AC_SUBST(tm_file)
2227AC_SUBST(tm_p_file_list)
2228AC_SUBST(tm_p_file)
2229AC_SUBST(xm_file)
3d9d2476 2230AC_SUBST(xm_defines)
aac69a49
NC
2231AC_SUBST(c_target_objs)
2232AC_SUBST(cxx_target_objs)
11642c3a 2233AC_SUBST(target_cpu_default)
46f18e7b
RK
2234
2235AC_SUBST_FILE(target_overrides)
2236AC_SUBST_FILE(host_overrides)
46f18e7b
RK
2237AC_SUBST_FILE(language_fragments)
2238AC_SUBST_FILE(language_hooks)
2239
2240# Echo that links are built
75bffa71 2241if test x$host = x$target
46f18e7b
RK
2242then
2243 str1="native "
2244else
2245 str1="cross-"
2246 str2=" from $host"
2247fi
2248
75bffa71 2249if test x$host != x$build
46f18e7b
RK
2250then
2251 str3=" on a $build system"
2252fi
2253
75bffa71 2254if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
2255then
2256 str4=
2257fi
2258
2259echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
2260
75bffa71 2261if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
2262then
2263 echo " ${str2}${str3}." 1>&2
2264fi
2265
61536478 2266# Truncate the target if necessary
75bffa71 2267if test x$host_truncate_target != x; then
61536478
JL
2268 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
2269fi
2270
46f18e7b
RK
2271# Configure the subdirectories
2272# AC_CONFIG_SUBDIRS($subdirs)
2273
2274# Create the Makefile
5891b37d 2275# and configure language subdirectories
0280cf84 2276AC_OUTPUT($all_outputs,
cdcc6a01 2277[
cdcc6a01 2278case x$CONFIG_HEADERS in
b7cb92ad 2279xauto-host.h:config.in)
818b66cc 2280echo > cstamp-h ;;
cdcc6a01 2281esac
93cf819d
BK
2282# If the host supports symlinks, point stage[1234] at ../stage[1234] so
2283# bootstrapping and the installation procedure can still use
2284# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
2285# FLAGS_TO_PASS has been modified to solve the problem there.
2286# This is virtually a duplicate of what happens in configure.lang; we do
2287# an extra check to make sure this only happens if ln -s can be used.
75bffa71 2288if test "$symbolic_link" = "ln -s"; then
d8140df6 2289 for d in .. ${subdirs} fixinc ; do
75bffa71 2290 if test $d != ..; then
4e8a434e
BK
2291 STARTDIR=`pwd`
2292 cd $d
2293 for t in stage1 stage2 stage3 stage4 include
2294 do
2295 rm -f $t
2296 $symbolic_link ../$t $t 2>/dev/null
2297 done
2298 cd $STARTDIR
93cf819d
BK
2299 fi
2300 done
2301else true ; fi
ab87f8c8
JL
2302# Avoid having to add intl to our include paths.
2303if test -f intl/libintl.h; then
2304 echo creating libintl.h
2305 echo '#include "intl/libintl.h"' >libintl.h
2306fi
cdcc6a01
DE
2307],
2308[
5891b37d
RK
2309host='${host}'
2310build='${build}'
2311target='${target}'
52060267 2312target_alias='${target_alias}'
5891b37d
RK
2313srcdir='${srcdir}'
2314subdirs='${subdirs}'
2315symbolic_link='${symbolic_link}'
2316program_transform_set='${program_transform_set}'
2317program_transform_name='${program_transform_name}'
5891b37d
RK
2318dep_host_xmake_file='${dep_host_xmake_file}'
2319host_xmake_file='${host_xmake_file}'
2320dep_tmake_file='${dep_tmake_file}'
2321tmake_file='${tmake_file}'
0bbb1697 2322thread_file='${thread_file}'
cc1e60ea 2323gcc_config_arguments='${gcc_config_arguments}'
f1943b77 2324gcc_version='${gcc_version}'
8763704d 2325gcc_version_full='${gcc_version_full}'
f1943b77 2326gcc_version_trigger='${gcc_version_trigger}'
5891b37d 2327local_prefix='${local_prefix}'
5891b37d 2328build_install_headers_dir='${build_install_headers_dir}'
a204adc6 2329build_exeext='${build_exeext}'
6e26218f 2330host_exeext='${host_exeext}'
7ed46111 2331out_file='${out_file}'
5891b37d
RK
2332gdb_needs_out_file_path='${gdb_needs_out_file_path}'
2333SET_MAKE='${SET_MAKE}'
5891b37d 2334target_list='${target_list}'
5891b37d
RK
2335target_overrides='${target_overrides}'
2336host_overrides='${host_overrides}'
9fc9b82a 2337cpp_install_dir='${cpp_install_dir}'
cdcc6a01 2338])