OSDN Git Service

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