OSDN Git Service

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