OSDN Git Service

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