]> gcc.gnu.org Git - gcc.git/blame - gcc/configure.in
Daily bump.
[gcc.git] / gcc / configure.in
CommitLineData
46f18e7b
RK
1# configure.in for GNU CC
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
RK
5
6#This file is part of GNU CC.
7
8#GNU CC is free software; you can redistribute it and/or modify
9#it under the terms of the GNU General Public License as published by
10#the Free Software Foundation; either version 2, or (at your option)
11#any later version.
12
13#GNU CC is distributed in the hope that it will be useful,
14#but WITHOUT ANY WARRANTY; without even the implied warranty of
15#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16#GNU General Public License for more details.
17
18#You should have received a copy of the GNU General Public License
19#along with GNU CC; see the file COPYING. If not, write to
20#the Free Software Foundation, 59 Temple Place - Suite 330,
21#Boston, MA 02111-1307, USA.
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,
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,
4d8392b7 110[ --with-gnu-as arrange to work with GNU as.],
df6faf79
JW
111gas_flag="$with_gnu_as",
112gas_flag=no)
46f18e7b 113
ab339d62
AO
114AC_ARG_WITH(as,
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,
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,
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
RK
141AC_ARG_WITH(local-prefix,
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
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
a494747c
MM
179# Enable expensive internal checks
180AC_ARG_ENABLE(checking,
f4524c9e
ZW
181[ --enable-checking[=LIST]
182 enable expensive run-time checks. With LIST,
183 enable only specific categories of checks.
184 Categories are: misc,tree,rtl,gc,gcac; default
59f406b7 185 is misc,tree,gc],
119d24d1
KG
186[ac_checking=
187ac_tree_checking=
188ac_rtl_checking=
189ac_gc_checking=
190ac_gc_always_collect=
191case "${enableval}" in
51d0e20c 192yes) ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;;
4e88d51b 193no) ;;
59f406b7 194*) IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
f4524c9e
ZW
195 set fnord $enableval; shift
196 IFS="$ac_save_IFS"
c62e45ad
KG
197 for check
198 do
f4524c9e 199 case $check in
119d24d1
KG
200 misc) ac_checking=1 ;;
201 tree) ac_tree_checking=1 ;;
202 rtl) ac_rtl_checking=1 ;;
203 gc) ac_gc_checking=1 ;;
204 gcac) ac_gc_always_collect=1 ;;
f4524c9e
ZW
205 *) AC_MSG_ERROR(unknown check category $check) ;;
206 esac
207 done
208 ;;
119d24d1 209esac
51d0e20c
AJ
210],
211# Enable some checks by default for development versions of GCC
212[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1;])
119d24d1
KG
213if test x$ac_checking != x ; then
214 AC_DEFINE(ENABLE_CHECKING, 1,
215[Define if you want more run-time sanity checks. This one gets a grab
216 bag of miscellaneous but relatively cheap checks.])
217fi
218if test x$ac_tree_checking != x ; then
219 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
220[Define if you want all operations on trees (the basic data
221 structure of the front ends) to be checked for dynamic type safety
222 at runtime. This is moderately expensive.])
223fi
224if test x$ac_rtl_checking != x ; then
225 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
226[Define if you want all operations on RTL (the basic data structure
227 of the optimizer and back end) to be checked for dynamic type safety
228 at runtime. This is quite expensive.])
229fi
230if test x$ac_gc_checking != x ; then
231 AC_DEFINE(ENABLE_GC_CHECKING, 1,
232[Define if you want the garbage collector to do object poisoning and
233 other memory allocation checks. This is quite expensive.])
234fi
235if test x$ac_gc_always_collect != x ; then
236 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
237[Define if you want the garbage collector to operate in maximally
238 paranoid mode, validating the entire heap and collecting garbage at
239 every opportunity. This is extremely expensive.])
240fi
51d0e20c 241
a494747c 242
3ecc3258
ZW
243AC_ARG_ENABLE(cpp,
244[ --disable-cpp don't provide a user-visible C preprocessor.],
245[], [enable_cpp=yes])
246
247AC_ARG_WITH(cpp_install_dir,
248[ --with-cpp-install-dir=DIR
249 install the user visible C preprocessor in DIR
250 (relative to PREFIX) as well as PREFIX/bin.],
251[if test x$withval = xyes; then
252 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
253elif test x$withval != xno; then
254 cpp_install_dir=$withval
255fi])
256
c5c76735
JL
257# Enable Multibyte Characters for C/C++
258AC_ARG_ENABLE(c-mbchar,
259[ --enable-c-mbchar Enable multibyte characters for C and C++.],
2618c083 260if test x$enable_c_mbchar != xno; then
9ec7291f
ZW
261 AC_DEFINE(MULTIBYTE_CHARS, 1,
262 [Define if you want the C and C++ compilers to support multibyte
263 character sets for source code.])
c5c76735
JL
264fi)
265
0bbb1697
RK
266# Enable threads
267# Pass with no value to take the default
268# Pass with a value to specify a thread package
269AC_ARG_ENABLE(threads,
270[ --enable-threads enable thread usage for target GCC.
981d4858 271 --enable-threads=LIB use LIB thread package for target GCC.],,
0bbb1697
RK
272enable_threads='')
273
e445171e 274enable_threads_flag=$enable_threads
0bbb1697 275# Check if a valid thread package
e445171e 276case x${enable_threads_flag} in
0bbb1697
RK
277 x | xno)
278 # No threads
a851212a 279 target_thread_file='single'
0bbb1697
RK
280 ;;
281 xyes)
282 # default
a851212a 283 target_thread_file=''
0bbb1697
RK
284 ;;
285 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
a473fe45 286 xsolaris | xwin32 | xdce | xvxworks | xaix)
e445171e 287 target_thread_file=$enable_threads_flag
0bbb1697
RK
288 ;;
289 *)
290 echo "$enable_threads is an unknown thread package" 1>&2
291 exit 1
292 ;;
293esac
294
d8bb17c8
OP
295AC_ARG_ENABLE(objc-gc,
296[ --enable-objc-gc enable the use of Boehm's garbage collector with
297 the GNU Objective-C runtime.],
2618c083 298if test x$enable_objc_gc = xno; then
d8bb17c8
OP
299 objc_boehm_gc=''
300else
301 objc_boehm_gc=1
302fi,
303objc_boehm_gc='')
304
90e6a802 305AC_ARG_WITH(dwarf2,
756ee602 306[ --with-dwarf2 force the default debug format to be DWARF2.],
90e6a802
RL
307dwarf2="$with_dwarf2",
308dwarf2=no)
309
50503ac8
RH
310AC_ARG_ENABLE(shared,
311[ --disable-shared don't provide a shared libgcc.],
312[], [enable_shared=yes])
313AC_SUBST(enable_shared)
314
46f18e7b
RK
315# Determine the host, build, and target systems
316AC_CANONICAL_SYSTEM
317
e9a25f70
JL
318# Find the native compiler
319AC_PROG_CC
3ec83fc2 320AC_PROG_CC_C_O
b8dad04b 321# autoconf is lame and doesn't give us any substitution variable for this.
e38df833 322if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
b4c7e567 323 NO_MINUS_C_MINUS_O=yes
b8dad04b
ZW
324else
325 OUTPUT_OPTION='-o $@'
b4c7e567 326fi
3ec83fc2 327AC_SUBST(NO_MINUS_C_MINUS_O)
b8dad04b 328AC_SUBST(OUTPUT_OPTION)
3ec83fc2 329
99e757d5 330gcc_AC_C_LONG_DOUBLE
61842080 331
97d81d66
JM
332AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
333ac_cv_prog_cc_no_long_long,
334[save_CFLAGS="$CFLAGS"
335CFLAGS="-Wno-long-long"
336AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
337 ac_cv_prog_cc_no_long_long=no)
338CFLAGS="$save_CFLAGS"])
b8dad04b
ZW
339strict1_warn=
340if test $ac_cv_prog_cc_no_long_long = yes; then
341 strict1_warn="-pedantic -Wno-long-long"
342fi
343AC_SUBST(strict1_warn)
ff5def20 344
61842080
MM
345# If the native compiler is GCC, we can enable warnings even in stage1.
346# That's useful for people building cross-compilers, or just running a
347# quick `make'.
b8dad04b
ZW
348warn_cflags=
349if test "x$GCC" = "xyes"; then
350 warn_cflags='$(GCC_WARN_CFLAGS)'
61842080 351fi
b8dad04b 352AC_SUBST(warn_cflags)
5b67ad6f
DA
353
354# Stage specific cflags for build.
b8dad04b 355stage1_cflags=
5b67ad6f
DA
356case $build in
357vax-*-*)
358 if test x$GCC = xyes
359 then
b8dad04b 360 stage1_cflags="-Wa,-J"
5b67ad6f 361 else
b8dad04b 362 stage1_cflags="-J"
5b67ad6f
DA
363 fi
364 ;;
365esac
b8dad04b 366AC_SUBST(stage1_cflags)
61842080 367
e9a25f70
JL
368AC_PROG_MAKE_SET
369
ab339d62 370AC_MSG_CHECKING([whether a default assembler was specified])
3ccc3a56 371if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
e154a394 372 if test x"$gas_flag" = x"no"; then
3ccc3a56 373 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
ab339d62 374 else
3ccc3a56 375 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
ab339d62
AO
376 fi
377else
378 AC_MSG_RESULT(no)
379fi
380
381AC_MSG_CHECKING([whether a default linker was specified])
3ccc3a56 382if test x"${DEFAULT_LINKER+set}" = x"set"; then
e154a394 383 if test x"$gnu_ld_flag" = x"no"; then
3ccc3a56 384 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
ab339d62 385 else
3ccc3a56 386 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
ab339d62
AO
387 fi
388else
389 AC_MSG_RESULT(no)
390fi
391
4070d885
AJ
392AC_MSG_CHECKING(for GNU C library)
393AC_CACHE_VAL(gcc_cv_glibc,
394[AC_TRY_COMPILE(
395 [#include <features.h>],[
396#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
397#error Not a GNU C library system
398#endif],
399 [gcc_cv_glibc=yes],
400 gcc_cv_glibc=no)])
401AC_MSG_RESULT($gcc_cv_glibc)
c2f7d403 402if test $gcc_cv_glibc = yes; then
4070d885
AJ
403 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
404fi
4797e955 405
603832a0
PT
406AC_C_INLINE
407
46f18e7b
RK
408# Find some useful tools
409AC_PROG_AWK
99e757d5
KG
410gcc_AC_PROG_LN
411gcc_AC_PROG_LN_S
412gcc_AC_C_VOLATILE
46f18e7b 413AC_PROG_RANLIB
99e757d5 414gcc_AC_PROG_INSTALL
46f18e7b 415
956d6950
JL
416AC_HEADER_STDC
417AC_HEADER_TIME
99e757d5 418gcc_AC_HEADER_STRING
e9831ca0 419AC_HEADER_SYS_WAIT
03c41c05
ZW
420AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
421 fcntl.h unistd.h stab.h sys/file.h sys/time.h \
422 sys/resource.h sys/param.h sys/times.h sys/stat.h \
16abe34a 423 direct.h malloc.h langinfo.h iconv.h)
7636d567 424
f24af81b
TT
425# Check for thread headers.
426AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
427AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
428
bcf12124
JL
429# See if GNAT has been installed
430AC_CHECK_PROG(gnat, gnatbind, yes, no)
431
955be633
JM
432# See if we have the mktemp command.
433AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
434
09fa0705
ZW
435# Do we have a single-tree copy of texinfo?
436if test -f $srcdir/../texinfo/Makefile.in; then
437 MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
438 gcc_cv_prog_makeinfo_modern=yes
439 AC_MSG_RESULT([Using makeinfo from the unified source tree.])
440else
441 # See if makeinfo has been installed and is modern enough
442 # that we can use it.
443 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
444 [GNU texinfo.* \([0-9][0-9.]*\)],
fd939e46 445 [4.*])
09fa0705
ZW
446fi
447
448if test $gcc_cv_prog_makeinfo_modern = no; then
449 AC_MSG_WARN([
450*** Makeinfo is missing or too old.
17db6582 451*** Info documentation will not be built.])
09fa0705 452 BUILD_INFO=
09fa0705
ZW
453else
454 BUILD_INFO=info AC_SUBST(BUILD_INFO)
09fa0705
ZW
455fi
456
3f896fc2
JM
457# Is pod2man recent enough to regenerate manpages?
458AC_MSG_CHECKING([for recent Pod::Man])
459if perl -e 'use 1.10 Pod::Man' >/dev/null 2>&1; then
fd939e46
JM
460 AC_MSG_RESULT(yes)
461 GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES)
462else
463 AC_MSG_RESULT(no)
464 GENERATED_MANPAGES=
465fi
466
1e608388
ZW
467# How about lex?
468dnl Don't use AC_PROG_LEX; we insist on flex.
469dnl LEXLIB is not useful in gcc.
470if test -f $srcdir/../flex/skel.c; then
471 FLEX='$(objdir)/../flex/flex'
472else
473 AC_CHECK_PROG(FLEX, flex, flex, false)
474fi
475
476# Bison?
477# The -L switch is so bison can find its skeleton file.
478if test -f $srcdir/../bison/bison.simple; then
479 BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
480else
481 AC_CHECK_PROG(BISON, bison, bison, false)
482fi
483
890ad3ea
KG
484# See if the stage1 system preprocessor understands the ANSI C
485# preprocessor stringification operator.
486AC_C_STRINGIZE
76844337 487
7636d567
JW
488# Use <inttypes.h> only if it exists,
489# doesn't clash with <sys/types.h>, and declares intmax_t.
490AC_MSG_CHECKING(for inttypes.h)
491AC_CACHE_VAL(gcc_cv_header_inttypes_h,
492[AC_TRY_COMPILE(
493 [#include <sys/types.h>
494#include <inttypes.h>],
495 [intmax_t i = -1;],
9da0e39b 496 [gcc_cv_header_inttypes_h=yes],
7636d567
JW
497 gcc_cv_header_inttypes_h=no)])
498AC_MSG_RESULT($gcc_cv_header_inttypes_h)
9da0e39b 499if test $gcc_cv_header_inttypes_h = yes; then
119d24d1
KG
500 AC_DEFINE(HAVE_INTTYPES_H, 1,
501 [Define if you have a working <inttypes.h> header file.])
9da0e39b 502fi
cdcc6a01 503
c149cc37
RL
504#
505# Determine if enumerated bitfields are unsigned. ISO C says they can
506# be either signed or unsigned.
507#
508AC_CACHE_CHECK(for unsigned enumerated bitfields, gcc_cv_enum_bf_unsigned,
509[AC_TRY_RUN(#include <stdlib.h>
510enum t { BLAH = 128 } ;
511struct s_t { enum t member : 8; } s ;
512int main(void)
513{
514 s.member = BLAH;
515 if (s.member < 0) exit(1);
516 exit(0);
517
518}, gcc_cv_enum_bf_unsigned=yes, gcc_cv_enum_bf_unsigned=no, gcc_cv_enum_bf_unsigned=yes)])
c149cc37
RL
519if test $gcc_cv_enum_bf_unsigned = yes; then
520 AC_DEFINE(ENUM_BITFIELDS_ARE_UNSIGNED, 1,
521 [Define if enumerated bitfields are treated as unsigned values.])
522fi
523
2e09e75a
JM
524AC_CHECK_FUNCS(strtoul bsearch putenv popen bcopy \
525 strchr strrchr kill getrlimit setrlimit atoll atoq \
54953b66 526 sysconf isascii gettimeofday strsignal putc_unlocked fputc_unlocked \
130fadbb 527 fputs_unlocked getrusage iconv nl_langinfo)
a81fb89e 528
f12bc141 529AC_CHECK_TYPE(ssize_t, int)
56f48ce9 530
e256b8b6
DA
531# Try to determine the array type of the second argument of getgroups
532# for the target system (int or gid_t).
533AC_TYPE_GETGROUPS
534if test "${target}" = "${build}"; then
535 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
536else
537 case "${target}" in
538 # This condition may need some tweaking. It should include all
539 # targets where the array type of the second argument of getgroups
540 # is int and the type of gid_t is not equivalent to int.
541 *-*-sunos* | *-*-ultrix*)
542 TARGET_GETGROUPS_T=int
543 ;;
544 *)
545 TARGET_GETGROUPS_T=gid_t
546 ;;
547 esac
548fi
549AC_SUBST(TARGET_GETGROUPS_T)
550
99e757d5 551gcc_AC_FUNC_VFPRINTF_DOPRNT
b3e1e64f 552gcc_AC_FUNC_STRSTR
99e757d5 553gcc_AC_FUNC_PRINTF_PTR
b27d2bd5
MK
554
555case "${host}" in
556*-*-uwin*)
34fa3e7d
MM
557 AC_MSG_ERROR([
558*** UWIN may not be used as a host platform because
559*** linking with posix.dll is not allowed by the GNU GPL])
b27d2bd5
MK
560 ;;
561esac
c375c43b 562AC_FUNC_VFORK
4acab94b 563AC_FUNC_MMAP_ANYWHERE
56f02b88 564AC_FUNC_MMAP_FILE
f1b54f9b 565
86cf1cbd
KG
566# We will need to find libiberty.h and ansidecl.h
567saved_CFLAGS="$CFLAGS"
568CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
2e09e75a
JM
569gcc_AC_CHECK_DECLS(bcopy \
570 getenv atol sbrk abort atof getcwd getwd \
86cf1cbd 571 strsignal putc_unlocked fputs_unlocked strstr environ \
f31e826b 572 malloc realloc calloc free basename getopt, , ,[
86cf1cbd
KG
573#include "gansidecl.h"
574#include "system.h"])
c5c76735 575
f31e826b 576gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
86cf1cbd
KG
577#include "gansidecl.h"
578#include "system.h"
d2cabf16
KG
579#ifdef HAVE_SYS_RESOURCE_H
580#include <sys/resource.h>
581#endif
582])
583
86cf1cbd
KG
584# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
585CFLAGS="$saved_CFLAGS"
586
75923b2f 587# mkdir takes a single argument on some systems.
99e757d5 588gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
75923b2f 589
46f18e7b
RK
590# File extensions
591manext='.1'
592objext='.o'
46f18e7b
RK
593AC_SUBST(manext)
594AC_SUBST(objext)
46f18e7b
RK
595
596build_xm_file=
61536478 597build_xm_defines=
46f18e7b
RK
598build_install_headers_dir=install-headers-tar
599build_exeext=
600host_xm_file=
61536478 601host_xm_defines=
46f18e7b
RK
602host_xmake_file=
603host_truncate_target=
6e26218f 604host_exeext=
46f18e7b
RK
605
606# Decode the host machine, then the target machine.
607# For the host machine, we save the xm_file variable as host_xm_file;
608# then we decode the target machine and forget everything else
609# that came from the host machine.
610for machine in $build $host $target; do
61ed06c3 611 . ${srcdir}/config.gcc
46f18e7b
RK
612done
613
614extra_objs="${host_extra_objs} ${extra_objs}"
615
616# Default the target-machine variables that were not explicitly set.
75bffa71 617if test x"$tm_file" = x
46f18e7b
RK
618then tm_file=$cpu_type/$cpu_type.h; fi
619
6b2adea9 620if test x"$extra_headers" = x
46f18e7b
RK
621then extra_headers=; fi
622
75bffa71 623if test x"$xm_file" = x
46f18e7b
RK
624then xm_file=$cpu_type/xm-$cpu_type.h; fi
625
75bffa71 626if test x$md_file = x
e98e406f 627then md_file=$cpu_type/$cpu_type.md; fi
46f18e7b 628
75bffa71 629if test x$out_file = x
46f18e7b
RK
630then out_file=$cpu_type/$cpu_type.c; fi
631
75bffa71 632if test x"$tmake_file" = x
46f18e7b
RK
633then tmake_file=$cpu_type/t-$cpu_type
634fi
635
90e6a802 636if test x"$dwarf2" = xyes
756ee602 637then tm_file="$tm_file tm-dwarf2.h"
90e6a802
RL
638fi
639
75bffa71 640if test x$float_format = x
46f18e7b
RK
641then float_format=i64
642fi
643
027ea2a7
JW
644if test $float_format = none
645then float_h_file=Makefile.in
646else float_h_file=float-$float_format.h
647fi
648
9fc9b82a 649# Handle cpp installation.
3ecc3258 650if test x$enable_cpp != xno
9fc9b82a
L
651then
652 tmake_file="$tmake_file t-install-cpp"
653fi
654
46f18e7b
RK
655# Say what files are being used for the output code and MD file.
656echo "Using \`$srcdir/config/$out_file' to output insns."
657echo "Using \`$srcdir/config/$md_file' as machine description file."
658
659count=a
660for f in $tm_file; do
661 count=${count}x
662done
75bffa71 663if test $count = ax; then
46f18e7b
RK
664 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
665else
666 echo "Using the following target machine macro files:"
667 for f in $tm_file; do
668 echo " $srcdir/config/$f"
669 done
670fi
671
672count=a
673for f in $host_xm_file; do
674 count=${count}x
675done
75bffa71 676if test $count = ax; then
46f18e7b
RK
677 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
678else
679 echo "Using the following host machine macro files:"
680 for f in $host_xm_file; do
681 echo " $srcdir/config/$f"
682 done
683fi
684
75bffa71 685if test "$host_xm_file" != "$build_xm_file"; then
46f18e7b
RK
686 count=a
687 for f in $build_xm_file; do
688 count=${count}x
689 done
75bffa71 690 if test $count = ax; then
46f18e7b
RK
691 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
692 else
693 echo "Using the following build machine macro files:"
694 for f in $build_xm_file; do
695 echo " $srcdir/config/$f"
696 done
697 fi
698fi
699
75bffa71
ILT
700if test x$thread_file = x; then
701 if test x$target_thread_file != x; then
a851212a
JW
702 thread_file=$target_thread_file
703 else
704 thread_file='single'
705 fi
46f18e7b 706fi
46f18e7b
RK
707
708# Set up the header files.
709# $links is the list of header files to create.
710# $vars is the list of shell variables with file names to include.
b7cb92ad 711# auto-host.h is the file containing items generated by autoconf and is
e9a25f70 712# the first file included by config.h.
61536478 713null_defines=
c913b6f1 714host_xm_file="auto-host.h gansidecl.h ${host_xm_file} defaults.h hwint.h"
db81d74a 715
b7cb92ad 716# If host=build, it is correct to have hconfig include auto-host.h
db81d74a
RH
717# as well. If host!=build, we are in error and need to do more
718# work to find out the build config parameters.
75bffa71 719if test x$host = x$build
db81d74a 720then
c913b6f1 721 build_xm_file="auto-host.h gansidecl.h ${build_xm_file} defaults.h hwint.h"
b7cb92ad
JL
722else
723 # We create a subdir, then run autoconf in the subdir.
724 # To prevent recursion we set host and build for the new
725 # invocation of configure to the build for this invocation
726 # of configure.
727 tempdir=build.$$
728 rm -rf $tempdir
729 mkdir $tempdir
730 cd $tempdir
731 case ${srcdir} in
b86ecfa9 732 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
b7cb92ad
JL
733 *) realsrcdir=../${srcdir};;
734 esac
fe81dd69 735 CC=${CC_FOR_BUILD} ${realsrcdir}/configure \
b7cb92ad
JL
736 --target=$target --host=$build --build=$build
737
738 # We just finished tests for the build machine, so rename
739 # the file auto-build.h in the gcc directory.
740 mv auto-host.h ../auto-build.h
741 cd ..
742 rm -rf $tempdir
c913b6f1 743 build_xm_file="auto-build.h gansidecl.h ${build_xm_file} defaults.h hwint.h"
db81d74a
RH
744fi
745
c913b6f1
KG
746xm_file="gansidecl.h ${xm_file} defaults.h"
747tm_file="gansidecl.h ${tm_file} defaults.h"
0056a9b5 748
6baf1cc8
BS
749vars="host_xm_file tm_file tm_p_file xm_file build_xm_file"
750links="config.h tm.h tm_p.h tconfig.h hconfig.h"
751defines="host_xm_defines null_defines null_defines xm_defines build_xm_defines"
46f18e7b
RK
752
753rm -f config.bak
75bffa71 754if test -f config.status; then mv -f config.status config.bak; fi
46f18e7b
RK
755
756# Make the links.
75bffa71 757while test -n "$vars"
46f18e7b 758do
46f18e7b
RK
759 set $vars; var=$1; shift; vars=$*
760 set $links; link=$1; shift; links=$*
61536478 761 set $defines; define=$1; shift; defines=$*
46f18e7b
RK
762
763 rm -f $link
6baf1cc8
BS
764 # Make sure the file is created, even if it is empty.
765 echo >$link
46f18e7b
RK
766
767 # Define TARGET_CPU_DEFAULT if the system wants one.
768 # This substitutes for lots of *.h files.
75bffa71 769 if test "$target_cpu_default" != "" -a $link = tm.h
46f18e7b 770 then
8fbf199e 771 echo "#define TARGET_CPU_DEFAULT ($target_cpu_default)" >>$link
46f18e7b
RK
772 fi
773
774 for file in `eval echo '$'$var`; do
ab87f8c8 775 case $file in
6efa1582 776 auto-host.h | auto-build.h )
ab87f8c8
JL
777 ;;
778 *)
779 echo '#ifdef IN_GCC' >>$link
780 ;;
781 esac
46f18e7b 782 echo "#include \"$file\"" >>$link
ab87f8c8 783 case $file in
6efa1582 784 auto-host.h | auto-build.h )
ab87f8c8
JL
785 ;;
786 *)
787 echo '#endif' >>$link
788 ;;
789 esac
46f18e7b 790 done
61536478
JL
791
792 for def in `eval echo '$'$define`; do
793 echo "#ifndef $def" >>$link
794 echo "#define $def" >>$link
795 echo "#endif" >>$link
796 done
04d430b8
AO
797
798 if test $link = tm.h
799 then
800 # Include insn-codes.h last, because it includes machmode.h,
801 # and we want EXTRA_CC_MODES to be taken into account.
802 echo "#ifndef GENERATOR_FILE" >>$link
803 echo "#include \"insn-codes.h\"" >>$link
804 echo "#endif" >>$link
805 fi
46f18e7b
RK
806done
807
808# Truncate the target if necessary
75bffa71 809if test x$host_truncate_target != x; then
46f18e7b
RK
810 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
811fi
812
f1943b77 813# Get the version trigger filename from the toplevel
75bffa71 814if test "${with_gcc_version_trigger+set}" = set; then
f1943b77
MH
815 gcc_version_trigger=$with_gcc_version_trigger
816else
817 gcc_version_trigger=${srcdir}/version.c
818fi
75bffa71 819changequote(,)dnl
8763704d
JM
820gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'`
821gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
cc1e60ea
JM
822
823# Compile in configure arguments.
8105825d 824if test -f configargs.h ; then
cc1e60ea
JM
825 # Being re-configured.
826 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*\"\([^\"]*\)\".*/\1/'`
827 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
828else
829 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
830fi
831cat > configargs.h <<EOF
832/* Generated automatically. */
833static const char configuration_arguments[] = "$gcc_config_arguments";
834EOF
75bffa71 835changequote([,])dnl
46f18e7b 836
ab87f8c8
JL
837# Internationalization
838PACKAGE=gcc
839VERSION="$gcc_version"
119d24d1
KG
840AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",
841 [Define to the name of the distribution.])
842AC_DEFINE_UNQUOTED(VERSION, "$VERSION",
843 [Define to the version of the distribution.])
ab87f8c8
JL
844AC_SUBST(PACKAGE)
845AC_SUBST(VERSION)
846
2be36552 847ALL_LINGUAS="sv"
ab87f8c8 848
dc6746e7 849# Enable NLS support by default
ab87f8c8 850AC_ARG_ENABLE(nls,
dc6746e7
PT
851 [ --enable-nls use Native Language Support (default)],
852 , enable_nls=yes)
853
854# if cross compiling, disable NLS support.
855# It's not worth the trouble, at least for now.
856
063a4b85 857if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
dc6746e7
PT
858 AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
859 enable_nls=no
860fi
ab87f8c8 861
4adee315
PT
862# if NLS is enabled, also enable check in po subdir
863if test $enable_nls = yes; then
864 CHECK_PO=check-po
865else
866 CHECK_PO=""
867fi
868
869AC_SUBST(CHECK_PO)
870
ab87f8c8
JL
871AM_GNU_GETTEXT
872XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT"
873
f4ab28e3
MK
874# Windows32 Registry support for specifying GCC installation paths.
875AC_ARG_ENABLE(win32-registry,
876[ --disable-win32-registry
877 Disable lookup of installation paths in the
878 Registry on Windows hosts.
879 --enable-win32-registry Enable registry lookup (default).
880 --enable-win32-registry=KEY
881 Use KEY instead of GCC version as the last portion
882 of the registry key.],,)
883
884AC_MSG_CHECKING(whether windows registry support is requested)
885if test x$enable_win32_registry != xno; then
119d24d1
KG
886 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
887[Define to 1 if installation paths should be looked up in Windows32
91029a29 888 Registry. Ignored on non windows32 hosts.])
f4ab28e3
MK
889 AC_MSG_RESULT(yes)
890else
891 AC_MSG_RESULT(no)
892fi
893
894# Check if user specified a different registry key.
895case x${enable_win32_registry} in
896x | xyes)
897 # default.
898 gcc_cv_win32_registry_key="$VERSION"
899 ;;
900xno)
901 # no registry lookup.
902 gcc_cv_win32_registry_key=''
903 ;;
904*)
905 # user-specified key.
906 gcc_cv_win32_registry_key="$enable_win32_registry"
907 ;;
908esac
909
910if test x$enable_win32_registry != xno; then
911 AC_MSG_CHECKING(registry key on windows hosts)
119d24d1
KG
912 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
913 [Define to be the last portion of registry key on windows hosts.])
f4ab28e3
MK
914 AC_MSG_RESULT($gcc_cv_win32_registry_key)
915fi
916
7fa10b25
RK
917# Get an absolute path to the GCC top-level source directory
918holddir=`pwd`
919cd $srcdir
920topdir=`pwd`
921cd $holddir
922
af5e4ada 923# Conditionalize the makefile for this host machine.
94f42018
DE
924# Make-host contains the concatenation of all host makefile fragments
925# [there can be more than one]. This file is built by configure.frag.
926host_overrides=Make-host
af5e4ada 927dep_host_xmake_file=
94f42018
DE
928for f in .. ${host_xmake_file}
929do
75bffa71 930 if test -f ${srcdir}/config/$f
94f42018
DE
931 then
932 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
933 fi
934done
46f18e7b 935
af5e4ada 936# Conditionalize the makefile for this target machine.
94f42018
DE
937# Make-target contains the concatenation of all host makefile fragments
938# [there can be more than one]. This file is built by configure.frag.
939target_overrides=Make-target
af5e4ada 940dep_tmake_file=
94f42018
DE
941for f in .. ${tmake_file}
942do
75bffa71 943 if test -f ${srcdir}/config/$f
94f42018
DE
944 then
945 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
946 fi
947done
5891b37d 948
af5e4ada
DE
949# If the host doesn't support symlinks, modify CC in
950# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
951# Otherwise, we can use "CC=$(CC)".
952rm -f symtest.tem
61536478 953if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
af5e4ada
DE
954then
955 cc_set_by_configure="\$(CC)"
5aa82ace 956 quoted_cc_set_by_configure="\$(CC)"
af5e4ada
DE
957 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
958else
61536478
JL
959 rm -f symtest.tem
960 if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
961 then
962 symbolic_link="cp -p"
963 else
964 symbolic_link="cp"
965 fi
af5e4ada 966 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
5aa82ace 967 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
af5e4ada
DE
968 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
969fi
970rm -f symtest.tem
5891b37d 971
af5e4ada 972out_object_file=`basename $out_file .c`.o
5891b37d 973
af5e4ada
DE
974tm_file_list=
975for f in $tm_file; do
64ccbc99 976 case $f in
c913b6f1 977 gansidecl.h | defaults.h )
64ccbc99
KG
978 tm_file_list="${tm_file_list} $f" ;;
979 *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
980 esac
af5e4ada 981done
46f18e7b 982
af5e4ada
DE
983host_xm_file_list=
984for f in $host_xm_file; do
64ccbc99 985 case $f in
c913b6f1 986 auto-host.h | gansidecl.h | defaults.h | hwint.h )
64ccbc99
KG
987 host_xm_file_list="${host_xm_file_list} $f" ;;
988 *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
989 esac
af5e4ada
DE
990done
991
992build_xm_file_list=
993for f in $build_xm_file; do
64ccbc99 994 case $f in
c913b6f1 995 auto-build.h | auto-host.h | gansidecl.h | defaults.h | hwint.h )
64ccbc99
KG
996 build_xm_file_list="${build_xm_file_list} $f" ;;
997 *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
998 esac
af5e4ada 999done
46f18e7b 1000
af5e4ada
DE
1001# Define macro CROSS_COMPILE in compilation
1002# if this is a cross-compiler.
1003# Also use all.cross instead of all.internal
1004# and add cross-make to Makefile.
571a8de5 1005cross_overrides="/dev/null"
75bffa71 1006if test x$host != x$target
af5e4ada
DE
1007then
1008 cross_defines="CROSS=-DCROSS_COMPILE"
1009 cross_overrides="${topdir}/cross-make"
1010fi
46f18e7b 1011
b39d221a
EC
1012# If this is a cross-compiler that does not
1013# have its own set of headers then define
1014# inhibit_libc
1015
1016# If this is using newlib, then define inhibit_libc in
1017# LIBGCC2_CFLAGS. This will cause __eprintf to be left out of
1018# libgcc.a, but that's OK because newlib should have its own version of
1019# assert.h.
1020inhibit_libc=
1021if [test x$host != x$target] && [test x$with_headers = x]; then
1022 inhibit_libc=-Dinhibit_libc
1023else
1024 if [test x$with_newlib = xyes]; then
1025 inhibit_libc=-Dinhibit_libc
1026 fi
1027fi
1028AC_SUBST(inhibit_libc)
1029
af5e4ada
DE
1030# When building gcc with a cross-compiler, we need to fix a few things.
1031# This must come after cross-make as we want all.build to override
1032# all.cross.
571a8de5 1033build_overrides="/dev/null"
75bffa71 1034if test x$build != x$host
af5e4ada
DE
1035then
1036 build_overrides="${topdir}/build-make"
1037fi
46f18e7b 1038
ae3a15bb
DE
1039# Expand extra_headers to include complete path.
1040# This substitutes for lots of t-* files.
1041extra_headers_list=
75bffa71 1042if test "x$extra_headers" = x
ae3a15bb
DE
1043then true
1044else
1045 # Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
1046 for file in $extra_headers;
1047 do
1048 extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}"
1049 done
1050fi
1051
75bffa71 1052if test x$use_collect2 = xno; then
2ce3c6c6
JM
1053 use_collect2=
1054fi
1055
af5e4ada
DE
1056# Add a definition of USE_COLLECT2 if system wants one.
1057# Also tell toplev.c what to do.
1058# This substitutes for lots of t-* files.
75bffa71 1059if test x$use_collect2 = x
af5e4ada
DE
1060then
1061 will_use_collect2=
1062 maybe_use_collect2=
1063else
10da1131 1064 will_use_collect2="collect2"
af5e4ada
DE
1065 maybe_use_collect2="-DUSE_COLLECT2"
1066fi
1067
af5e4ada 1068# If we have gas in the build tree, make a link to it.
75bffa71 1069if test -f ../gas/Makefile; then
6e26218f 1070 rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
af5e4ada
DE
1071fi
1072
4b95eb49 1073# If we have nm in the build tree, make a link to it.
75bffa71 1074if test -f ../binutils/Makefile; then
4b95eb49
JL
1075 rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
1076fi
1077
af5e4ada 1078# If we have ld in the build tree, make a link to it.
75bffa71
ILT
1079if test -f ../ld/Makefile; then
1080# if test x$use_collect2 = x; then
6e26218f 1081# rm -f ld; $symbolic_link ../ld/ld-new$host_exeext ld$host_exeext 2>/dev/null
aa32d841 1082# else
6e26218f 1083 rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
aa32d841 1084# fi
af5e4ada
DE
1085fi
1086
981d4858
JM
1087# Figure out what assembler we will be using.
1088AC_MSG_CHECKING(what assembler to use)
9e423e6d 1089gcc_cv_as=
981d4858
JM
1090gcc_cv_gas_major_version=
1091gcc_cv_gas_minor_version=
a2f319ea 1092gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
3ccc3a56
AO
1093if test -x "$DEFAULT_ASSEMBLER"; then
1094 gcc_cv_as="$DEFAULT_ASSEMBLER"
1095elif test -x "$AS"; then
1096 gcc_cv_as="$AS"
ab339d62 1097elif test -x as$host_exeext; then
9e423e6d
JW
1098 # Build using assembler in the current directory.
1099 gcc_cv_as=./as$host_exeext
5585c1bc 1100elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
9e423e6d 1101 # Single tree build which includes gas.
a2c9d57c 1102 for f in $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
9e423e6d 1103 do
75bffa71
ILT
1104changequote(,)dnl
1105 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1106changequote([,])dnl
1107 if test x$gcc_cv_gas_version != x; then
9e423e6d
JW
1108 break
1109 fi
1110 done
75bffa71
ILT
1111changequote(,)dnl
1112 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1113 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1114changequote([,])dnl
981d4858
JM
1115fi
1116
1117if test "x$gcc_cv_as" = x -a x$host = x$target; then
9e423e6d 1118 # Native build.
779243f7
JL
1119 # Search the same directories that the installed compiler will
1120 # search. Else we may find the wrong assembler and lose. If we
1121 # do not find a suitable assembler binary, then try the user's
1122 # path.
1123 #
1124 # Also note we have to check MD_EXEC_PREFIX before checking the
1125 # user's path. Unfortunately, there is no good way to get at the
1126 # value of MD_EXEC_PREFIX here. So we do a brute force search
1127 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1128 # to be fixed as part of the make/configure rewrite too.
1129
1130 if test "x$exec_prefix" = xNONE; then
1131 if test "x$prefix" = xNONE; then
1132 test_prefix=/usr/local
1133 else
1134 test_prefix=$prefix
1135 fi
1136 else
1137 test_prefix=$exec_prefix
1138 fi
1139
1140 # If the loop below does not find an assembler, then use whatever
1141 # one we can find in the users's path.
1142 # user's path.
1143 as=as$host_exeext
1144
1145 test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
1146 $test_prefix/lib/gcc-lib/$target \
1147 /usr/lib/gcc/$target/$gcc_version \
1148 /usr/lib/gcc/$target \
1149 $test_prefix/$target/bin/$target/$gcc_version \
1150 $test_prefix/$target/bin \
1151 /usr/libexec \
1152 /usr/ccs/gcc \
1153 /usr/ccs/bin \
1154 /udk/usr/ccs/bin \
1155 /bsd43/usr/lib/cmplrs/cc \
1156 /usr/cross64/usr/bin \
1157 /usr/lib/cmplrs/cc \
1158 /sysv/usr/lib/cmplrs/cc \
1159 /svr4/usr/lib/cmplrs/cc \
1160 /usr/bin"
1161
1162 for dir in $test_dirs; do
1163 if test -f $dir/as$host_exeext; then
1164 gcc_cv_as=$dir/as$host_exeext
1165 break;
1166 fi
1167 done
9e423e6d 1168fi
981d4858
JM
1169if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1170 AC_MSG_RESULT("newly built gas")
1171else
1172 AC_MSG_RESULT($gcc_cv_as)
1173fi
1174
1175# Figure out what nm we will be using.
1176AC_MSG_CHECKING(what nm to use)
1177if test -x nm$host_exeext; then
1178 gcc_cv_nm=./nm$host_exeext
1179elif test x$host = x$target; then
1180 # Native build.
1181 gcc_cv_nm=nm$host_exeext
1182fi
1183AC_MSG_RESULT($gcc_cv_nm)
1184
1185# Figure out what assembler alignment features are present.
1186AC_MSG_CHECKING(assembler alignment features)
9d147085 1187gcc_cv_as_alignment_features=none
981d4858
JM
1188if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1189 # Gas version 2.6 and later support for .balign and .p2align.
1190 # bytes to skip when using .p2align.
1191 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
1192 gcc_cv_as_alignment_features=".balign and .p2align"
1193 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1194 fi
1195 # Gas version 2.8 and later support specifying the maximum
1196 # bytes to skip when using .p2align.
1197 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
1198 gcc_cv_as_alignment_features=".p2align including maximum skip"
1199 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1200 fi
1201elif test x$gcc_cv_as != x; then
00ccc16d
JL
1202 # Check if we have .balign and .p2align
1203 echo ".balign 4" > conftest.s
1204 echo ".p2align 2" >> conftest.s
1205 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1206 gcc_cv_as_alignment_features=".balign and .p2align"
1207 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1208 fi
1209 rm -f conftest.s conftest.o
9e423e6d
JW
1210 # Check if specifying the maximum bytes to skip when
1211 # using .p2align is supported.
1212 echo ".p2align 4,,7" > conftest.s
1213 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1214 gcc_cv_as_alignment_features=".p2align including maximum skip"
1215 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1216 fi
1217 rm -f conftest.s conftest.o
1218fi
1219AC_MSG_RESULT($gcc_cv_as_alignment_features)
1220
d1accaa3 1221AC_MSG_CHECKING(assembler subsection support)
9d147085 1222gcc_cv_as_subsections=no
981d4858
JM
1223if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1224 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
1225 gcc_cv_as_subsections="working .subsection -1"
1226 fi
1227elif test x$gcc_cv_as != x; then
d1accaa3
JJ
1228 # Check if we have .subsection
1229 echo ".subsection 1" > conftest.s
1230 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1231 gcc_cv_as_subsections=".subsection"
d1accaa3
JJ
1232 if test x$gcc_cv_nm != x; then
1233 cat > conftest.s <<EOF
1234conftest_label1: .word 0
1235.subsection -1
1236conftest_label2: .word 0
1237.previous
1238EOF
1239 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1240 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1241 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1b015bec
AO
1242 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1243 :
1244 else
d1accaa3 1245 gcc_cv_as_subsections="working .subsection -1"
d1accaa3
JJ
1246 fi
1247 fi
1248 fi
1249 fi
1250 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1251fi
981d4858
JM
1252if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1253 AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1254[Define if your assembler supports .subsection and .subsection -1 starts
1255 emitting at the beginning of your section.])
1256fi
d1accaa3
JJ
1257AC_MSG_RESULT($gcc_cv_as_subsections)
1258
12822146 1259AC_MSG_CHECKING(assembler weak support)
9d147085 1260gcc_cv_as_weak=no
981d4858
JM
1261if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1262 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
1263 gcc_cv_as_weak="yes"
1264 fi
1265elif test x$gcc_cv_as != x; then
12822146
JL
1266 # Check if we have .weak
1267 echo " .weak foobar" > conftest.s
1268 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
12822146
JL
1269 gcc_cv_as_weak="yes"
1270 fi
1271 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1272fi
981d4858
JM
1273if test x"$gcc_cv_as_weak" = xyes; then
1274 AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1275fi
12822146
JL
1276AC_MSG_RESULT($gcc_cv_as_weak)
1277
6a9c5260 1278AC_MSG_CHECKING(assembler hidden support)
9d147085 1279gcc_cv_as_hidden=no
981d4858
JM
1280if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1281 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
1282 gcc_cv_as_hidden="yes"
1283 fi
1284elif test x$gcc_cv_as != x; then
6a9c5260
UD
1285 # Check if we have .hidden
1286 echo " .hidden foobar" > conftest.s
1287 echo "foobar:" >> conftest.s
1288 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
6a9c5260
UD
1289 gcc_cv_as_hidden="yes"
1290 fi
1291 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1292fi
981d4858
JM
1293if test x"$gcc_cv_as_hidden" = xyes; then
1294 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1295 [Define if your assembler supports .hidden.])
1296fi
6a9c5260
UD
1297AC_MSG_RESULT($gcc_cv_as_hidden)
1298
1cb36a98
RH
1299case "$target" in
1300 sparc*-*-*)
5b68c389
AO
1301 AC_CACHE_CHECK([assembler .register pseudo-op support],
1302 gcc_cv_as_register_pseudo_op, [
1303 gcc_cv_as_register_pseudo_op=unknown
1304 if test x$gcc_cv_as != x; then
1305 # Check if we have .register
1306 echo ".register %g2, #scratch" > conftest.s
1307 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1cb36a98 1308 gcc_cv_as_register_pseudo_op=yes
5b68c389
AO
1309 else
1310 gcc_cv_as_register_pseudo_op=no
1311 fi
1312 rm -f conftest.s conftest.o
1cb36a98 1313 fi
5b68c389
AO
1314 ])
1315 if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
119d24d1
KG
1316 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
1317 [Define if your assembler supports .register.])
1cb36a98 1318 fi
1cb36a98 1319
e95b1e6a
JJ
1320 AC_CACHE_CHECK([assembler supports -relax],
1321 gcc_cv_as_relax_opt, [
1322 gcc_cv_as_relax_opt=unknown
1323 if test x$gcc_cv_as != x; then
1324 # Check if gas supports -relax
1325 echo ".text" > conftest.s
1326 if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
1327 gcc_cv_as_relax_opt=yes
1328 else
1329 gcc_cv_as_relax_opt=no
1330 fi
1331 rm -f conftest.s conftest.o
1332 fi
1333 ])
1334 if test "x$gcc_cv_as_relax_opt" = xyes; then
1335 AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
1336 [Define if your assembler supports -relax option.])
1337 fi
1338
5b68c389
AO
1339 case "$tm_file" in
1340 *64*)
1341 AC_CACHE_CHECK([for 64 bit support in assembler ($gcc_cv_as)],
1342 gcc_cv_as_flags64, [
1343 if test -n "$gcc_cv_as"; then
1344 echo ".xword foo" > conftest.s
1345 gcc_cv_as_flags64=no
8a90b95d 1346 for flag in "-xarch=v9" "-64 -Av9"; do
5b68c389
AO
1347 if $gcc_cv_as $flag -o conftest.o conftest.s \
1348 > /dev/null 2>&1; then
1349 gcc_cv_as_flags64=$flag
1350 break
1351 fi
1352 done
1353 rm -f conftest.s conftest.o
1354 else
1355 if test "$gas" = yes; then
1356 gcc_cv_as_flags64="-64 -Av9"
1357 else
1358 gcc_cv_as_flags64="-xarch=v9"
1359 fi
1cb36a98 1360 fi
5b68c389
AO
1361 ])
1362 if test "x$gcc_cv_as_flags64" = xno; then
1363changequote(, )
1364 tmake_file=`echo " $tmake_file " | sed -e 's, sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1365 dep_tmake_file=`echo " $dep_tmake_file " | sed -e 's, [^ ]*/config/sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1366changequote([, ])
1367 else
119d24d1
KG
1368 AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64",
1369 [Define if the assembler supports 64bit sparc.])
1cb36a98 1370 fi
5b68c389
AO
1371 ;;
1372 *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
1373 ;;
1374 esac
1375
1376 if test "x$gcc_cv_as_flags64" != xno; then
1377 AC_CACHE_CHECK([for assembler offsetable %lo() support],
1378 gcc_cv_as_offsetable_lo10, [
1379 gcc_cv_as_offsetable_lo10=unknown
1380 if test "x$gcc_cv_as" != x; then
1381 # Check if assembler has offsetable %lo()
1382 echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
1383 echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
1384 if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \
1385 > /dev/null 2>&1 &&
1386 $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \
1387 > /dev/null 2>&1; then
1388 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
1389 gcc_cv_as_offsetable_lo10=no
1390 else
1391 gcc_cv_as_offsetable_lo10=yes
1392 fi
1393 else
1394 gcc_cv_as_offsetable_lo10=no
1cb36a98 1395 fi
5b68c389
AO
1396 rm -f conftest.s conftest.o conftest1.s conftest1.o
1397 fi
1398 ])
1399 if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
119d24d1
KG
1400 AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
1401 [Define if your assembler supports offsetable %lo().])
1cb36a98 1402 fi
1cb36a98 1403 fi
1cb36a98
RH
1404 ;;
1405
1406changequote(,)dnl
1407 i[34567]86-*-*)
1408changequote([,])dnl
1409 AC_MSG_CHECKING(assembler instructions)
1410 gcc_cv_as_instructions=
981d4858
JM
1411 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1412 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
1413 gcc_cv_as_instructions="filds fists"
1414 fi
1415 elif test x$gcc_cv_as != x; then
53b5ce19
JW
1416 set "filds fists" "filds mem; fists mem"
1417 while test $# -gt 0
1418 do
1419 echo "$2" > conftest.s
1420 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1421 gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
53b5ce19
JW
1422 fi
1423 shift 2
1424 done
1425 rm -f conftest.s conftest.o
1cb36a98 1426 fi
981d4858 1427 if test x"$gcc_cv_as_instructions" != x; then
ee7692d2 1428 AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
981d4858 1429 fi
1cb36a98
RH
1430 AC_MSG_RESULT($gcc_cv_as_instructions)
1431 ;;
1432esac
53b5ce19 1433
9d147085
RH
1434AC_MSG_CHECKING(assembler dwarf2 debug_line support)
1435gcc_cv_as_dwarf2_debug_line=no
1436# ??? Not all targets support dwarf2 debug_line, even within a version
1437# of gas. Moreover, we need to emit a valid instruction to trigger any
1438# info to the output file. So, as supported targets are added to gas 2.11,
1439# add some instruction here to (also) show we expect this might work.
1440# ??? Once 2.11 is released, probably need to add first known working
1441# version to the per-target configury.
1442case "$target" in
e6978109 1443 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-*)
9d147085
RH
1444 insn="nop"
1445 ;;
1446 ia64*-*-*)
1447 insn="nop 0"
1448 ;;
1449 esac
1450if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1451then
1452 if test "$gcc_cv_gas_major_version" -eq 2 \
1453 -a "$gcc_cv_gas_minor_version" -ge 11 \
1454 -o "$gcc_cv_gas_major_version" -gt 2 \
1455 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1456 && test x"$insn" != x ; then
1457 gcc_cv_as_dwarf2_debug_line="yes"
1458 fi
1459elif test x$gcc_cv_as != x -a x"$insn" != x ; then
1460 echo ' .file 0 "conftest.s"' > conftest.s
1461 echo ' .loc 0 3 0' >> conftest.s
1462 echo " $insn" >> conftest.s
1463 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1464 && grep debug_line conftest.o > /dev/null 2>&1 ; then
1465 gcc_cv_as_dwarf2_debug_line="yes"
1466 fi
1467 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1468fi
1469if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
1470 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
1471 [Define if your assembler supports dwarf2 .file/.loc directives.])
1472fi
1473AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
1474
571a8de5 1475# Figure out what language subdirectories are present.
71205e0b
MH
1476# Look if the user specified --enable-languages="..."; if not, use
1477# the environment variable $LANGUAGES if defined. $LANGUAGES might
1478# go away some day.
1479if test x"${enable_languages+set}" != xset; then
1480 if test x"${LANGUAGES+set}" = xset; then
1481 enable_languages="`echo ${LANGUAGES} | tr ' ' ','`"
1482 else
1483 enable_languages=all
1484 fi
d6c6b553
PE
1485else
1486 if test x"${enable_languages}" = x; then
1487 AC_MSG_ERROR([--enable-languages needs at least one argument])
1488 fi
71205e0b 1489fi
571a8de5
DE
1490subdirs=
1491for lang in ${srcdir}/*/config-lang.in ..
1492do
1493 case $lang in
1494 ..) ;;
1495 # The odd quoting in the next line works around
1496 # an apparent bug in bash 1.12 on linux.
75bffa71
ILT
1497changequote(,)dnl
1498 ${srcdir}/[*]/config-lang.in) ;;
71205e0b
MH
1499 *)
1500 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2b60b2cb
AO
1501 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
1502 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
71205e0b
MH
1503 if test "x$lang_alias" = x
1504 then
1505 echo "$lang doesn't set \$language." 1>&2
1506 exit 1
1507 fi
2b60b2cb
AO
1508 case ${build_by_default},${enable_languages}, in
1509 *,$lang_alias,*) add_this_lang=yes ;;
1510 no,*) add_this_lang=no ;;
1511 *,all,*) add_this_lang=yes ;;
1512 *) add_this_lang=no ;;
1513 esac
71205e0b
MH
1514 if test x"${add_this_lang}" = xyes; then
1515 case $lang in
1516 ${srcdir}/ada/config-lang.in)
1517 if test x$gnat = xyes ; then
1518 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
1519 fi
1520 ;;
1521 *)
1522 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
1523 ;;
1524 esac
1525 fi
1526 ;;
75bffa71 1527changequote([,])dnl
571a8de5
DE
1528 esac
1529done
1530
f24af81b
TT
1531# Make gthr-default.h if we have a thread file.
1532gthread_flags=
75bffa71 1533if test $thread_file != single; then
f24af81b 1534 rm -f gthr-default.h
db0d1ed9 1535 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
f24af81b
TT
1536 gthread_flags=-DHAVE_GTHR_DEFAULT
1537fi
1538AC_SUBST(gthread_flags)
1539
81bf3d9e
RH
1540# Find out what GC implementation we want, or may, use.
1541AC_ARG_WITH(gc,
1542[ --with-gc={simple,page} Choose the garbage collection mechanism to use
1543 with the compiler.],
1544[case "$withval" in
1545 simple | page)
1546 GGC=ggc-$withval
1547 ;;
1548 *)
1549 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
1550 ;;
1551esac],
130fadbb 1552[GGC=ggc-page])
81bf3d9e
RH
1553AC_SUBST(GGC)
1554echo "Using $GGC for garbage collection."
1555
3c809ba4 1556# Use the system's zlib library.
b8dad04b
ZW
1557zlibdir=-L../zlib
1558zlibinc="-I\$(srcdir)/../zlib"
3c809ba4
AG
1559AC_ARG_WITH(system-zlib,
1560[ --with-system-zlib use installed libz],
1561zlibdir=
1562zlibinc=
1563)
1564AC_SUBST(zlibdir)
1565AC_SUBST(zlibinc)
1566
7441a352
NS
1567# Build a new-abi (c++) system
1568AC_ARG_ENABLE(new-gxx-abi,
1569[ --enable-new-gxx-abi
1570 select the new abi for g++. You must select an ABI
1571 at configuration time, so that the correct runtime
1572 support is built. You cannot mix ABIs.],
67c72a63
MM
1573 ,
1574 enable_new_gxx_abi=yes)
1575
1576if test x$enable_new_gxx_abi = xyes; then
1577 AC_DEFINE(ENABLE_NEW_GXX_ABI, 1,
1578 [Define if you want to always select the new-abi for g++.])
1579 GXX_ABI_FLAG='-fnew-abi'
1580else
1581 GXX_ABI_FLAG=
1582fi
7441a352
NS
1583AC_SUBST(GXX_ABI_FLAG)
1584
22fdd65e 1585AC_DEFINE_UNQUOTED(ENABLE_STD_NAMESPACE, 1,
119d24d1 1586 [Define to 1 if you want to enable namespaces (-fhonor-std) by default.])
7822500a 1587
dc6746e7
PT
1588dnl Very limited version of automake's enable-maintainer-mode
1589
1590AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
1591 dnl maintainer-mode is disabled by default
1592 AC_ARG_ENABLE(maintainer-mode,
1593[ --enable-maintainer-mode enable make rules and dependencies not useful
1594 (and sometimes confusing) to the casual installer],
1595 maintainer_mode=$enableval,
1596 maintainer_mode=no)
1597
1598AC_MSG_RESULT($maintainer_mode)
1599
1600if test "$maintainer_mode" = "yes"; then
1601 MAINT=''
1602else
1603 MAINT='#'
1604fi
1605AC_SUBST(MAINT)dnl
1606
571a8de5
DE
1607# Make empty files to contain the specs and options for each language.
1608# Then add #include lines to for a compiler that has specs and/or options.
1609
1610lang_specs_files=
1611lang_options_files=
3103b7db
ML
1612lang_tree_files=
1613rm -f specs.h options.h gencheck.h
1614touch specs.h options.h gencheck.h
571a8de5
DE
1615for subdir in . $subdirs
1616do
75bffa71 1617 if test -f $srcdir/$subdir/lang-specs.h; then
571a8de5
DE
1618 echo "#include \"$subdir/lang-specs.h\"" >>specs.h
1619 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
1620 fi
75bffa71 1621 if test -f $srcdir/$subdir/lang-options.h; then
571a8de5
DE
1622 echo "#include \"$subdir/lang-options.h\"" >>options.h
1623 lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
1624 fi
3103b7db
ML
1625 if test -f $srcdir/$subdir/$subdir-tree.def; then
1626 echo "#include \"$subdir/$subdir-tree.def\"" >>gencheck.h
1627 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
1628 fi
571a8de5
DE
1629done
1630
1631# These (without "all_") are set in each config-lang.in.
1632# `language' must be a single word so is spelled singularly.
1633all_languages=
1634all_boot_languages=
1635all_compilers=
1636all_stagestuff=
1637all_diff_excludes=
3ec83fc2 1638all_outputs='Makefile intl/Makefile po/Makefile.in fixinc/Makefile gccbug mklibgcc'
571a8de5
DE
1639# List of language makefile fragments.
1640all_lang_makefiles=
1641all_headers=
1642all_lib2funcs=
1643
1644# Add the language fragments.
1645# Languages are added via two mechanisms. Some information must be
1646# recorded in makefile variables, these are defined in config-lang.in.
1647# We accumulate them and plug them into the main Makefile.
1648# The other mechanism is a set of hooks for each of the main targets
1649# like `clean', `install', etc.
1650
1651language_fragments="Make-lang"
1652language_hooks="Make-hooks"
1653
1654for s in .. $subdirs
1655do
75bffa71 1656 if test $s != ".."
571a8de5
DE
1657 then
1658 language=
1659 boot_language=
1660 compilers=
1661 stagestuff=
1662 diff_excludes=
1663 headers=
0280cf84 1664 outputs=
571a8de5
DE
1665 lib2funcs=
1666 . ${srcdir}/$s/config-lang.in
75bffa71 1667 if test "x$language" = x
571a8de5
DE
1668 then
1669 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
1670 exit 1
1671 fi
72aaffbd
ZW
1672 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
1673 if test -f ${srcdir}/$s/Makefile.in
1674 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
1675 fi
571a8de5 1676 all_languages="$all_languages $language"
75bffa71 1677 if test "x$boot_language" = xyes
571a8de5
DE
1678 then
1679 all_boot_languages="$all_boot_languages $language"
1680 fi
1681 all_compilers="$all_compilers $compilers"
1682 all_stagestuff="$all_stagestuff $stagestuff"
1683 all_diff_excludes="$all_diff_excludes $diff_excludes"
1684 all_headers="$all_headers $headers"
0280cf84 1685 all_outputs="$all_outputs $outputs"
571a8de5
DE
1686 all_lib2funcs="$all_lib2funcs $lib2funcs"
1687 fi
1688done
1689
1690# Since we can't use `::' targets, we link each language in
1691# with a set of hooks, reached indirectly via lang.${target}.
1692
1693rm -f Make-hooks
1694touch Make-hooks
1695target_list="all.build all.cross start.encap rest.encap \
1696 info dvi \
1697 install-normal install-common install-info install-man \
436a88a6 1698 uninstall \
571a8de5
DE
1699 mostlyclean clean distclean extraclean maintainer-clean \
1700 stage1 stage2 stage3 stage4"
1701for t in $target_list
1702do
1703 x=
ab87f8c8 1704 for lang in .. $all_languages
571a8de5 1705 do
ab87f8c8
JL
1706 if test $lang != ".."; then
1707 x="$x $lang.$t"
571a8de5
DE
1708 fi
1709 done
1710 echo "lang.$t: $x" >> Make-hooks
1711done
1712
296e46bd
DE
1713# If we're not building in srcdir, create .gdbinit.
1714
75bffa71 1715if test ! -f Makefile.in; then
296e46bd
DE
1716 echo "dir ." > .gdbinit
1717 echo "dir ${srcdir}" >> .gdbinit
75bffa71 1718 if test x$gdb_needs_out_file_path = xyes
296e46bd
DE
1719 then
1720 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
1721 fi
75bffa71 1722 if test "x$subdirs" != x; then
296e46bd
DE
1723 for s in $subdirs
1724 do
1725 echo "dir ${srcdir}/$s" >> .gdbinit
1726 done
1727 fi
1728 echo "source ${srcdir}/.gdbinit" >> .gdbinit
1729fi
1730
88111b26
JL
1731# Define variables host_canonical and build_canonical
1732# because some Cygnus local changes in the Makefile depend on them.
1733build_canonical=${build}
1734host_canonical=${host}
1735target_subdir=
75bffa71 1736if test "${host}" != "${target}" ; then
88111b26
JL
1737 target_subdir=${target}/
1738fi
1739AC_SUBST(build_canonical)
1740AC_SUBST(host_canonical)
1741AC_SUBST(target_subdir)
1742
8f8d3278
NC
1743# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
1744# absolute path for gcc_tooldir based on inserting the number of up-directory
1745# movements required to get from $(exec_prefix) to $(prefix) into the basic
1746# $(libsubdir)/@(unlibsubdir) based path.
82cbf8f7
JL
1747# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
1748# make and thus we'd get different behavior depending on where we built the
1749# sources.
5949a9fc 1750if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
d062c304
JL
1751 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
1752else
8f8d3278
NC
1753changequote(<<, >>)dnl
1754# An explanation of the sed strings:
1755# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
1756# -e 's|/$||' match a trailing forward slash and eliminates it
1757# -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
1758# -e 's|/[^/]*|../|g' replaces each occurance of /<directory> with ../
1759#
1760# (*) Note this pattern overwrites the first character of the string
1761# with a forward slash if one is not already present. This is not a
1762# problem because the exact names of the sub-directories concerned is
1763# unimportant, just the number of them matters.
1764#
1765# The practical upshot of these patterns is like this:
1766#
1767# prefix exec_prefix result
1768# ------ ----------- ------
1769# /foo /foo/bar ../
1770# /foo/ /foo/bar ../
1771# /foo /foo/bar/ ../
1772# /foo/ /foo/bar/ ../
1773# /foo /foo/bar/ugg ../../
1774#
4c112cda
NC
1775 dollar='$$'
1776 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
8f8d3278 1777changequote([, ])dnl
d062c304
JL
1778fi
1779AC_SUBST(gcc_tooldir)
4c112cda 1780AC_SUBST(dollar)
d062c304 1781
2bbea3a6
RH
1782# Find a directory in which to install a shared libgcc.
1783
1784AC_ARG_ENABLE(version-specific-runtime-libs,
1785[ --enable-version-specific-runtime-libs Specify that runtime libraries shou
1786ld be installed in a compiler-specific directory ])
1787
5b15f277
RH
1788AC_ARG_WITH(slibdir,
1789[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
1790slibdir="$with_slibdir",
1791if test "${enable_version_specific_runtime_libs+set}" = set; then
2bbea3a6 1792 slibdir='$(libsubdir)'
5b15f277 1793elif test "$host" != "$target"; then
2bbea3a6
RH
1794 slibdir='$(build_tooldir)/lib'
1795else
5b15f277
RH
1796 slibdir='$(libdir)'
1797fi)
2bbea3a6
RH
1798AC_SUBST(slibdir)
1799
7e717196
JL
1800# Nothing to do for FLOAT_H, float_format already handled.
1801objdir=`pwd`
1802AC_SUBST(objdir)
1803
94f42018
DE
1804# Process the language and host/target makefile fragments.
1805${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
47866ac0 1806
46f18e7b
RK
1807# Substitute configuration variables
1808AC_SUBST(subdirs)
46f18e7b
RK
1809AC_SUBST(all_boot_languages)
1810AC_SUBST(all_compilers)
46f18e7b 1811AC_SUBST(all_diff_excludes)
46f18e7b 1812AC_SUBST(all_headers)
9f3d1bc2
BK
1813AC_SUBST(all_lang_makefiles)
1814AC_SUBST(all_languages)
1815AC_SUBST(all_lib2funcs)
1816AC_SUBST(all_stagestuff)
1817AC_SUBST(build_exeext)
1818AC_SUBST(build_install_headers_dir)
1819AC_SUBST(build_xm_file_list)
1820AC_SUBST(cc_set_by_configure)
5aa82ace 1821AC_SUBST(quoted_cc_set_by_configure)
9f3d1bc2 1822AC_SUBST(cpp_install_dir)
9f3d1bc2
BK
1823AC_SUBST(dep_host_xmake_file)
1824AC_SUBST(dep_tmake_file)
1825AC_SUBST(extra_c_flags)
9f3d1bc2 1826AC_SUBST(extra_headers_list)
46f18e7b 1827AC_SUBST(extra_objs)
9f3d1bc2
BK
1828AC_SUBST(extra_parts)
1829AC_SUBST(extra_passes)
1830AC_SUBST(extra_programs)
9f3d1bc2 1831AC_SUBST(float_h_file)
cc1e60ea 1832AC_SUBST(gcc_config_arguments)
9f3d1bc2 1833AC_SUBST(gcc_gxx_include_dir)
e2187d3b 1834AC_SUBST(libstdcxx_incdir)
9f3d1bc2 1835AC_SUBST(gcc_version)
8763704d 1836AC_SUBST(gcc_version_full)
9f3d1bc2
BK
1837AC_SUBST(gcc_version_trigger)
1838AC_SUBST(host_exeext)
46f18e7b 1839AC_SUBST(host_extra_gcc_objs)
46f18e7b 1840AC_SUBST(host_xm_file_list)
9f3d1bc2 1841AC_SUBST(install)
46f18e7b 1842AC_SUBST(lang_options_files)
9f3d1bc2 1843AC_SUBST(lang_specs_files)
3103b7db 1844AC_SUBST(lang_tree_files)
46f18e7b 1845AC_SUBST(local_prefix)
46f18e7b 1846AC_SUBST(maybe_use_collect2)
9f3d1bc2
BK
1847AC_SUBST(md_file)
1848AC_SUBST(objc_boehm_gc)
1849AC_SUBST(out_file)
1850AC_SUBST(out_object_file)
46f18e7b 1851AC_SUBST(stage_prefix_set_by_configure)
e9a25f70 1852AC_SUBST(symbolic_link)
9f3d1bc2
BK
1853AC_SUBST(thread_file)
1854AC_SUBST(tm_file_list)
1855AC_SUBST(will_use_collect2)
aac69a49
NC
1856AC_SUBST(c_target_objs)
1857AC_SUBST(cxx_target_objs)
9fc9b82a 1858
46f18e7b
RK
1859
1860AC_SUBST_FILE(target_overrides)
1861AC_SUBST_FILE(host_overrides)
1862AC_SUBST(cross_defines)
1863AC_SUBST_FILE(cross_overrides)
1864AC_SUBST_FILE(build_overrides)
1865AC_SUBST_FILE(language_fragments)
1866AC_SUBST_FILE(language_hooks)
1867
1868# Echo that links are built
75bffa71 1869if test x$host = x$target
46f18e7b
RK
1870then
1871 str1="native "
1872else
1873 str1="cross-"
1874 str2=" from $host"
1875fi
1876
75bffa71 1877if test x$host != x$build
46f18e7b
RK
1878then
1879 str3=" on a $build system"
1880fi
1881
75bffa71 1882if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
1883then
1884 str4=
1885fi
1886
1887echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
1888
75bffa71 1889if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
1890then
1891 echo " ${str2}${str3}." 1>&2
1892fi
1893
61536478 1894# Truncate the target if necessary
75bffa71 1895if test x$host_truncate_target != x; then
61536478
JL
1896 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
1897fi
1898
46f18e7b
RK
1899# Configure the subdirectories
1900# AC_CONFIG_SUBDIRS($subdirs)
1901
1902# Create the Makefile
5891b37d 1903# and configure language subdirectories
0280cf84 1904AC_OUTPUT($all_outputs,
cdcc6a01 1905[
cdcc6a01 1906case x$CONFIG_HEADERS in
b7cb92ad 1907xauto-host.h:config.in)
818b66cc 1908echo > cstamp-h ;;
cdcc6a01 1909esac
93cf819d
BK
1910# If the host supports symlinks, point stage[1234] at ../stage[1234] so
1911# bootstrapping and the installation procedure can still use
1912# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
1913# FLAGS_TO_PASS has been modified to solve the problem there.
1914# This is virtually a duplicate of what happens in configure.lang; we do
1915# an extra check to make sure this only happens if ln -s can be used.
75bffa71 1916if test "$symbolic_link" = "ln -s"; then
93cf819d 1917 for d in .. ${subdirs} ; do
75bffa71 1918 if test $d != ..; then
4e8a434e
BK
1919 STARTDIR=`pwd`
1920 cd $d
1921 for t in stage1 stage2 stage3 stage4 include
1922 do
1923 rm -f $t
1924 $symbolic_link ../$t $t 2>/dev/null
1925 done
1926 cd $STARTDIR
93cf819d
BK
1927 fi
1928 done
1929else true ; fi
ab87f8c8
JL
1930# Avoid having to add intl to our include paths.
1931if test -f intl/libintl.h; then
1932 echo creating libintl.h
1933 echo '#include "intl/libintl.h"' >libintl.h
1934fi
cdcc6a01
DE
1935],
1936[
5891b37d
RK
1937host='${host}'
1938build='${build}'
1939target='${target}'
52060267 1940target_alias='${target_alias}'
5891b37d
RK
1941srcdir='${srcdir}'
1942subdirs='${subdirs}'
1943symbolic_link='${symbolic_link}'
1944program_transform_set='${program_transform_set}'
1945program_transform_name='${program_transform_name}'
5891b37d
RK
1946dep_host_xmake_file='${dep_host_xmake_file}'
1947host_xmake_file='${host_xmake_file}'
1948dep_tmake_file='${dep_tmake_file}'
1949tmake_file='${tmake_file}'
0bbb1697 1950thread_file='${thread_file}'
cc1e60ea 1951gcc_config_arguments='${gcc_config_arguments}'
f1943b77 1952gcc_version='${gcc_version}'
8763704d 1953gcc_version_full='${gcc_version_full}'
f1943b77 1954gcc_version_trigger='${gcc_version_trigger}'
5891b37d 1955local_prefix='${local_prefix}'
5891b37d 1956build_install_headers_dir='${build_install_headers_dir}'
a204adc6 1957build_exeext='${build_exeext}'
6e26218f 1958host_exeext='${host_exeext}'
7ed46111 1959out_file='${out_file}'
5891b37d
RK
1960gdb_needs_out_file_path='${gdb_needs_out_file_path}'
1961SET_MAKE='${SET_MAKE}'
5891b37d 1962target_list='${target_list}'
5891b37d
RK
1963target_overrides='${target_overrides}'
1964host_overrides='${host_overrides}'
1965cross_defines='${cross_defines}'
1966cross_overrides='${cross_overrides}'
1967build_overrides='${build_overrides}'
9fc9b82a 1968cpp_install_dir='${cpp_install_dir}'
cdcc6a01 1969])
This page took 1.111137 seconds and 5 git commands to generate.