OSDN Git Service

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