]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - configure.ac
Generated files
[thirdparty/binutils-gdb.git] / configure.ac
1 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2 # 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
3 # 2014, 2015, 2016 Free Software Foundation, Inc.
4 #
5 # This file is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
18
19 ##############################################################################
20 ### WARNING: this file contains embedded tabs. Do not run untabify on this file.
21
22 m4_include(config/acx.m4)
23 m4_include(config/override.m4)
24 m4_include(config/proginstall.m4)
25 m4_include(config/elf.m4)
26 m4_include([libtool.m4])
27 m4_include([ltoptions.m4])
28 m4_include([ltsugar.m4])
29 m4_include([ltversion.m4])
30 m4_include([lt~obsolete.m4])
31 m4_include([config/isl.m4])
32
33 AC_INIT(move-if-change)
34 AC_DISABLE_OPTION_CHECKING
35
36 progname=$0
37 # if PWD already has a value, it is probably wrong.
38 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
39
40 # Export original configure arguments for use by sub-configures.
41 # Quote arguments with shell meta charatcers.
42 TOPLEVEL_CONFIGURE_ARGUMENTS=
43 set -- "$progname" "$@"
44 for ac_arg
45 do
46 case "$ac_arg" in
47 *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
48 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
49 # if the argument is of the form -foo=baz, quote the baz part only
50 ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
51 *) ;;
52 esac
53 # Add the quoted argument to the list.
54 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
55 done
56 if test "$silent" = yes; then
57 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
58 fi
59 # Remove the initial space we just introduced and, as these will be
60 # expanded by make, quote '$'.
61 TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
62 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
63
64 # Find the build, host, and target systems.
65 ACX_NONCANONICAL_BUILD
66 ACX_NONCANONICAL_HOST
67 ACX_NONCANONICAL_TARGET
68
69 dnl Autoconf 2.5x and later will set a default program prefix if
70 dnl --target was used, even if it was the same as --host. Disable
71 dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
72 dnl to take effect.
73 test "$host_noncanonical" = "$target_noncanonical" &&
74 test "$program_prefix$program_suffix$program_transform_name" = \
75 NONENONEs,x,x, &&
76 program_transform_name=s,y,y,
77
78 AC_CANONICAL_SYSTEM
79 AC_ARG_PROGRAM
80
81 m4_pattern_allow([^AS_FOR_TARGET$])dnl
82 m4_pattern_allow([^AS_FOR_BUILD$])dnl
83
84 # Get 'install' or 'install-sh' and its variants.
85 AC_PROG_INSTALL
86 ACX_PROG_LN
87 AC_PROG_LN_S
88 AC_PROG_SED
89 AC_PROG_AWK
90
91 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
92
93 # We pass INSTALL explicitly to sub-makes. Make sure that it is not
94 # a relative path.
95 if test "$INSTALL" = "${srcdir}/install-sh -c"; then
96 INSTALL="${srcpwd}/install-sh -c"
97 fi
98
99 # Set srcdir to "." if that's what it is.
100 # This is important for multilib support.
101 pwd=`${PWDCMD-pwd}`
102 if test "${pwd}" = "${srcpwd}" ; then
103 srcdir=.
104 fi
105
106 topsrcdir=$srcpwd
107
108 extra_host_args=
109
110 ### To add a new directory to the tree, first choose whether it is a target
111 ### or a host dependent tool. Then put it into the appropriate list
112 ### (library or tools, host or target), doing a dependency sort.
113
114 # Subdirs will be configured in the order listed in build_configdirs,
115 # configdirs, or target_configdirs; see the serialization section below.
116
117 # Dependency sorting is only needed when *configuration* must be done in
118 # a particular order. In all cases a dependency should be specified in
119 # the Makefile, whether or not it's implicitly specified here.
120
121 # Double entries in build_configdirs, configdirs, or target_configdirs may
122 # cause circular dependencies and break everything horribly.
123
124 # these library is used by various programs built for the build
125 # environment
126 #
127 build_libs="build-libiberty build-libcpp"
128
129 # these tools are built for the build environment
130 build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
131
132 # these libraries are used by various programs built for the host environment
133 #f
134 host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv"
135
136 # these tools are built for the host environment
137 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
138 # know that we are building the simulator.
139 # binutils, gas and ld appear in that order because it makes sense to run
140 # "make check" in that particular order.
141 # If --enable-gold is used, "gold" may replace "ld".
142 host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools"
143
144 # these libraries are built for the target environment, and are built after
145 # the host libraries and the host tools (which may be a cross compiler)
146 # Note that libiberty is not a target library.
147 target_libraries="target-libgcc \
148 target-libbacktrace \
149 target-libgloss \
150 target-newlib \
151 target-libgomp \
152 target-liboffloadmic \
153 target-libhsail-rt \
154 target-libatomic \
155 target-libitm \
156 target-libstdc++-v3 \
157 target-libsanitizer \
158 target-libvtv \
159 target-libssp \
160 target-libquadmath \
161 target-libgfortran \
162 target-libffi \
163 target-libobjc \
164 target-libada \
165 target-libgo"
166
167 # these tools are built using the target libraries, and are intended to
168 # run only in the target environment
169 #
170 # note: any program that *uses* libraries that are in the "target_libraries"
171 # list belongs in this list.
172 #
173 target_tools="target-rda"
174
175 ################################################################################
176
177 ## All tools belong in one of the four categories, and are assigned above
178 ## We assign ${configdirs} this way to remove all embedded newlines. This
179 ## is important because configure will choke if they ever get through.
180 ## ${configdirs} is directories we build using the host tools.
181 ## ${target_configdirs} is directories we build using the target tools.
182 configdirs=`echo ${host_libs} ${host_tools}`
183 target_configdirs=`echo ${target_libraries} ${target_tools}`
184 build_configdirs=`echo ${build_libs} ${build_tools}`
185
186 m4_divert_text([PARSE_ARGS],
187 [case $srcdir in
188 *" "*)
189 m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
190 AC_MSG_ERROR([path to source, $srcdir, contains spaces])
191 m4_popdef([AS_MESSAGE_LOG_FD])dnl
192 ;;
193 esac
194 ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
195 ])
196
197 ################################################################################
198
199 srcname="gnu development package"
200
201 # This gets set non-empty for some net releases of packages.
202 appdirs=""
203
204 # Define is_cross_compiler to save on calls to 'test'.
205 is_cross_compiler=
206 if test x"${host}" = x"${target}" ; then
207 is_cross_compiler=no
208 else
209 is_cross_compiler=yes
210 fi
211
212 # Find the build and target subdir names.
213 GCC_TOPLEV_SUBDIRS
214 # Be sure to cover against remnants of an in-tree build.
215 if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
216 AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
217 Use a pristine source tree when building in a separate tree])
218 fi
219
220 # Skipdirs are removed silently.
221 skipdirs=
222 # Noconfigdirs are removed loudly.
223 noconfigdirs=""
224
225 use_gnu_ld=
226 # Make sure we don't let GNU ld be added if we didn't want it.
227 if test x$with_gnu_ld = xno ; then
228 use_gnu_ld=no
229 noconfigdirs="$noconfigdirs ld gold"
230 fi
231
232 use_gnu_as=
233 # Make sure we don't let GNU as be added if we didn't want it.
234 if test x$with_gnu_as = xno ; then
235 use_gnu_as=no
236 noconfigdirs="$noconfigdirs gas"
237 fi
238
239 use_included_zlib=
240 AC_ARG_WITH(system-zlib,
241 [AS_HELP_STRING([--with-system-zlib], [use installed libz])])
242 # Make sure we don't let ZLIB be added if we didn't want it.
243 if test x$with_system_zlib = xyes ; then
244 use_included_zlib=no
245 noconfigdirs="$noconfigdirs zlib"
246 fi
247
248 # some tools are so dependent upon X11 that if we're not building with X,
249 # it's not even worth trying to configure, much less build, that tool.
250
251 case ${with_x} in
252 yes | "") ;; # the default value for this tree is that X11 is available
253 no)
254 skipdirs="${skipdirs} tk itcl libgui"
255 # We won't be able to build gdbtk without X.
256 enable_gdbtk=no
257 ;;
258 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
259 esac
260
261 # Some are only suitable for cross toolchains.
262 # Remove these if host=target.
263 cross_only="target-libgloss target-newlib target-opcodes"
264
265 case $is_cross_compiler in
266 no) skipdirs="${skipdirs} ${cross_only}" ;;
267 esac
268
269 # If both --with-headers and --with-libs are specified, default to
270 # --without-newlib.
271 if test x"${with_headers}" != x && test x"${with_headers}" != xno \
272 && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
273 if test x"${with_newlib}" = x ; then
274 with_newlib=no
275 fi
276 fi
277
278 # Recognize --with-newlib/--without-newlib.
279 case ${with_newlib} in
280 no) skipdirs="${skipdirs} target-newlib" ;;
281 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
282 esac
283
284 AC_ARG_ENABLE(as-accelerator-for,
285 [AS_HELP_STRING([--enable-as-accelerator-for=ARG],
286 [build as offload target compiler.
287 Specify offload host triple by ARG])])
288
289 AC_ARG_ENABLE(offload-targets,
290 [AS_HELP_STRING([--enable-offload-targets=LIST],
291 [enable offloading to devices from comma-separated LIST of
292 TARGET[=DIR]. Use optional path to find offload target compiler
293 during the build])],
294 [
295 if test x"$enable_offload_targets" = x; then
296 AC_MSG_ERROR([no offload targets specified])
297 fi
298 ], [enable_offload_targets=])
299
300 # Handle --enable-gold, --enable-ld.
301 # --disable-gold [--enable-ld]
302 # Build only ld. Default option.
303 # --enable-gold [--enable-ld]
304 # Build both gold and ld. Install gold as "ld.gold", install ld
305 # as "ld.bfd" and "ld".
306 # --enable-gold=default [--enable-ld]
307 # Build both gold and ld. Install gold as "ld.gold" and "ld",
308 # install ld as "ld.bfd".
309 # --enable-gold[=default] --disable-ld
310 # Build only gold, which is then installed as both "ld.gold" and "ld".
311 # --enable-gold --enable-ld=default
312 # Build both gold (installed as "ld.gold") and ld (installed as "ld"
313 # and ld.bfd).
314 # In other words, ld is default
315 # --enable-gold=default --enable-ld=default
316 # Error.
317
318 default_ld=
319 AC_ARG_ENABLE(gold,
320 [AS_HELP_STRING([[--enable-gold[=ARG]]],
321 [build gold @<:@ARG={default,yes,no}@:>@])],
322 ENABLE_GOLD=$enableval,
323 ENABLE_GOLD=no)
324 case "${ENABLE_GOLD}" in
325 yes|default)
326 # Check for ELF target.
327 is_elf=no
328 case "${target}" in
329 *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
330 | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
331 | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
332 | *-*-solaris2* | *-*-nto* | *-*-nacl*)
333 case "${target}" in
334 *-*-linux*aout* | *-*-linux*oldld*)
335 ;;
336 *)
337 is_elf=yes
338 ;;
339 esac
340 esac
341
342 if test "$is_elf" = "yes"; then
343 # Check for target supported by gold.
344 case "${target}" in
345 i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
346 | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*)
347 configdirs="$configdirs gold"
348 if test x${ENABLE_GOLD} = xdefault; then
349 default_ld=gold
350 fi
351 ENABLE_GOLD=yes
352 ;;
353 esac
354 fi
355 ;;
356 no)
357 ;;
358 *)
359 AC_MSG_ERROR([invalid --enable-gold argument])
360 ;;
361 esac
362
363 AC_ARG_ENABLE(ld,
364 [AS_HELP_STRING([[--enable-ld[=ARG]]],
365 [build ld @<:@ARG={default,yes,no}@:>@])],
366 ENABLE_LD=$enableval,
367 ENABLE_LD=yes)
368
369 case "${ENABLE_LD}" in
370 default)
371 if test x${default_ld} != x; then
372 AC_MSG_ERROR([either gold or ld can be the default ld])
373 fi
374 ;;
375 yes)
376 ;;
377 no)
378 if test x${ENABLE_GOLD} != xyes; then
379 AC_MSG_WARN([neither ld nor gold are enabled])
380 fi
381 configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
382 ;;
383 *)
384 AC_MSG_ERROR([invalid --enable-ld argument])
385 ;;
386 esac
387
388 # PR gas/19109
389 # Decide the default method for compressing debug sections.
390 # Provide a configure time option to override our default.
391 AC_ARG_ENABLE(compressed_debug_sections,
392 [AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,gold,ld,none}],
393 [Enable compressed debug sections for gas, gold or ld by
394 default])],
395 [
396 if test x"$enable_compressed_debug_sections" = xyes; then
397 AC_MSG_ERROR([no program with compressed debug sections specified])
398 fi
399 ], [enable_compressed_debug_sections=])
400
401 # Configure extra directories which are host specific
402
403 case "${host}" in
404 *-cygwin*)
405 configdirs="$configdirs libtermcap" ;;
406 esac
407
408 # A target can indicate whether a language isn't supported for some reason.
409 # Only spaces may be used in this macro; not newlines or tabs.
410 unsupported_languages=
411
412 # Remove more programs from consideration, based on the host or
413 # target this usually means that a port of the program doesn't
414 # exist yet.
415
416 case "${host}" in
417 i[[3456789]]86-*-msdosdjgpp*)
418 noconfigdirs="$noconfigdirs tcl tk itcl"
419 ;;
420 esac
421
422
423 AC_ARG_ENABLE(libquadmath,
424 AS_HELP_STRING([--disable-libquadmath],
425 [do not build libquadmath directory]),
426 ENABLE_LIBQUADMATH=$enableval,
427 ENABLE_LIBQUADMATH=yes)
428 if test "${ENABLE_LIBQUADMATH}" = "no" ; then
429 noconfigdirs="$noconfigdirs target-libquadmath"
430 fi
431
432
433 AC_ARG_ENABLE(libquadmath-support,
434 AS_HELP_STRING([--disable-libquadmath-support],
435 [disable libquadmath support for Fortran]),
436 ENABLE_LIBQUADMATH_SUPPORT=$enableval,
437 ENABLE_LIBQUADMATH_SUPPORT=yes)
438 enable_libquadmath_support=
439 if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
440 enable_libquadmath_support=no
441 fi
442
443
444 AC_ARG_ENABLE(libada,
445 [AS_HELP_STRING([--enable-libada], [build libada directory])],
446 ENABLE_LIBADA=$enableval,
447 ENABLE_LIBADA=yes)
448 if test "${ENABLE_LIBADA}" != "yes" ; then
449 noconfigdirs="$noconfigdirs gnattools"
450 fi
451
452 AC_ARG_ENABLE(libssp,
453 [AS_HELP_STRING([--enable-libssp], [build libssp directory])],
454 ENABLE_LIBSSP=$enableval,
455 ENABLE_LIBSSP=yes)
456
457 AC_ARG_ENABLE(libstdcxx,
458 AS_HELP_STRING([--disable-libstdcxx],
459 [do not build libstdc++-v3 directory]),
460 ENABLE_LIBSTDCXX=$enableval,
461 ENABLE_LIBSTDCXX=default)
462 [if test "${ENABLE_LIBSTDCXX}" = "no" ; then
463 noconfigdirs="$noconfigdirs target-libstdc++-v3"
464 fi]
465
466 # If this is accelerator compiler and its target is intelmic we enable
467 # target liboffloadmic by default. If this is compiler with offloading
468 # for intelmic we enable host liboffloadmic by default. Otherwise
469 # liboffloadmic is disabled by default.
470 AC_ARG_ENABLE([liboffloadmic],
471 AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]],
472 [build liboffloadmic @<:@ARG={no,host,target}@:>@]),
473 [case "$enableval" in
474 no | host | target)
475 enable_liboffloadmic=$enableval ;;
476 *)
477 AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;;
478 esac],
479 [if test x"$enable_as_accelerator_for" != x; then
480 case "${target}" in
481 *-intelmic-* | *-intelmicemul-*)
482 enable_liboffloadmic=target
483 extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target"
484 ;;
485 *)
486 enable_liboffloadmic=no
487 ;;
488 esac
489 else
490 case "${enable_offload_targets}" in
491 *-intelmic-* | *-intelmicemul-*)
492 enable_liboffloadmic=host
493 extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host"
494 ;;
495 *)
496 enable_liboffloadmic=no
497 ;;
498 esac
499 fi])
500 AC_SUBST(extra_liboffloadmic_configure_flags)
501
502 # Enable libgomp by default on hosted POSIX systems, and a few others.
503 if test x$enable_libgomp = x ; then
504 case "${target}" in
505 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
506 ;;
507 *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
508 ;;
509 *-*-solaris2* | *-*-hpux11*)
510 ;;
511 *-*-darwin* | *-*-aix*)
512 ;;
513 nvptx*-*-*)
514 ;;
515 *)
516 noconfigdirs="$noconfigdirs target-libgomp"
517 ;;
518 esac
519 fi
520
521 # Disable libatomic on unsupported systems.
522 if test -d ${srcdir}/libatomic; then
523 if test x$enable_libatomic = x; then
524 AC_MSG_CHECKING([for libatomic support])
525 if (srcdir=${srcdir}/libatomic; \
526 . ${srcdir}/configure.tgt; \
527 test -n "$UNSUPPORTED")
528 then
529 AC_MSG_RESULT([no])
530 noconfigdirs="$noconfigdirs target-libatomic"
531 else
532 AC_MSG_RESULT([yes])
533 fi
534 fi
535 fi
536
537 # Disable liboffloadmic on unsupported systems.
538 if test -d ${srcdir}/liboffloadmic; then
539 if test x$enable_liboffloadmic != xno; then
540 AC_MSG_CHECKING([for liboffloadmic support])
541 if (srcdir=${srcdir}/liboffloadmic; \
542 . ${srcdir}/configure.tgt; \
543 test -n "$UNSUPPORTED")
544 then
545 AC_MSG_RESULT([no])
546 noconfigdirs="$noconfigdirs target-liboffloadmic"
547 else
548 AC_MSG_RESULT([yes])
549 fi
550 fi
551 fi
552
553 # Disable libitm on unsupported systems.
554 if test -d ${srcdir}/libitm; then
555 if test x$enable_libitm = x; then
556 AC_MSG_CHECKING([for libitm support])
557 if (srcdir=${srcdir}/libitm; \
558 . ${srcdir}/configure.tgt; \
559 test -n "$UNSUPPORTED")
560 then
561 AC_MSG_RESULT([no])
562 noconfigdirs="$noconfigdirs target-libitm"
563 else
564 AC_MSG_RESULT([yes])
565 fi
566 fi
567 fi
568
569 # Disable libsanitizer on unsupported systems.
570 if test -d ${srcdir}/libsanitizer; then
571 if test x$enable_libsanitizer = x; then
572 AC_MSG_CHECKING([for libsanitizer support])
573 if (srcdir=${srcdir}/libsanitizer; \
574 . ${srcdir}/configure.tgt; \
575 test -n "$UNSUPPORTED")
576 then
577 AC_MSG_RESULT([no])
578 noconfigdirs="$noconfigdirs target-libsanitizer"
579 else
580 AC_MSG_RESULT([yes])
581 fi
582 fi
583 fi
584
585 # Disable libvtv on unsupported systems.
586 if test -d ${srcdir}/libvtv; then
587 if test x$enable_libvtv = x; then
588 AC_MSG_CHECKING([for libvtv support])
589 if (srcdir=${srcdir}/libvtv; \
590 . ${srcdir}/configure.tgt; \
591 test "$VTV_SUPPORTED" != "yes")
592 then
593 AC_MSG_RESULT([no])
594 noconfigdirs="$noconfigdirs target-libvtv"
595 else
596 AC_MSG_RESULT([yes])
597 fi
598 fi
599 fi
600
601
602 # Disable libhsail-rt on unsupported systems.
603 if test -d ${srcdir}/libhsail-rt; then
604 if test x$enable_libhsail_rt = x; then
605 AC_MSG_CHECKING([for libhsail-rt support])
606 if (srcdir=${srcdir}/libhsail-rt; \
607 . ${srcdir}/configure.tgt; \
608 test -n "$UNSUPPORTED")
609 then
610 AC_MSG_RESULT([no])
611 unsupported_languages="$unsupported_languages brig"
612 # This implicitly disables also target-libhsail-rt as it won't
613 # get added to the build without BRIG FE.
614 else
615 AC_MSG_RESULT([yes])
616 fi
617 fi
618 fi
619
620
621 # Disable libquadmath for some systems.
622 case "${target}" in
623 avr-*-*)
624 noconfigdirs="$noconfigdirs target-libquadmath"
625 ;;
626 # libquadmath is unused on AIX and libquadmath build process use of
627 # LD_LIBRARY_PATH can break AIX bootstrap.
628 powerpc-*-aix* | rs6000-*-aix*)
629 noconfigdirs="$noconfigdirs target-libquadmath"
630 ;;
631 esac
632
633 # Disable libssp for some systems.
634 case "${target}" in
635 avr-*-*)
636 # No hosted I/O support.
637 noconfigdirs="$noconfigdirs target-libssp"
638 ;;
639 powerpc-*-aix* | rs6000-*-aix*)
640 noconfigdirs="$noconfigdirs target-libssp"
641 ;;
642 rl78-*-*)
643 # libssp uses a misaligned load to trigger a fault, but the RL78
644 # doesn't fault for those - instead, it gives a build-time error
645 # for explicit misaligned loads.
646 noconfigdirs="$noconfigdirs target-libssp"
647 ;;
648 visium-*-*)
649 # No hosted I/O support.
650 noconfigdirs="$noconfigdirs target-libssp"
651 ;;
652 esac
653
654 # Disable libstdc++-v3 for some systems.
655 # Allow user to override this if they pass --enable-libstdc++-v3
656 if test "${ENABLE_LIBSTDCXX}" = "default" ; then
657 case "${target}" in
658 *-*-vxworks*)
659 # VxWorks uses the Dinkumware C++ library.
660 noconfigdirs="$noconfigdirs target-libstdc++-v3"
661 ;;
662 arm*-wince-pe*)
663 # the C++ libraries don't build on top of CE's C libraries
664 noconfigdirs="$noconfigdirs target-libstdc++-v3"
665 ;;
666 avr-*-*)
667 noconfigdirs="$noconfigdirs target-libstdc++-v3"
668 ;;
669 ft32-*-*)
670 noconfigdirs="$noconfigdirs target-libstdc++-v3"
671 ;;
672 esac
673 fi
674
675 # Disable Fortran for some systems.
676 case "${target}" in
677 mmix-*-*)
678 # See <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
679 unsupported_languages="$unsupported_languages fortran"
680 ;;
681 esac
682
683 # Disable libffi for some systems.
684 case "${target}" in
685 powerpc-*-darwin*)
686 ;;
687 i[[3456789]]86-*-darwin*)
688 ;;
689 x86_64-*-darwin[[912]]*)
690 ;;
691 *-*-darwin*)
692 noconfigdirs="$noconfigdirs target-libffi"
693 ;;
694 *-*-netware*)
695 noconfigdirs="$noconfigdirs target-libffi"
696 ;;
697 *-*-phoenix*)
698 noconfigdirs="$noconfigdirs target-libffi"
699 ;;
700 *-*-rtems*)
701 noconfigdirs="$noconfigdirs target-libffi"
702 ;;
703 *-*-tpf*)
704 noconfigdirs="$noconfigdirs target-libffi"
705 ;;
706 *-*-uclinux*)
707 noconfigdirs="$noconfigdirs target-libffi"
708 ;;
709 *-*-vxworks*)
710 noconfigdirs="$noconfigdirs target-libffi"
711 ;;
712 aarch64*-*-freebsd*)
713 noconfigdirs="$noconfigdirs target-libffi"
714 ;;
715 alpha*-*-*vms*)
716 noconfigdirs="$noconfigdirs target-libffi"
717 ;;
718 arm*-*-freebsd*)
719 noconfigdirs="$noconfigdirs target-libffi"
720 ;;
721 arm-wince-pe)
722 noconfigdirs="$noconfigdirs target-libffi"
723 ;;
724 arm*-*-symbianelf*)
725 noconfigdirs="$noconfigdirs target-libffi"
726 ;;
727 cris-*-* | crisv32-*-*)
728 case "${target}" in
729 *-*-linux*)
730 ;;
731 *) # See PR46792 regarding target-libffi.
732 noconfigdirs="$noconfigdirs target-libffi";;
733 esac
734 ;;
735 hppa*64*-*-hpux*)
736 noconfigdirs="$noconfigdirs target-libffi"
737 ;;
738 hppa*-hp-hpux11*)
739 ;;
740 hppa*-*-hpux*)
741 noconfigdirs="$noconfigdirs target-libffi"
742 ;;
743 ia64*-*-*vms*)
744 noconfigdirs="$noconfigdirs target-libffi"
745 ;;
746 i[[3456789]]86-w64-mingw*)
747 noconfigdirs="$noconfigdirs target-libffi"
748 ;;
749 i[[3456789]]86-*-mingw*)
750 noconfigdirs="$noconfigdirs target-libffi"
751 ;;
752 x86_64-*-mingw*)
753 noconfigdirs="$noconfigdirs target-libffi"
754 ;;
755 mmix-*-*)
756 noconfigdirs="$noconfigdirs target-libffi"
757 ;;
758 powerpc-*-aix*)
759 ;;
760 rs6000-*-aix*)
761 ;;
762 ft32-*-*)
763 noconfigdirs="$noconfigdirs target-libffi"
764 ;;
765 *-*-lynxos*)
766 noconfigdirs="$noconfigdirs target-libffi"
767 ;;
768 esac
769
770 # Disable the go frontend on systems where it is known to not work. Please keep
771 # this in sync with contrib/config-list.mk.
772 case "${target}" in
773 *-*-darwin* | *-*-cygwin* | *-*-mingw*)
774 unsupported_languages="$unsupported_languages go"
775 ;;
776 esac
777
778 # Disable libgo for some systems where it is known to not work.
779 # For testing, you can easily override this with --enable-libgo.
780 if test x$enable_libgo = x; then
781 case "${target}" in
782 *-*-darwin*)
783 # PR 46986
784 noconfigdirs="$noconfigdirs target-libgo"
785 ;;
786 *-*-cygwin* | *-*-mingw*)
787 noconfigdirs="$noconfigdirs target-libgo"
788 ;;
789 esac
790 fi
791
792 # Default libgloss CPU subdirectory.
793 libgloss_dir="$target_cpu"
794
795 case "${target}" in
796 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
797 libgloss_dir=wince
798 ;;
799 aarch64*-*-* )
800 libgloss_dir=aarch64
801 ;;
802 arm*-*-*)
803 libgloss_dir=arm
804 ;;
805 cris-*-* | crisv32-*-*)
806 libgloss_dir=cris
807 ;;
808 hppa*-*-*)
809 libgloss_dir=pa
810 ;;
811 i[[3456789]]86-*-*)
812 libgloss_dir=i386
813 ;;
814 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
815 libgloss_dir=m68hc11
816 ;;
817 m68*-*-* | fido-*-*)
818 libgloss_dir=m68k
819 ;;
820 mips*-*-*)
821 libgloss_dir=mips
822 ;;
823 powerpc*-*-*)
824 libgloss_dir=rs6000
825 ;;
826 sparc*-*-*)
827 libgloss_dir=sparc
828 ;;
829 esac
830
831 # Disable newlib and libgloss for various target OSes.
832 case "${target}" in
833 alpha*-dec-osf*)
834 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
835 ;;
836 i[[3456789]]86-*-linux*)
837 # This section makes it possible to build newlib natively on linux.
838 # If we are using a cross compiler then don't configure newlib.
839 if test x${is_cross_compiler} != xno ; then
840 noconfigdirs="$noconfigdirs target-newlib"
841 fi
842 noconfigdirs="$noconfigdirs target-libgloss"
843 # If we are not using a cross compiler, do configure newlib.
844 # Note however, that newlib will only be configured in this situation
845 # if the --with-newlib option has been given, because otherwise
846 # 'target-newlib' will appear in skipdirs.
847 ;;
848 i[[3456789]]86-*-rdos*)
849 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
850 ;;
851 sh*-*-pe|mips*-*-pe|arm-wince-pe)
852 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
853 ;;
854 sparc-*-sunos4*)
855 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
856 ;;
857 *-*-aix*)
858 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
859 ;;
860 *-*-beos*)
861 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
862 ;;
863 *-*-chorusos)
864 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
865 ;;
866 *-*-dragonfly*)
867 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
868 ;;
869 *-*-freebsd*)
870 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
871 ;;
872 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
873 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
874 ;;
875 *-*-lynxos*)
876 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
877 ;;
878 *-*-mingw*)
879 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
880 ;;
881 *-*-netbsd*)
882 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
883 ;;
884 *-*-netware*)
885 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
886 ;;
887 *-*-tpf*)
888 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
889 ;;
890 *-*-uclinux*)
891 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
892 ;;
893 *-*-vxworks*)
894 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
895 ;;
896 esac
897
898 case "${target}" in
899 *-*-chorusos)
900 ;;
901 aarch64-*-darwin*)
902 noconfigdirs="$noconfigdirs ld gas gdb gprof"
903 noconfigdirs="$noconfigdirs sim target-rda"
904 ;;
905 arm-*-darwin*)
906 noconfigdirs="$noconfigdirs ld gas gdb gprof"
907 noconfigdirs="$noconfigdirs sim target-rda"
908 ;;
909 powerpc-*-darwin*)
910 noconfigdirs="$noconfigdirs ld gas gdb gprof"
911 noconfigdirs="$noconfigdirs sim target-rda"
912 ;;
913 i[[3456789]]86-*-darwin*)
914 noconfigdirs="$noconfigdirs ld gprof"
915 noconfigdirs="$noconfigdirs sim target-rda"
916 ;;
917 x86_64-*-darwin[[912]]*)
918 noconfigdirs="$noconfigdirs ld gas gprof"
919 noconfigdirs="$noconfigdirs sim target-rda"
920 ;;
921 *-*-darwin*)
922 noconfigdirs="$noconfigdirs ld gas gdb gprof"
923 noconfigdirs="$noconfigdirs sim target-rda"
924 ;;
925 *-*-dragonfly*)
926 ;;
927 *-*-freebsd*)
928 if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
929 && test -f /usr/local/include/gmp.h; then
930 with_gmp=/usr/local
931 fi
932 ;;
933 *-*-kaos*)
934 # Remove unsupported stuff on all kaOS configurations.
935 noconfigdirs="$noconfigdirs target-libgloss"
936 ;;
937 *-*-netbsd*)
938 ;;
939 *-*-netware*)
940 ;;
941 *-*-phoenix*)
942 noconfigdirs="$noconfigdirs target-libgloss"
943 ;;
944 *-*-rtems*)
945 noconfigdirs="$noconfigdirs target-libgloss"
946 ;;
947 # The tpf target doesn't support gdb yet.
948 *-*-tpf*)
949 noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
950 ;;
951 *-*-uclinux*)
952 noconfigdirs="$noconfigdirs target-rda"
953 ;;
954 *-*-vxworks*)
955 ;;
956 alpha*-dec-osf*)
957 # ld works, but does not support shared libraries.
958 # gas doesn't generate exception information.
959 noconfigdirs="$noconfigdirs gas ld"
960 ;;
961 alpha*-*-*vms*)
962 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
963 ;;
964 alpha*-*-*)
965 # newlib is not 64 bit ready
966 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
967 ;;
968 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
969 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
970 ;;
971 arc*-*-*)
972 noconfigdirs="$noconfigdirs sim"
973 ;;
974 arm-*-pe*)
975 noconfigdirs="$noconfigdirs target-libgloss"
976 ;;
977 arm-*-riscix*)
978 noconfigdirs="$noconfigdirs ld target-libgloss"
979 ;;
980 avr-*-*)
981 if test x${with_avrlibc} != xno; then
982 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
983 fi
984 ;;
985 c4x-*-* | tic4x-*-*)
986 noconfigdirs="$noconfigdirs target-libgloss"
987 ;;
988 tic54x-*-*)
989 noconfigdirs="$noconfigdirs target-libgloss gdb"
990 ;;
991 d10v-*-*)
992 noconfigdirs="$noconfigdirs target-libgloss"
993 ;;
994 d30v-*-*)
995 noconfigdirs="$noconfigdirs gdb"
996 ;;
997 fr30-*-elf*)
998 noconfigdirs="$noconfigdirs gdb"
999 ;;
1000 ft32-*-*)
1001 noconfigdirs="$noconfigdirs target-rda gprof"
1002 ;;
1003 moxie-*-*)
1004 noconfigdirs="$noconfigdirs"
1005 ;;
1006 h8300*-*-*)
1007 noconfigdirs="$noconfigdirs target-libgloss"
1008 ;;
1009 h8500-*-*)
1010 noconfigdirs="$noconfigdirs target-libgloss"
1011 ;;
1012 hppa1.1-*-osf* | hppa1.1-*-bsd* )
1013 ;;
1014 hppa*64*-*-hpux*)
1015 noconfigdirs="$noconfigdirs gdb"
1016 ;;
1017 hppa*-*-hpux11*)
1018 noconfigdirs="$noconfigdirs gdb ld"
1019 ;;
1020 hppa*64*-*-linux*)
1021 ;;
1022 hppa*-*-linux*)
1023 ;;
1024 hppa*-*-*elf* | \
1025 hppa*-*-lites* | \
1026 hppa*-*-openbsd* | \
1027 hppa*64*-*-*)
1028 ;;
1029 hppa*-*-pro*)
1030 ;;
1031 hppa*-*-*)
1032 noconfigdirs="$noconfigdirs ld"
1033 ;;
1034 i960-*-*)
1035 noconfigdirs="$noconfigdirs gdb"
1036 ;;
1037 ia64*-*-elf*)
1038 # No gdb support yet.
1039 noconfigdirs="$noconfigdirs readline libgui itcl gdb"
1040 ;;
1041 ia64*-**-hpux*)
1042 # No ld support yet.
1043 noconfigdirs="$noconfigdirs gdb libgui itcl ld"
1044 ;;
1045 ia64*-*-*vms*)
1046 # No ld support yet.
1047 noconfigdirs="$noconfigdirs libgui itcl ld"
1048 ;;
1049 i[[3456789]]86-w64-mingw*)
1050 ;;
1051 i[[3456789]]86-*-mingw*)
1052 target_configdirs="$target_configdirs target-winsup"
1053 ;;
1054 *-*-cygwin*)
1055 target_configdirs="$target_configdirs target-libtermcap target-winsup"
1056 noconfigdirs="$noconfigdirs target-libgloss"
1057 # always build newlib if winsup directory is present.
1058 if test -d "$srcdir/winsup/cygwin"; then
1059 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1060 elif test -d "$srcdir/newlib"; then
1061 echo "Warning: winsup/cygwin is missing so newlib can't be built."
1062 fi
1063 ;;
1064 i[[3456789]]86-*-pe)
1065 noconfigdirs="$noconfigdirs target-libgloss"
1066 ;;
1067 i[[3456789]]86-*-sco3.2v5*)
1068 # The linker does not yet know about weak symbols in COFF,
1069 # and is not configured to handle mixed ELF and COFF.
1070 noconfigdirs="$noconfigdirs ld target-libgloss"
1071 ;;
1072 i[[3456789]]86-*-sco*)
1073 noconfigdirs="$noconfigdirs gprof target-libgloss"
1074 ;;
1075 i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
1076 noconfigdirs="$noconfigdirs target-libgloss"
1077 ;;
1078 i[[3456789]]86-*-sysv4*)
1079 noconfigdirs="$noconfigdirs target-libgloss"
1080 ;;
1081 i[[3456789]]86-*-beos*)
1082 noconfigdirs="$noconfigdirs gdb"
1083 ;;
1084 i[[3456789]]86-*-rdos*)
1085 noconfigdirs="$noconfigdirs gdb"
1086 ;;
1087 mmix-*-*)
1088 noconfigdirs="$noconfigdirs gdb"
1089 ;;
1090 mt-*-*)
1091 noconfigdirs="$noconfigdirs sim"
1092 ;;
1093 nfp-*-*)
1094 noconfigdirs="$noconfigdirs ld gas gdb gprof sim"
1095 noconfigdirs="$noconfigdirs $target_libraries"
1096 ;;
1097 powerpc-*-aix*)
1098 # copied from rs6000-*-* entry
1099 noconfigdirs="$noconfigdirs gprof"
1100 ;;
1101 powerpc*-*-winnt* | powerpc*-*-pe*)
1102 target_configdirs="$target_configdirs target-winsup"
1103 noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
1104 # always build newlib.
1105 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1106 ;;
1107 # This is temporary until we can link against shared libraries
1108 powerpcle-*-solaris*)
1109 noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
1110 ;;
1111 powerpc-*-beos*)
1112 noconfigdirs="$noconfigdirs gdb"
1113 ;;
1114 rs6000-*-lynxos*)
1115 noconfigdirs="$noconfigdirs gprof"
1116 ;;
1117 rs6000-*-aix*)
1118 noconfigdirs="$noconfigdirs gprof"
1119 ;;
1120 rs6000-*-*)
1121 noconfigdirs="$noconfigdirs gprof"
1122 ;;
1123 m68k-apollo-*)
1124 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
1125 ;;
1126 microblaze*)
1127 noconfigdirs="$noconfigdirs gprof"
1128 ;;
1129 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
1130 if test x$with_newlib = xyes; then
1131 noconfigdirs="$noconfigdirs gprof"
1132 fi
1133 ;;
1134 mips*-*-irix5*)
1135 noconfigdirs="$noconfigdirs gprof target-libgloss"
1136 ;;
1137 mips*-*-irix6*)
1138 noconfigdirs="$noconfigdirs gprof target-libgloss"
1139 ;;
1140 mips*-*-bsd*)
1141 noconfigdirs="$noconfigdirs ld gas gprof target-libgloss"
1142 ;;
1143 mips*-*-linux*)
1144 ;;
1145 mips*-*-ultrix* | mips*-*-osf* | mips*-*-ecoff* | mips*-*-pe* \
1146 | mips*-*-irix* | mips*-*-lnews* | mips*-*-riscos*)
1147 noconfigdirs="$noconfigdirs ld gas gprof"
1148 ;;
1149 mips*-*-*)
1150 noconfigdirs="$noconfigdirs gprof"
1151 ;;
1152 nvptx*-*-*)
1153 noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
1154 ;;
1155 sh-*-*)
1156 case "${target}" in
1157 sh*-*-elf)
1158 ;;
1159 *)
1160 noconfigdirs="$noconfigdirs target-libgloss" ;;
1161 esac
1162 ;;
1163 sparc-*-sunos4*)
1164 if test x${is_cross_compiler} = xno ; then
1165 use_gnu_ld=no
1166 fi
1167 ;;
1168 tic6x-*-*)
1169 noconfigdirs="$noconfigdirs sim"
1170 ;;
1171 tilepro*-*-* | tilegx*-*-*)
1172 noconfigdirs="$noconfigdirs sim"
1173 ;;
1174 v810-*-*)
1175 noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
1176 ;;
1177 vax-*-*)
1178 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
1179 ;;
1180 wasm32-*-*)
1181 noconfigdirs="$noconfigdirs ld"
1182 ;;
1183 esac
1184
1185 # If we aren't building newlib, then don't build libgloss, since libgloss
1186 # depends upon some newlib header files.
1187 case "${noconfigdirs}" in
1188 *target-libgloss*) ;;
1189 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
1190 esac
1191
1192 # Work in distributions that contain no compiler tools, like Autoconf.
1193 host_makefile_frag=/dev/null
1194 if test -d ${srcdir}/config ; then
1195 case "${host}" in
1196 i[[3456789]]86-*-msdosdjgpp*)
1197 host_makefile_frag="config/mh-djgpp"
1198 ;;
1199 *-cygwin*)
1200 ACX_CHECK_CYGWIN_CAT_WORKS
1201 host_makefile_frag="config/mh-cygwin"
1202 ;;
1203 *-mingw*)
1204 host_makefile_frag="config/mh-mingw"
1205 ;;
1206 alpha*-linux*)
1207 host_makefile_frag="config/mh-alpha-linux"
1208 ;;
1209 hppa*-hp-hpux10*)
1210 host_makefile_frag="config/mh-pa-hpux10"
1211 ;;
1212 hppa*-hp-hpux*)
1213 host_makefile_frag="config/mh-pa"
1214 ;;
1215 hppa*-*)
1216 host_makefile_frag="config/mh-pa"
1217 ;;
1218 *-*-darwin*)
1219 host_makefile_frag="config/mh-darwin"
1220 ;;
1221 powerpc-*-aix*)
1222 host_makefile_frag="config/mh-ppc-aix"
1223 ;;
1224 rs6000-*-aix*)
1225 host_makefile_frag="config/mh-ppc-aix"
1226 ;;
1227 esac
1228 fi
1229
1230 if test "${build}" != "${host}" ; then
1231 AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1232 AS_FOR_BUILD=${AS_FOR_BUILD-as}
1233 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1234 CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1235 GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1236 GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
1237 DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1238 LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1239 NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1240 RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1241 WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1242 WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1243 else
1244 AR_FOR_BUILD="\$(AR)"
1245 AS_FOR_BUILD="\$(AS)"
1246 CC_FOR_BUILD="\$(CC)"
1247 CXX_FOR_BUILD="\$(CXX)"
1248 GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1249 GOC_FOR_BUILD="\$(GOC)"
1250 DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1251 LD_FOR_BUILD="\$(LD)"
1252 NM_FOR_BUILD="\$(NM)"
1253 RANLIB_FOR_BUILD="\$(RANLIB)"
1254 WINDRES_FOR_BUILD="\$(WINDRES)"
1255 WINDMC_FOR_BUILD="\$(WINDMC)"
1256 fi
1257
1258 AC_PROG_CC
1259 AC_PROG_CXX
1260
1261 # We must set the default linker to the linker used by gcc for the correct
1262 # operation of libtool. If LD is not defined and we are using gcc, try to
1263 # set the LD default to the ld used by gcc.
1264 if test -z "$LD"; then
1265 if test "$GCC" = yes; then
1266 case $build in
1267 *-*-mingw*)
1268 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1269 *)
1270 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1271 esac
1272 case $gcc_prog_ld in
1273 # Accept absolute paths.
1274 [[\\/]* | [A-Za-z]:[\\/]*)]
1275 LD="$gcc_prog_ld" ;;
1276 esac
1277 fi
1278 fi
1279
1280 # Check whether -static-libstdc++ -static-libgcc is supported.
1281 have_static_libs=no
1282 if test "$GCC" = yes; then
1283 saved_LDFLAGS="$LDFLAGS"
1284
1285 LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
1286 AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
1287 AC_LANG_PUSH(C++)
1288 AC_LINK_IFELSE([AC_LANG_SOURCE([
1289 #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
1290 #error -static-libstdc++ not implemented
1291 #endif
1292 int main() {}])],
1293 [AC_MSG_RESULT([yes]); have_static_libs=yes],
1294 [AC_MSG_RESULT([no])])
1295 AC_LANG_POP(C++)
1296
1297 LDFLAGS="$saved_LDFLAGS"
1298 fi
1299
1300 ACX_PROG_GNAT
1301 ACX_PROG_CMP_IGNORE_INITIAL
1302
1303 AC_ARG_ENABLE([bootstrap],
1304 [AS_HELP_STRING([--enable-bootstrap],
1305 [enable bootstrapping @<:@yes if native build@:>@])],,
1306 enable_bootstrap=default)
1307
1308 # Issue errors and warnings for invalid/strange bootstrap combinations.
1309 if test -r $srcdir/gcc/configure; then
1310 have_compiler=yes
1311 else
1312 have_compiler=no
1313 fi
1314
1315 case "$have_compiler:$host:$target:$enable_bootstrap" in
1316 *:*:*:no) ;;
1317
1318 # Default behavior. Enable bootstrap if we have a compiler
1319 # and we are in a native configuration.
1320 yes:$build:$build:default)
1321 enable_bootstrap=yes ;;
1322
1323 *:*:*:default)
1324 enable_bootstrap=no ;;
1325
1326 # We have a compiler and we are in a native configuration, bootstrap is ok
1327 yes:$build:$build:yes)
1328 ;;
1329
1330 # Other configurations, but we have a compiler. Assume the user knows
1331 # what he's doing.
1332 yes:*:*:yes)
1333 AC_MSG_WARN([trying to bootstrap a cross compiler])
1334 ;;
1335
1336 # No compiler: if they passed --enable-bootstrap explicitly, fail
1337 no:*:*:yes)
1338 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1339
1340 # Fail if wrong command line
1341 *)
1342 AC_MSG_ERROR([invalid option for --enable-bootstrap])
1343 ;;
1344 esac
1345
1346 # When bootstrapping with GCC, build stage 1 in C++98 mode to ensure that a
1347 # C++98 compiler can still start the bootstrap.
1348 if test "$enable_bootstrap:$GXX" = "yes:yes"; then
1349 CXX="$CXX -std=gnu++98"
1350 fi
1351
1352 # Used for setting $lt_cv_objdir
1353 _LT_CHECK_OBJDIR
1354
1355 # Check for GMP, MPFR and MPC
1356 gmplibs="-lmpc -lmpfr -lgmp"
1357 gmpinc=
1358 have_gmp=no
1359
1360 # Specify a location for mpc
1361 # check for this first so it ends up on the link line before mpfr.
1362 AC_ARG_WITH(mpc,
1363 [AS_HELP_STRING([--with-mpc=PATH],
1364 [specify prefix directory for installed MPC package.
1365 Equivalent to --with-mpc-include=PATH/include
1366 plus --with-mpc-lib=PATH/lib])])
1367 AC_ARG_WITH(mpc-include,
1368 [AS_HELP_STRING([--with-mpc-include=PATH],
1369 [specify directory for installed MPC include files])])
1370 AC_ARG_WITH(mpc-lib,
1371 [AS_HELP_STRING([--with-mpc-lib=PATH],
1372 [specify directory for the installed MPC library])])
1373
1374 if test "x$with_mpc" != x; then
1375 gmplibs="-L$with_mpc/lib $gmplibs"
1376 gmpinc="-I$with_mpc/include $gmpinc"
1377 fi
1378 if test "x$with_mpc_include" != x; then
1379 gmpinc="-I$with_mpc_include $gmpinc"
1380 fi
1381 if test "x$with_mpc_lib" != x; then
1382 gmplibs="-L$with_mpc_lib $gmplibs"
1383 fi
1384 if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1385 gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1386 gmpinc='-I$$s/mpc/src '"$gmpinc"
1387 # Do not test the mpc version. Assume that it is sufficient, since
1388 # it is in the source tree, and the library has not been built yet
1389 # but it would be included on the link line in the version check below
1390 # hence making the test fail.
1391 have_gmp=yes
1392 fi
1393
1394 # Specify a location for mpfr
1395 # check for this first so it ends up on the link line before gmp.
1396 AC_ARG_WITH(mpfr-dir,
1397 [AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
1398 [AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1399 Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])
1400
1401 AC_ARG_WITH(mpfr,
1402 [AS_HELP_STRING([--with-mpfr=PATH],
1403 [specify prefix directory for installed MPFR package.
1404 Equivalent to --with-mpfr-include=PATH/include
1405 plus --with-mpfr-lib=PATH/lib])])
1406 AC_ARG_WITH(mpfr-include,
1407 [AS_HELP_STRING([--with-mpfr-include=PATH],
1408 [specify directory for installed MPFR include files])])
1409 AC_ARG_WITH(mpfr-lib,
1410 [AS_HELP_STRING([--with-mpfr-lib=PATH],
1411 [specify directory for the installed MPFR library])])
1412
1413 if test "x$with_mpfr" != x; then
1414 gmplibs="-L$with_mpfr/lib $gmplibs"
1415 gmpinc="-I$with_mpfr/include $gmpinc"
1416 fi
1417 if test "x$with_mpfr_include" != x; then
1418 gmpinc="-I$with_mpfr_include $gmpinc"
1419 fi
1420 if test "x$with_mpfr_lib" != x; then
1421 gmplibs="-L$with_mpfr_lib $gmplibs"
1422 fi
1423 if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1424 # MPFR v3.1.0 moved the sources into a src sub-directory.
1425 if ! test -d ${srcdir}/mpfr/src; then
1426 AC_MSG_ERROR([dnl
1427 Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+.])
1428 fi
1429 gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
1430 gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
1431 extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
1432 # Do not test the mpfr version. Assume that it is sufficient, since
1433 # it is in the source tree, and the library has not been built yet
1434 # but it would be included on the link line in the version check below
1435 # hence making the test fail.
1436 have_gmp=yes
1437 fi
1438
1439 # Specify a location for gmp
1440 AC_ARG_WITH(gmp-dir,
1441 [AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
1442 [AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1443 Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])
1444
1445 AC_ARG_WITH(gmp,
1446 [AS_HELP_STRING([--with-gmp=PATH],
1447 [specify prefix directory for the installed GMP package.
1448 Equivalent to --with-gmp-include=PATH/include
1449 plus --with-gmp-lib=PATH/lib])])
1450 AC_ARG_WITH(gmp-include,
1451 [AS_HELP_STRING([--with-gmp-include=PATH],
1452 [specify directory for installed GMP include files])])
1453 AC_ARG_WITH(gmp-lib,
1454 [AS_HELP_STRING([--with-gmp-lib=PATH],
1455 [specify directory for the installed GMP library])])
1456
1457
1458 if test "x$with_gmp" != x; then
1459 gmplibs="-L$with_gmp/lib $gmplibs"
1460 gmpinc="-I$with_gmp/include $gmpinc"
1461 fi
1462 if test "x$with_gmp_include" != x; then
1463 gmpinc="-I$with_gmp_include $gmpinc"
1464 fi
1465 if test "x$with_gmp_lib" != x; then
1466 gmplibs="-L$with_gmp_lib $gmplibs"
1467 fi
1468 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1469 gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
1470 gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1471 extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1472 extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1473 extra_isl_gmp_configure_flags='--with-gmp-builddir=$$r/$(HOST_SUBDIR)/gmp'
1474 # Do not test the gmp version. Assume that it is sufficient, since
1475 # it is in the source tree, and the library has not been built yet
1476 # but it would be included on the link line in the version check below
1477 # hence making the test fail.
1478 have_gmp=yes
1479 fi
1480
1481 if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1482 have_gmp=yes
1483 saved_CFLAGS="$CFLAGS"
1484 CFLAGS="$CFLAGS $gmpinc"
1485 # Check for the recommended and required versions of GMP.
1486 AC_MSG_CHECKING([for the correct version of gmp.h])
1487 AC_TRY_COMPILE([#include "gmp.h"],[
1488 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1489 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1490 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3)
1491 choke me
1492 #endif
1493 ], [AC_TRY_COMPILE([#include <gmp.h>],[
1494 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1495 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1496 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
1497 choke me
1498 #endif
1499 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1500 [AC_MSG_RESULT([no]); have_gmp=no])
1501
1502 # If we have GMP, check the MPFR version.
1503 if test x"$have_gmp" = xyes; then
1504 # Check for the recommended and required versions of MPFR.
1505 AC_MSG_CHECKING([for the correct version of mpfr.h])
1506 AC_TRY_COMPILE([#include <gmp.h>
1507 #include <mpfr.h>],[
1508 #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0)
1509 choke me
1510 #endif
1511 ], [AC_TRY_COMPILE([#include <gmp.h>
1512 #include <mpfr.h>],[
1513 #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
1514 choke me
1515 #endif
1516 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1517 [AC_MSG_RESULT([no]); have_gmp=no])
1518 fi
1519
1520 # Check for the MPC header version.
1521 if test x"$have_gmp" = xyes ; then
1522 # Check for the recommended and required versions of MPC.
1523 AC_MSG_CHECKING([for the correct version of mpc.h])
1524 AC_TRY_COMPILE([#include <mpc.h>],[
1525 #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
1526 choke me
1527 #endif
1528 ], [AC_TRY_COMPILE([#include <mpc.h>],[
1529 #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
1530 choke me
1531 #endif
1532 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1533 [AC_MSG_RESULT([no]); have_gmp=no])
1534 fi
1535
1536 # Now check the MPFR library.
1537 if test x"$have_gmp" = xyes; then
1538 saved_LIBS="$LIBS"
1539 LIBS="$LIBS $gmplibs"
1540 AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1541 AC_TRY_LINK([#include <mpc.h>],[
1542 mpfr_t n;
1543 mpfr_t x;
1544 mpc_t c;
1545 int t;
1546 mpfr_init (n);
1547 mpfr_init (x);
1548 mpfr_atan2 (n, n, x, GMP_RNDN);
1549 mpfr_erfc (n, x, GMP_RNDN);
1550 mpfr_subnormalize (x, t, GMP_RNDN);
1551 mpfr_clear(n);
1552 mpfr_clear(x);
1553 mpc_init2 (c, 53);
1554 mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1555 mpc_cosh (c, c, MPC_RNDNN);
1556 mpc_pow (c, c, c, MPC_RNDNN);
1557 mpc_acosh (c, c, MPC_RNDNN);
1558 mpc_clear (c);
1559 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1560 LIBS="$saved_LIBS"
1561 fi
1562
1563 CFLAGS="$saved_CFLAGS"
1564
1565 # The library versions listed in the error message below should match
1566 # the HARD-minimums enforced above.
1567 if test x$have_gmp != xyes; then
1568 AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
1569 Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1570 their locations. Source code for these libraries can be found at
1571 their respective hosting sites as well as at
1572 ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
1573 http://gcc.gnu.org/install/prerequisites.html for additional info. If
1574 you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1575 make sure that you have installed both the libraries and the header
1576 files. They may be located in separate packages.])
1577 fi
1578 fi
1579
1580 # Flags needed for both GMP, MPFR and/or MPC.
1581 AC_SUBST(gmplibs)
1582 AC_SUBST(gmpinc)
1583 AC_SUBST(extra_mpfr_configure_flags)
1584 AC_SUBST(extra_mpc_gmp_configure_flags)
1585 AC_SUBST(extra_mpc_mpfr_configure_flags)
1586 AC_SUBST(extra_isl_gmp_configure_flags)
1587
1588 # Libraries to use for stage1 or when not bootstrapping.
1589 AC_ARG_WITH(stage1-libs,
1590 [AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
1591 [if test "$withval" = "no" -o "$withval" = "yes"; then
1592 stage1_libs=
1593 else
1594 stage1_libs=$withval
1595 fi],
1596 [stage1_libs=])
1597 AC_SUBST(stage1_libs)
1598
1599 # Linker flags to use for stage1 or when not bootstrapping.
1600 AC_ARG_WITH(stage1-ldflags,
1601 [AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
1602 [if test "$withval" = "no" -o "$withval" = "yes"; then
1603 stage1_ldflags=
1604 else
1605 stage1_ldflags=$withval
1606 fi],
1607 [stage1_ldflags=
1608 # In stage 1, default to linking libstdc++ and libgcc statically with GCC
1609 # if supported. But if the user explicitly specified the libraries to use,
1610 # trust that they are doing what they want.
1611 if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
1612 stage1_ldflags="-static-libstdc++ -static-libgcc"
1613 fi])
1614 AC_SUBST(stage1_ldflags)
1615
1616 # Libraries to use for stage2 and later builds.
1617 AC_ARG_WITH(boot-libs,
1618 [AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
1619 [if test "$withval" = "no" -o "$withval" = "yes"; then
1620 poststage1_libs=
1621 else
1622 poststage1_libs=$withval
1623 fi],
1624 [poststage1_libs=])
1625 AC_SUBST(poststage1_libs)
1626
1627 # Linker flags to use for stage2 and later builds.
1628 AC_ARG_WITH(boot-ldflags,
1629 [AS_HELP_STRING([--with-boot-ldflags=FLAGS],
1630 [linker flags for stage2 and later])],
1631 [if test "$withval" = "no" -o "$withval" = "yes"; then
1632 poststage1_ldflags=
1633 else
1634 poststage1_ldflags=$withval
1635 fi],
1636 [poststage1_ldflags=
1637 # In stages 2 and 3, default to linking libstdc++ and libgcc
1638 # statically. But if the user explicitly specified the libraries to
1639 # use, trust that they are doing what they want.
1640 if test "$poststage1_libs" = ""; then
1641 poststage1_ldflags="-static-libstdc++ -static-libgcc"
1642 fi])
1643 AC_SUBST(poststage1_ldflags)
1644
1645 # GCC GRAPHITE dependency isl.
1646 # Basic setup is inlined here, actual checks are in config/isl.m4
1647
1648 AC_ARG_WITH(isl,
1649 [AS_HELP_STRING(
1650 [--with-isl=PATH],
1651 [Specify prefix directory for the installed isl package.
1652 Equivalent to --with-isl-include=PATH/include
1653 plus --with-isl-lib=PATH/lib])])
1654
1655 # Treat --without-isl as a request to disable
1656 # GRAPHITE support and skip all following checks.
1657 if test "x$with_isl" != "xno"; then
1658 # Check for isl
1659 dnl Provide configure switches and initialize islinc & isllibs
1660 dnl with user input.
1661 ISL_INIT_FLAGS
1662 dnl The versions of isl that work for Graphite
1663 ISL_CHECK_VERSION()
1664 dnl Only execute fail-action, if isl has been requested.
1665 ISL_IF_FAILED([
1666 AC_MSG_ERROR([Unable to find a usable isl. See config.log for details.])])
1667 fi
1668
1669 # If the isl check failed, disable builds of in-tree variant of isl
1670 if test "x$with_isl" = xno ||
1671 test "x$gcc_cv_isl" = xno; then
1672 noconfigdirs="$noconfigdirs isl"
1673 islinc=
1674 fi
1675
1676 AC_SUBST(isllibs)
1677 AC_SUBST(islinc)
1678
1679 # Check for LTO support.
1680 AC_ARG_ENABLE(lto,
1681 [AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
1682 enable_lto=$enableval,
1683 enable_lto=yes; default_enable_lto=yes)
1684
1685 ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
1686 build_lto_plugin=yes
1687 ],[if test x"$default_enable_lto" = x"yes" ; then
1688 case $target in
1689 *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;;
1690 # On other non-ELF platforms, LTO has yet to be validated.
1691 *) enable_lto=no ;;
1692 esac
1693 else
1694 # Apart from ELF platforms, only Windows and Darwin support LTO so far.
1695 # It would also be nice to check the binutils support, but we don't
1696 # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just
1697 # warn during gcc/ subconfigure; unless you're bootstrapping with
1698 # -flto it won't be needed until after installation anyway.
1699 case $target in
1700 *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;;
1701 *) if test x"$enable_lto" = x"yes"; then
1702 AC_MSG_ERROR([LTO support is not enabled for this target.])
1703 fi
1704 ;;
1705 esac
1706 fi
1707 # Among non-ELF, only Windows platforms support the lto-plugin so far.
1708 # Build it unless LTO was explicitly disabled.
1709 case $target in
1710 *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
1711 *) ;;
1712 esac
1713 ])
1714
1715 AC_ARG_ENABLE(linker-plugin-configure-flags,
1716 [AS_HELP_STRING([[--enable-linker-plugin-configure-flags=FLAGS]],
1717 [additional flags for configuring linker plugins @<:@none@:>@])],
1718 extra_linker_plugin_configure_flags=$enableval,
1719 extra_linker_plugin_configure_flags=)
1720 AC_SUBST(extra_linker_plugin_configure_flags)
1721 AC_ARG_ENABLE(linker-plugin-flags,
1722 [AS_HELP_STRING([[--enable-linker-plugin-flags=FLAGS]],
1723 [additional flags for configuring and building linker plugins @<:@none@:>@])],
1724 extra_linker_plugin_flags=$enableval,
1725 extra_linker_plugin_flags=)
1726 AC_SUBST(extra_linker_plugin_flags)
1727
1728 # Enable --enable-host-shared.
1729 # Checked early to determine whether jit is an 'all' language
1730 AC_ARG_ENABLE(host-shared,
1731 [AS_HELP_STRING([--enable-host-shared],
1732 [build host code as shared libraries])],
1733 [host_shared=$enableval], [host_shared=no])
1734 AC_SUBST(host_shared)
1735
1736 # By default, C and C++ are the only stage 1 languages.
1737 stage1_languages=,c,
1738
1739 # Target libraries that we bootstrap.
1740 bootstrap_target_libs=,target-libgcc,
1741
1742 # Figure out what language subdirectories are present.
1743 # Look if the user specified --enable-languages="..."; if not, use
1744 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1745 # go away some day.
1746 # NB: embedded tabs in this IF block -- do not untabify
1747 if test -d ${srcdir}/gcc; then
1748 if test x"${enable_languages+set}" != xset; then
1749 if test x"${LANGUAGES+set}" = xset; then
1750 enable_languages="${LANGUAGES}"
1751 echo configure.ac: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1752 else
1753 enable_languages=default
1754 fi
1755 else
1756 if test x"${enable_languages}" = x ||
1757 test x"${enable_languages}" = xyes;
1758 then
1759 echo configure.ac: --enable-languages needs at least one language argument 1>&2
1760 exit 1
1761 fi
1762 fi
1763 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1764
1765 # 'f95' is the old name for the 'fortran' language. We issue a warning
1766 # and make the substitution.
1767 case ,${enable_languages}, in
1768 *,f95,*)
1769 echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1770 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1771 ;;
1772 esac
1773
1774 # If bootstrapping, C++ must be enabled.
1775 case ",$enable_languages,:$enable_bootstrap" in
1776 *,c++,*:*) ;;
1777 *:yes)
1778 if test -f ${srcdir}/gcc/cp/config-lang.in; then
1779 enable_languages="${enable_languages},c++"
1780 else
1781 AC_MSG_ERROR([bootstrapping requires c++ sources])
1782 fi
1783 ;;
1784 esac
1785
1786 # First scan to see if an enabled language requires some other language.
1787 # We assume that a given config-lang.in will list all the language
1788 # front ends it requires, even if some are required indirectly.
1789 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1790 case ${lang_frag} in
1791 ..) ;;
1792 # The odd quoting in the next line works around
1793 # an apparent bug in bash 1.12 on linux.
1794 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1795 *)
1796 # From the config-lang.in, get $language, $lang_requires, and
1797 # $lang_requires_boot_languages.
1798 language=
1799 lang_requires=
1800 lang_requires_boot_languages=
1801 # set srcdir during sourcing lang_frag to the gcc dir.
1802 # Sadly overriding srcdir on the . line doesn't work in plain sh as it
1803 # polutes this shell
1804 saved_srcdir=${srcdir}
1805 srcdir=${srcdir}/gcc . ${lang_frag}
1806 srcdir=${saved_srcdir}
1807 for other in ${lang_requires} ${lang_requires_boot_languages}; do
1808 case ,${enable_languages}, in
1809 *,$other,*) ;;
1810 *,default,*) ;;
1811 *,all,*) ;;
1812 *,$language,*)
1813 echo " \`$other' language required by \`$language'; enabling" 1>&2
1814 enable_languages="${enable_languages},${other}"
1815 ;;
1816 esac
1817 done
1818 for other in ${lang_requires_boot_languages} ; do
1819 if test "$other" != "c"; then
1820 case ,${enable_stage1_languages}, in
1821 *,$other,*) ;;
1822 *,default,*) ;;
1823 *,all,*) ;;
1824 *)
1825 case ,${enable_languages}, in
1826 *,$language,*)
1827 echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
1828 enable_stage1_languages="$enable_stage1_languages,${other}"
1829 ;;
1830 esac
1831 ;;
1832 esac
1833 fi
1834 done
1835 ;;
1836 esac
1837 done
1838
1839 new_enable_languages=,c,
1840
1841 # If LTO is enabled, add the LTO front end.
1842 if test "$enable_lto" = "yes" ; then
1843 case ,${enable_languages}, in
1844 *,lto,*) ;;
1845 *) enable_languages="${enable_languages},lto" ;;
1846 esac
1847 if test "${build_lto_plugin}" = "yes" ; then
1848 configdirs="$configdirs lto-plugin"
1849 fi
1850 fi
1851
1852 # If we're building an offloading compiler, add the LTO front end.
1853 if test x"$enable_as_accelerator_for" != x ; then
1854 case ,${enable_languages}, in
1855 *,lto,*) ;;
1856 *) enable_languages="${enable_languages},lto" ;;
1857 esac
1858 fi
1859
1860 missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ `
1861 potential_languages=,c,
1862
1863 enabled_target_libs=
1864 disabled_target_libs=
1865
1866 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1867 case ${lang_frag} in
1868 ..) ;;
1869 # The odd quoting in the next line works around
1870 # an apparent bug in bash 1.12 on linux.
1871 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1872 *)
1873 # From the config-lang.in, get $language, $target_libs,
1874 # $lang_dirs, $boot_language, and $build_by_default
1875 language=
1876 target_libs=
1877 lang_dirs=
1878 subdir_requires=
1879 boot_language=no
1880 build_by_default=yes
1881 # set srcdir during sourcing. See above about save & restore
1882 saved_srcdir=${srcdir}
1883 srcdir=${srcdir}/gcc . ${lang_frag}
1884 srcdir=${saved_srcdir}
1885 if test x${language} = x; then
1886 echo "${lang_frag} doesn't set \$language." 1>&2
1887 exit 1
1888 fi
1889
1890 if test "$language" = "c++"; then
1891 boot_language=yes
1892 fi
1893
1894 add_this_lang=no
1895 # C is always enabled, so no need to add it again
1896 if test "$language" != "c"; then
1897 case ,${enable_languages}, in
1898 *,${language},*)
1899 # Language was explicitly selected; include it
1900 add_this_lang=yes
1901 ;;
1902 *,all,*)
1903 # All languages are enabled
1904 add_this_lang=all
1905 ;;
1906 *,default,*)
1907 # 'default' was selected, select it if it is a default language
1908 add_this_lang=${build_by_default}
1909 ;;
1910 esac
1911 fi
1912
1913 # Disable languages that need other directories if these aren't available.
1914 for i in $subdir_requires; do
1915 test -f "$srcdir/gcc/$i/config-lang.in" && continue
1916 case ${add_this_lang} in
1917 yes)
1918 # Specifically requested language; tell them.
1919 AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1920 ;;
1921 all)
1922 AC_MSG_WARN([The gcc/$i directory contains parts of $language but is missing])
1923 add_this_lang=unsupported
1924 ;;
1925 *)
1926 # Silently disable.
1927 add_this_lang=unsupported
1928 ;;
1929 esac
1930 done
1931
1932 # Disable Ada if no preexisting GNAT is available.
1933 case ${add_this_lang}:${language}:${have_gnat} in
1934 yes:ada:no)
1935 # Specifically requested language; tell them.
1936 AC_MSG_ERROR([GNAT is required to build $language])
1937 ;;
1938 all:ada:no)
1939 AC_MSG_WARN([GNAT is required to build $language])
1940 add_this_lang=unsupported
1941 ;;
1942 *:ada:no)
1943 # Silently disable.
1944 add_this_lang=unsupported
1945 ;;
1946 esac
1947
1948 # Disable jit if -enable-host-shared not specified
1949 case ${add_this_lang}:${language}:${host_shared} in
1950 yes:jit:no)
1951 # PR jit/64780: explicitly specify --enable-host-shared
1952 AC_MSG_ERROR([
1953 Enabling language "jit" requires --enable-host-shared.
1954
1955 --enable-host-shared typically slows the rest of the compiler down by
1956 a few %, so you must explicitly enable it.
1957
1958 If you want to build both the jit and the regular compiler, it is often
1959 best to do this via two separate configure/builds, in separate
1960 directories, to avoid imposing the performance cost of
1961 --enable-host-shared on the regular compiler.])
1962 ;;
1963 all:jit:no)
1964 AC_MSG_WARN([--enable-host-shared required to build $language])
1965 add_this_lang=unsupported
1966 ;;
1967 *:jit:no)
1968 # Silently disable.
1969 add_this_lang=unsupported
1970 ;;
1971 esac
1972
1973 # Disable a language that is unsupported by the target.
1974 case "${add_this_lang}: $unsupported_languages " in
1975 no:*) ;;
1976 unsupported:*) ;;
1977 *:*" $language "*)
1978 AC_MSG_WARN([${language} not supported for this target])
1979 add_this_lang=unsupported
1980 ;;
1981 esac
1982
1983 case $add_this_lang in
1984 unsupported)
1985 # Remove language-dependent dirs.
1986 disabled_target_libs="$disabled_target_libs $target_libs"
1987 noconfigdirs="$noconfigdirs $lang_dirs"
1988 ;;
1989 no)
1990 # Remove language-dependent dirs; still show language as supported.
1991 disabled_target_libs="$disabled_target_libs $target_libs"
1992 noconfigdirs="$noconfigdirs $lang_dirs"
1993 potential_languages="${potential_languages}${language},"
1994 ;;
1995 all|yes)
1996 new_enable_languages="${new_enable_languages}${language},"
1997 potential_languages="${potential_languages}${language},"
1998 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1999 enabled_target_libs="$enabled_target_libs $target_libs"
2000 case "${boot_language}:,$enable_stage1_languages," in
2001 yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
2002 # Add to (comma-separated) list of stage 1 languages.
2003 case ",$stage1_languages," in
2004 *,$language,* | ,yes, | ,all,) ;;
2005 *) stage1_languages="${stage1_languages}${language}," ;;
2006 esac
2007 # We need to bootstrap any supporting libraries.
2008 bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
2009 ;;
2010 esac
2011 ;;
2012 esac
2013 ;;
2014 esac
2015 done
2016
2017 # Add target libraries which are only needed for disabled languages
2018 # to noconfigdirs.
2019 if test -n "$disabled_target_libs"; then
2020 for dir in $disabled_target_libs; do
2021 case " $enabled_target_libs " in
2022 *" ${dir} "*) ;;
2023 *) noconfigdirs="$noconfigdirs $dir" ;;
2024 esac
2025 done
2026 fi
2027
2028 AC_ARG_ENABLE(stage1-languages,
2029 [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
2030 [choose additional languages to build during
2031 stage1. Mostly useful for compiler development])],
2032 [case ,${enable_stage1_languages}, in
2033 ,no,|,,)
2034 # Set it to something that will have no effect in the loop below
2035 enable_stage1_languages=c ;;
2036 ,yes,)
2037 enable_stage1_languages=`echo $new_enable_languages | \
2038 sed -e "s/^,//" -e "s/,$//" ` ;;
2039 *,all,*)
2040 enable_stage1_languages=`echo ,$enable_stage1_languages, | \
2041 sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
2042 esac
2043
2044 # Add "good" languages from enable_stage1_languages to stage1_languages,
2045 # while "bad" languages go in missing_languages. Leave no duplicates.
2046 for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
2047 case $potential_languages in
2048 *,$i,*)
2049 case $stage1_languages in
2050 *,$i,*) ;;
2051 *) stage1_languages="$stage1_languages$i," ;;
2052 esac ;;
2053 *)
2054 case $missing_languages in
2055 *,$i,*) ;;
2056 *) missing_languages="$missing_languages$i," ;;
2057 esac ;;
2058 esac
2059 done])
2060
2061 # Remove leading/trailing commas that were added for simplicity
2062 potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
2063 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
2064 stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
2065 new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
2066
2067 if test "x$missing_languages" != x; then
2068 AC_MSG_ERROR([
2069 The following requested languages could not be built: ${missing_languages}
2070 Supported languages are: ${potential_languages}])
2071 fi
2072 if test "x$new_enable_languages" != "x$enable_languages"; then
2073 echo The following languages will be built: ${new_enable_languages}
2074 enable_languages="$new_enable_languages"
2075 fi
2076
2077 AC_SUBST(stage1_languages)
2078 ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
2079 fi
2080
2081 # Handle --disable-<component> generically.
2082 for dir in $configdirs $build_configdirs $target_configdirs ; do
2083 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
2084 varname=`echo $dirname | sed -e s/+/_/g`
2085 if eval test x\${enable_${varname}} "=" xno ; then
2086 noconfigdirs="$noconfigdirs $dir"
2087 fi
2088 done
2089
2090 # Check for Boehm's garbage collector
2091 AC_ARG_ENABLE(objc-gc,
2092 [AS_HELP_STRING([--enable-objc-gc],
2093 [enable use of Boehm's garbage collector with the
2094 GNU Objective-C runtime])])
2095 AC_ARG_WITH([target-bdw-gc],
2096 [AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
2097 [specify prefix directory for installed bdw-gc package.
2098 Equivalent to --with-target-bdw-gc-include=PATH/include
2099 plus --with-target-bdw-gc-lib=PATH/lib])])
2100 AC_ARG_WITH([target-bdw-gc-include],
2101 [AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
2102 [specify directories for installed bdw-gc include files])])
2103 AC_ARG_WITH([target-bdw-gc-lib],
2104 [AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
2105 [specify directories for installed bdw-gc library])])
2106
2107 case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
2108 AC_MSG_CHECKING([for bdw garbage collector])
2109 if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
2110 dnl no bdw-gw options, assume default locations
2111 AC_MSG_RESULT([using bdw-gc in default locations])
2112 else
2113 dnl bdw-gw options, first error checking, complete checking in libobjc
2114 if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
2115 AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
2116 elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
2117 AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
2118 else
2119 AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
2120 fi
2121 fi
2122 esac
2123
2124 # Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
2125 case ,${enable_languages}, in
2126 *,c++,*)
2127 # Disable libitm, libsanitizer if we're not building libstdc++
2128 case "${noconfigdirs}" in
2129 *target-libstdc++-v3*)
2130 noconfigdirs="$noconfigdirs target-libitm target-libsanitizer"
2131 ;;
2132 *) ;;
2133 esac
2134 ;;
2135 *)
2136 noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv"
2137 ;;
2138 esac
2139
2140 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
2141 # $build_configdirs and $target_configdirs.
2142 # If we have the source for $noconfigdirs entries, add them to $notsupp.
2143
2144 notsupp=""
2145 for dir in . $skipdirs $noconfigdirs ; do
2146 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
2147 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2148 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
2149 if test -r $srcdir/$dirname/configure ; then
2150 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2151 true
2152 else
2153 notsupp="$notsupp $dir"
2154 fi
2155 fi
2156 fi
2157 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2158 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
2159 if test -r $srcdir/$dirname/configure ; then
2160 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2161 true
2162 else
2163 notsupp="$notsupp $dir"
2164 fi
2165 fi
2166 fi
2167 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2168 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
2169 if test -r $srcdir/$dirname/configure ; then
2170 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2171 true
2172 else
2173 notsupp="$notsupp $dir"
2174 fi
2175 fi
2176 fi
2177 done
2178
2179 # Quietly strip out all directories which aren't configurable in this tree.
2180 # This relies on all configurable subdirectories being autoconfiscated, which
2181 # is now the case.
2182 build_configdirs_all="$build_configdirs"
2183 build_configdirs=
2184 for i in ${build_configdirs_all} ; do
2185 j=`echo $i | sed -e s/build-//g`
2186 if test -f ${srcdir}/$j/configure ; then
2187 build_configdirs="${build_configdirs} $i"
2188 fi
2189 done
2190
2191 configdirs_all="$configdirs"
2192 configdirs=
2193 for i in ${configdirs_all} ; do
2194 if test -f ${srcdir}/$i/configure ; then
2195 configdirs="${configdirs} $i"
2196 fi
2197 done
2198
2199 target_configdirs_all="$target_configdirs"
2200 target_configdirs=
2201 for i in ${target_configdirs_all} ; do
2202 j=`echo $i | sed -e s/target-//g`
2203 if test -f ${srcdir}/$j/configure ; then
2204 target_configdirs="${target_configdirs} $i"
2205 fi
2206 done
2207
2208 # libiberty-linker-plugin is special: it doesn't have its own source directory,
2209 # so we have to add it after the preceding checks.
2210 if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
2211 then
2212 case " $configdirs " in
2213 *" libiberty "*)
2214 # If we can build libiberty, we can also build libiberty-linker-plugin.
2215 configdirs="$configdirs libiberty-linker-plugin"
2216 extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \
2217 --with-libiberty=../libiberty-linker-plugin";;
2218 *)
2219 AC_MSG_ERROR([libiberty missing]);;
2220 esac
2221 fi
2222
2223 # Sometimes we have special requirements for the host libiberty.
2224 extra_host_libiberty_configure_flags=
2225 extra_host_zlib_configure_flags=
2226 case " $configdirs " in
2227 *" lto-plugin "* | *" libcc1 "*)
2228 # When these are to be built as shared libraries, the same applies to
2229 # libiberty.
2230 extra_host_libiberty_configure_flags=--enable-shared
2231 ;;
2232 *" bfd "*)
2233 # When bfd is to be built as a shared library, the same applies to
2234 # zlib.
2235 if test "$enable_shared" = "yes"; then
2236 extra_host_zlib_configure_flags=--enable-host-shared
2237 fi
2238 ;;
2239 esac
2240 AC_SUBST(extra_host_libiberty_configure_flags)
2241 AC_SUBST(extra_host_zlib_configure_flags)
2242
2243 # Produce a warning message for the subdirs we can't configure.
2244 # This isn't especially interesting in the Cygnus tree, but in the individual
2245 # FSF releases, it's important to let people know when their machine isn't
2246 # supported by the one or two programs in a package.
2247
2248 if test -n "${notsupp}" && test -z "${norecursion}" ; then
2249 # If $appdirs is non-empty, at least one of those directories must still
2250 # be configured, or we error out. (E.g., if the gas release supports a
2251 # specified target in some subdirs but not the gas subdir, we shouldn't
2252 # pretend that all is well.)
2253 if test -n "$appdirs" ; then
2254 for dir in $appdirs ; do
2255 if test -r $dir/Makefile.in ; then
2256 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2257 appdirs=""
2258 break
2259 fi
2260 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
2261 appdirs=""
2262 break
2263 fi
2264 fi
2265 done
2266 if test -n "$appdirs" ; then
2267 echo "*** This configuration is not supported by this package." 1>&2
2268 exit 1
2269 fi
2270 fi
2271 # Okay, some application will build, or we don't care to check. Still
2272 # notify of subdirs not getting built.
2273 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
2274 echo " ${notsupp}" 1>&2
2275 echo " (Any other directories should still work fine.)" 1>&2
2276 fi
2277
2278 case "$host" in
2279 *msdosdjgpp*)
2280 enable_gdbtk=no ;;
2281 esac
2282
2283 # To find our prefix, in gcc_cv_tool_prefix.
2284 ACX_TOOL_DIRS
2285
2286 copy_dirs=
2287
2288 AC_ARG_WITH([build-sysroot],
2289 [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
2290 [use sysroot as the system root during the build])],
2291 [if test x"$withval" != x ; then
2292 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
2293 fi],
2294 [SYSROOT_CFLAGS_FOR_TARGET=])
2295 AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
2296
2297 AC_ARG_WITH([debug-prefix-map],
2298 [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
2299 [map A to B, C to D ... in debug information])],
2300 [if test x"$withval" != x; then
2301 DEBUG_PREFIX_CFLAGS_FOR_TARGET=
2302 for debug_map in $withval; do
2303 DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
2304 done
2305 fi],
2306 [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
2307 AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
2308
2309 # During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
2310 # might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
2311 # might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
2312 # We want to ensure that TARGET libraries (which we know are built with
2313 # gcc) are built with "-O2 -g", so include those options when setting
2314 # CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
2315 if test "x$CFLAGS_FOR_TARGET" = x; then
2316 if test "x${is_cross_compiler}" = xyes; then
2317 CFLAGS_FOR_TARGET="-g -O2"
2318 else
2319 CFLAGS_FOR_TARGET=$CFLAGS
2320 case " $CFLAGS " in
2321 *" -O2 "*) ;;
2322 *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;;
2323 esac
2324 case " $CFLAGS " in
2325 *" -g "* | *" -g3 "*) ;;
2326 *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;;
2327 esac
2328 fi
2329 fi
2330 AC_SUBST(CFLAGS_FOR_TARGET)
2331
2332 if test "x$CXXFLAGS_FOR_TARGET" = x; then
2333 if test "x${is_cross_compiler}" = xyes; then
2334 CXXFLAGS_FOR_TARGET="-g -O2"
2335 else
2336 CXXFLAGS_FOR_TARGET=$CXXFLAGS
2337 case " $CXXFLAGS " in
2338 *" -O2 "*) ;;
2339 *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;;
2340 esac
2341 case " $CXXFLAGS " in
2342 *" -g "* | *" -g3 "*) ;;
2343 *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;;
2344 esac
2345 fi
2346 fi
2347 AC_SUBST(CXXFLAGS_FOR_TARGET)
2348
2349 AC_SUBST(LDFLAGS_FOR_TARGET)
2350
2351 # Handle --with-headers=XXX. If the value is not "yes", the contents of
2352 # the named directory are copied to $(tooldir)/sys-include.
2353 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2354 if test x${is_cross_compiler} = xno ; then
2355 echo 1>&2 '***' --with-headers is only supported when cross compiling
2356 exit 1
2357 fi
2358 if test x"${with_headers}" != xyes ; then
2359 x=${gcc_cv_tool_prefix}
2360 copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
2361 fi
2362 fi
2363
2364 # Handle --with-libs=XXX. If the value is not "yes", the contents of
2365 # the name directories are copied to $(tooldir)/lib. Multiple directories
2366 # are permitted.
2367 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2368 if test x${is_cross_compiler} = xno ; then
2369 echo 1>&2 '***' --with-libs is only supported when cross compiling
2370 exit 1
2371 fi
2372 if test x"${with_libs}" != xyes ; then
2373 # Copy the libraries in reverse order, so that files in the first named
2374 # library override files in subsequent libraries.
2375 x=${gcc_cv_tool_prefix}
2376 for l in ${with_libs}; do
2377 copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
2378 done
2379 fi
2380 fi
2381
2382 # Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2383 #
2384 # This is done by determining whether or not the appropriate directory
2385 # is available, and by checking whether or not specific configurations
2386 # have requested that this magic not happen.
2387 #
2388 # The command line options always override the explicit settings in
2389 # configure.ac, and the settings in configure.ac override this magic.
2390 #
2391 # If the default for a toolchain is to use GNU as and ld, and you don't
2392 # want to do that, then you should use the --without-gnu-as and
2393 # --without-gnu-ld options for the configure script. Similarly, if
2394 # the default is to use the included zlib and you don't want to do that,
2395 # you should use the --with-system-zlib option for the configure script.
2396
2397 if test x${use_gnu_as} = x &&
2398 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2399 with_gnu_as=yes
2400 extra_host_args="$extra_host_args --with-gnu-as"
2401 fi
2402
2403 if test x${use_gnu_ld} = x &&
2404 echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2405 with_gnu_ld=yes
2406 extra_host_args="$extra_host_args --with-gnu-ld"
2407 fi
2408
2409 if test x${use_included_zlib} = x &&
2410 echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2411 :
2412 else
2413 with_system_zlib=yes
2414 extra_host_args="$extra_host_args --with-system-zlib"
2415 fi
2416
2417 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2418 # can detect this case.
2419
2420 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2421 with_newlib=yes
2422 extra_host_args="$extra_host_args --with-newlib"
2423 fi
2424
2425 # Handle ${copy_dirs}
2426 set fnord ${copy_dirs}
2427 shift
2428 while test $# != 0 ; do
2429 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2430 :
2431 else
2432 echo Copying $1 to $2
2433
2434 # Use the install script to create the directory and all required
2435 # parent directories.
2436 if test -d $2 ; then
2437 :
2438 else
2439 echo >config.temp
2440 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2441 fi
2442
2443 # Copy the directory, assuming we have tar.
2444 # FIXME: Should we use B in the second tar? Not all systems support it.
2445 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2446
2447 # It is the responsibility of the user to correctly adjust all
2448 # symlinks. If somebody can figure out how to handle them correctly
2449 # here, feel free to add the code.
2450
2451 echo $1 > $2/COPIED
2452 fi
2453 shift; shift
2454 done
2455
2456 # Determine a target-dependent exec_prefix that the installed
2457 # gcc will search in. Keep this list sorted by triplet, with
2458 # the *-*-osname triplets last.
2459 md_exec_prefix=
2460 case "${target}" in
2461 i[[34567]]86-pc-msdosdjgpp*)
2462 md_exec_prefix=/dev/env/DJDIR/bin
2463 ;;
2464 *-*-hpux* | \
2465 *-*-nto-qnx* | \
2466 *-*-solaris2*)
2467 md_exec_prefix=/usr/ccs/bin
2468 ;;
2469 esac
2470
2471 extra_arflags_for_target=
2472 extra_nmflags_for_target=
2473 extra_ranlibflags_for_target=
2474 target_makefile_frag=/dev/null
2475 case "${target}" in
2476 spu-*-*)
2477 target_makefile_frag="config/mt-spu"
2478 ;;
2479 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
2480 target_makefile_frag="config/mt-sde"
2481 ;;
2482 mipsisa*-*-elfoabi*)
2483 target_makefile_frag="config/mt-mips-elfoabi"
2484 ;;
2485 mips*-*-*linux* | mips*-*-gnu*)
2486 target_makefile_frag="config/mt-mips-gnu"
2487 ;;
2488 nios2-*-elf*)
2489 target_makefile_frag="config/mt-nios2-elf"
2490 ;;
2491 *-*-linux-android*)
2492 target_makefile_frag="config/mt-android"
2493 ;;
2494 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2495 target_makefile_frag="config/mt-gnu"
2496 ;;
2497 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2498 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
2499 # commands to handle both 32-bit and 64-bit objects. These flags are
2500 # harmless if we're using GNU nm or ar.
2501 extra_arflags_for_target=" -X32_64"
2502 extra_nmflags_for_target=" -B -X32_64"
2503 ;;
2504 esac
2505
2506 alphaieee_frag=/dev/null
2507 case $target in
2508 alpha*-*-*)
2509 # This just makes sure to use the -mieee option to build target libs.
2510 # This should probably be set individually by each library.
2511 alphaieee_frag="config/mt-alphaieee"
2512 ;;
2513 esac
2514
2515 # If --enable-target-optspace always use -Os instead of -O2 to build
2516 # the target libraries, similarly if it is not specified, use -Os
2517 # on selected platforms.
2518 ospace_frag=/dev/null
2519 case "${enable_target_optspace}:${target}" in
2520 yes:*)
2521 ospace_frag="config/mt-ospace"
2522 ;;
2523 :d30v-*)
2524 ospace_frag="config/mt-d30v"
2525 ;;
2526 :m32r-* | :d10v-* | :fr30-* | :i?86*-*-elfiamcu)
2527 ospace_frag="config/mt-ospace"
2528 ;;
2529 no:* | :*)
2530 ;;
2531 *)
2532 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2533 ;;
2534 esac
2535
2536 # Some systems (e.g., one of the i386-aix systems the gas testers are
2537 # using) don't handle "\$" correctly, so don't use it here.
2538 tooldir='${exec_prefix}'/${target_noncanonical}
2539 build_tooldir=${tooldir}
2540
2541 # Create a .gdbinit file which runs the one in srcdir
2542 # and tells GDB to look there for source files.
2543
2544 if test -r ${srcdir}/.gdbinit ; then
2545 case ${srcdir} in
2546 .) ;;
2547 *) cat > ./.gdbinit <<EOF
2548 # ${NO_EDIT}
2549 dir ${srcdir}
2550 dir .
2551 source ${srcdir}/.gdbinit
2552 EOF
2553 ;;
2554 esac
2555 fi
2556
2557 # Make sure that the compiler is able to generate an executable. If it
2558 # can't, we are probably in trouble. We don't care whether we can run the
2559 # executable--we might be using a cross compiler--we only care whether it
2560 # can be created. At this point the main configure script has set CC.
2561 we_are_ok=no
2562 echo "int main () { return 0; }" > conftest.c
2563 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2564 if test $? = 0 ; then
2565 if test -s conftest || test -s conftest.exe ; then
2566 we_are_ok=yes
2567 fi
2568 fi
2569 case $we_are_ok in
2570 no)
2571 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2572 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2573 rm -f conftest*
2574 exit 1
2575 ;;
2576 esac
2577 rm -f conftest*
2578
2579 # Decide which environment variable is used to find dynamic libraries.
2580 case "${host}" in
2581 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2582 *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2583 *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2584 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2585 esac
2586
2587 # On systems where the dynamic library environment variable is PATH,
2588 # gcc/ will put dynamic libraries into a subdirectory to avoid adding
2589 # built executables to PATH.
2590 if test "$RPATH_ENVVAR" = PATH; then
2591 GCC_SHLIB_SUBDIR=/shlib
2592 else
2593 GCC_SHLIB_SUBDIR=
2594 fi
2595
2596 # Adjust the toplevel makefile according to whether bootstrap was selected.
2597 case $enable_bootstrap in
2598 yes)
2599 bootstrap_suffix=bootstrap
2600 BUILD_CONFIG=bootstrap-debug
2601 ;;
2602 no)
2603 bootstrap_suffix=no-bootstrap
2604 BUILD_CONFIG=
2605 ;;
2606 esac
2607
2608 AC_MSG_CHECKING(for default BUILD_CONFIG)
2609
2610 AC_ARG_WITH([build-config],
2611 [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
2612 [use config/NAME.mk build configuration])],
2613 [case $with_build_config in
2614 yes) with_build_config= ;;
2615 no) with_build_config= BUILD_CONFIG= ;;
2616 esac])
2617
2618 if test "x${with_build_config}" != x; then
2619 BUILD_CONFIG=$with_build_config
2620 else
2621 case $BUILD_CONFIG in
2622 bootstrap-debug)
2623 if echo "int f (void) { return 0; }" > conftest.c &&
2624 ${CC} -c conftest.c &&
2625 mv conftest.o conftest.o.g0 &&
2626 ${CC} -c -g conftest.c &&
2627 mv conftest.o conftest.o.g &&
2628 ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
2629 :
2630 else
2631 BUILD_CONFIG=
2632 fi
2633 rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2634 ;;
2635 esac
2636 fi
2637 AC_MSG_RESULT($BUILD_CONFIG)
2638 AC_SUBST(BUILD_CONFIG)
2639
2640 # Use same top-level configure hooks in libgcc/libstdc++/libvtv.
2641 AC_MSG_CHECKING([for --enable-vtable-verify])
2642 AC_ARG_ENABLE(vtable-verify,
2643 [AS_HELP_STRING([--enable-vtable-verify],
2644 [Enable vtable verification feature])],
2645 [case "$enableval" in
2646 yes) enable_vtable_verify=yes ;;
2647 no) enable_vtable_verify=no ;;
2648 *) enable_vtable_verify=no;;
2649 esac],
2650 [enable_vtable_verify=no])
2651 AC_MSG_RESULT($enable_vtable_verify)
2652
2653 # Record target_configdirs and the configure arguments for target and
2654 # build configuration in Makefile.
2655 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2656 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2657 bootstrap_fixincludes=no
2658
2659 # If we are building libgomp, bootstrap it.
2660 if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
2661 bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
2662 fi
2663
2664 # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
2665 # or bootstrap-ubsan, bootstrap it.
2666 if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
2667 case "$BUILD_CONFIG" in
2668 *bootstrap-asan* | *bootstrap-ubsan* )
2669 bootstrap_target_libs=${bootstrap_target_libs}target-libsanitizer,
2670 bootstrap_fixincludes=yes
2671 ;;
2672 esac
2673 fi
2674
2675 # If we are building libvtv and --enable-vtable-verify, bootstrap it.
2676 if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 &&
2677 test "$enable_vtable_verify" != no; then
2678 bootstrap_target_libs=${bootstrap_target_libs}target-libvtv,
2679 fi
2680
2681 # Determine whether gdb needs tk/tcl or not.
2682 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2683 # and in that case we want gdb to be built without tk. Ugh!
2684 # In fact I believe gdb is the *only* package directly dependent on tk,
2685 # so we should be able to put the 'maybe's in unconditionally and
2686 # leave out the maybe dependencies when enable_gdbtk is false. I'm not
2687 # 100% sure that that's safe though.
2688
2689 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2690 case "$enable_gdbtk" in
2691 no)
2692 GDB_TK="" ;;
2693 yes)
2694 GDB_TK="${gdb_tk}" ;;
2695 *)
2696 # Only add the dependency on gdbtk when GDBtk is part of the gdb
2697 # distro. Eventually someone will fix this and move Insight, nee
2698 # gdbtk to a separate directory.
2699 if test -d ${srcdir}/gdb/gdbtk ; then
2700 GDB_TK="${gdb_tk}"
2701 else
2702 GDB_TK=""
2703 fi
2704 ;;
2705 esac
2706 CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2707 INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2708
2709 # Strip out unwanted targets.
2710
2711 # While at that, we remove Makefiles if we were started for recursive
2712 # configuration, so that the top-level Makefile reconfigures them,
2713 # like we used to do when configure itself was recursive.
2714
2715 # Loop over modules. We used to use the "$extrasub" feature from Autoconf
2716 # but now we're fixing up the Makefile ourselves with the additional
2717 # commands passed to AC_CONFIG_FILES. Use separate variables
2718 # extrasub-{build,host,target} not because there is any reason to split
2719 # the substitutions up that way, but only to remain below the limit of
2720 # 99 commands in a script, for HP-UX sed.
2721 # Do not nest @if/@endif pairs, because configure will not warn you at all.
2722
2723 case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2724 yes:yes:*\ gold\ *:*,c++,*) ;;
2725 yes:yes:*\ gold\ *:*)
2726 AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2727 ;;
2728 esac
2729
2730 extrasub_build=
2731 for module in ${build_configdirs} ; do
2732 if test -z "${no_recursion}" \
2733 && test -f ${build_subdir}/${module}/Makefile; then
2734 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2735 rm -f ${build_subdir}/${module}/Makefile
2736 fi
2737 extrasub_build="$extrasub_build
2738 /^@if build-$module\$/d
2739 /^@endif build-$module\$/d
2740 /^@if build-$module-$bootstrap_suffix\$/d
2741 /^@endif build-$module-$bootstrap_suffix\$/d"
2742 done
2743 extrasub_host=
2744 for module in ${configdirs} ; do
2745 if test -z "${no_recursion}"; then
2746 for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2747 if test -f ${file}; then
2748 echo 1>&2 "*** removing ${file} to force reconfigure"
2749 rm -f ${file}
2750 fi
2751 done
2752 fi
2753 case ${module},${bootstrap_fixincludes} in
2754 fixincludes,no) host_bootstrap_suffix=no-bootstrap ;;
2755 *) host_bootstrap_suffix=$bootstrap_suffix ;;
2756 esac
2757 extrasub_host="$extrasub_host
2758 /^@if $module\$/d
2759 /^@endif $module\$/d
2760 /^@if $module-$host_bootstrap_suffix\$/d
2761 /^@endif $module-$host_bootstrap_suffix\$/d"
2762 done
2763 extrasub_target=
2764 for module in ${target_configdirs} ; do
2765 if test -z "${no_recursion}" \
2766 && test -f ${target_subdir}/${module}/Makefile; then
2767 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2768 rm -f ${target_subdir}/${module}/Makefile
2769 fi
2770
2771 # We only bootstrap target libraries listed in bootstrap_target_libs.
2772 case $bootstrap_target_libs in
2773 *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
2774 *) target_bootstrap_suffix=no-bootstrap ;;
2775 esac
2776
2777 extrasub_target="$extrasub_target
2778 /^@if target-$module\$/d
2779 /^@endif target-$module\$/d
2780 /^@if target-$module-$target_bootstrap_suffix\$/d
2781 /^@endif target-$module-$target_bootstrap_suffix\$/d"
2782 done
2783
2784 # Do the final fixup along with target modules.
2785 extrasub_target="$extrasub_target
2786 /^@if /,/^@endif /d"
2787
2788 # Create the serialization dependencies. This uses a temporary file.
2789
2790 AC_ARG_ENABLE([serial-configure],
2791 [AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
2792 [force sequential configuration of
2793 sub-packages for the host, target or build
2794 machine, or all sub-packages])])
2795
2796 case ${enable_serial_configure} in
2797 yes)
2798 enable_serial_build_configure=yes
2799 enable_serial_host_configure=yes
2800 enable_serial_target_configure=yes
2801 ;;
2802 esac
2803
2804 # These force 'configure's to be done one at a time, to avoid problems
2805 # with contention over a shared config.cache.
2806 rm -f serdep.tmp
2807 echo '# serdep.tmp' > serdep.tmp
2808 olditem=
2809 test "x${enable_serial_build_configure}" = xyes &&
2810 for item in ${build_configdirs} ; do
2811 case ${olditem} in
2812 "") ;;
2813 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2814 esac
2815 olditem=${item}
2816 done
2817 olditem=
2818 test "x${enable_serial_host_configure}" = xyes &&
2819 for item in ${configdirs} ; do
2820 case ${olditem} in
2821 "") ;;
2822 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2823 esac
2824 olditem=${item}
2825 done
2826 olditem=
2827 test "x${enable_serial_target_configure}" = xyes &&
2828 for item in ${target_configdirs} ; do
2829 case ${olditem} in
2830 "") ;;
2831 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2832 esac
2833 olditem=${item}
2834 done
2835 serialization_dependencies=serdep.tmp
2836 AC_SUBST_FILE(serialization_dependencies)
2837
2838 # Base args. Strip norecursion, cache-file, srcdir, host, build,
2839 # target, nonopt, and variable assignments. These are the ones we
2840 # might not want to pass down to subconfigures. The exception being
2841 # --cache-file=/dev/null, which is used to turn off the use of cache
2842 # files altogether, and which should be passed on to subconfigures.
2843 # Also strip program-prefix, program-suffix, and program-transform-name,
2844 # so that we can pass down a consistent program-transform-name.
2845 baseargs=
2846 tbaseargs=
2847 keep_next=no
2848 skip_next=no
2849 eval "set -- $ac_configure_args"
2850 for ac_arg
2851 do
2852 if test X"$skip_next" = X"yes"; then
2853 skip_next=no
2854 continue
2855 fi
2856 if test X"$keep_next" = X"yes"; then
2857 case $ac_arg in
2858 *\'*)
2859 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2860 esac
2861 baseargs="$baseargs '$ac_arg'"
2862 tbaseargs="$tbaseargs '$ac_arg'"
2863 keep_next=no
2864 continue
2865 fi
2866
2867 # Handle separated arguments. Based on the logic generated by
2868 # autoconf 2.59.
2869 case $ac_arg in
2870 *=* | --config-cache | -C | -disable-* | --disable-* \
2871 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2872 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2873 | -with-* | --with-* | -without-* | --without-* | --x)
2874 separate_arg=no
2875 ;;
2876 -*)
2877 separate_arg=yes
2878 ;;
2879 *)
2880 separate_arg=no
2881 ;;
2882 esac
2883
2884 skip_targ=no
2885 case $ac_arg in
2886 changequote(,)
2887 --with-* | --without-*)
2888 libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
2889
2890 case $libopt in
2891 *[-_]include)
2892 lib=`echo "$libopt" | sed 's,[-_]include$,,'`
2893 ;;
2894 *[-_]lib)
2895 lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
2896 ;;
2897 *)
2898 lib=$libopt
2899 ;;
2900 esac
2901 changequote([,])
2902
2903 case $lib in
2904 mpc | mpfr | gmp | isl)
2905 # If we're processing --with-$lib, --with-$lib-include or
2906 # --with-$lib-lib, for one of the libs above, and target is
2907 # different from host, don't pass the current argument to any
2908 # target library's configure.
2909 if test x$is_cross_compiler = xyes; then
2910 skip_targ=yes
2911 fi
2912 ;;
2913 esac
2914 ;;
2915 esac
2916
2917 case "$ac_arg" in
2918 --cache-file=/dev/null | \
2919 -cache-file=/dev/null )
2920 # Handled here to avoid the test to skip args below.
2921 baseargs="$baseargs '$ac_arg'"
2922 tbaseargs="$tbaseargs '$ac_arg'"
2923 # Assert: $separate_arg should always be no.
2924 keep_next=$separate_arg
2925 ;;
2926 --no*)
2927 continue
2928 ;;
2929 --c* | \
2930 --sr* | \
2931 --ho* | \
2932 --bu* | \
2933 --t* | \
2934 --program-* | \
2935 -cache_file* | \
2936 -srcdir* | \
2937 -host* | \
2938 -build* | \
2939 -target* | \
2940 -program-prefix* | \
2941 -program-suffix* | \
2942 -program-transform-name* )
2943 skip_next=$separate_arg
2944 continue
2945 ;;
2946 -*)
2947 # An option. Add it.
2948 case $ac_arg in
2949 *\'*)
2950 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2951 esac
2952 baseargs="$baseargs '$ac_arg'"
2953 if test X"$skip_targ" = Xno; then
2954 tbaseargs="$tbaseargs '$ac_arg'"
2955 fi
2956 keep_next=$separate_arg
2957 ;;
2958 *)
2959 # Either a variable assignment, or a nonopt (triplet). Don't
2960 # pass it down; let the Makefile handle this.
2961 continue
2962 ;;
2963 esac
2964 done
2965 # Remove the initial space we just introduced and, as these will be
2966 # expanded by make, quote '$'.
2967 baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2968
2969 # Add in --program-transform-name, after --program-prefix and
2970 # --program-suffix have been applied to it. Autoconf has already
2971 # doubled dollar signs and backslashes in program_transform_name; we want
2972 # the backslashes un-doubled, and then the entire thing wrapped in single
2973 # quotes, because this will be expanded first by make and then by the shell.
2974 # Also, because we want to override the logic in subdir configure scripts to
2975 # choose program_transform_name, replace any s,x,x, with s,y,y,.
2976 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2977 ${program_transform_name}
2978 EOF_SED
2979 gcc_transform_name=`cat conftestsed.out`
2980 rm -f conftestsed.out
2981 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2982 tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
2983 if test "$silent" = yes; then
2984 baseargs="$baseargs --silent"
2985 tbaseargs="$tbaseargs --silent"
2986 fi
2987 baseargs="$baseargs --disable-option-checking"
2988 tbaseargs="$tbaseargs --disable-option-checking"
2989
2990 # Record and document user additions to sub configure arguments.
2991 AC_ARG_VAR([build_configargs],
2992 [additional configure arguments for build directories])
2993 AC_ARG_VAR([host_configargs],
2994 [additional configure arguments for host directories])
2995 AC_ARG_VAR([target_configargs],
2996 [additional configure arguments for target directories])
2997
2998 # For the build-side libraries, we just need to pretend we're native,
2999 # and not use the same cache file. Multilibs are neither needed nor
3000 # desired. We can't even use the same cache file for all build-side
3001 # libraries, as they're compiled differently; some with C, some with
3002 # C++ or with different feature-enabling options.
3003 build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}"
3004
3005 # For host modules, accept cache file option, or specification as blank.
3006 case "${cache_file}" in
3007 "") # empty
3008 cache_file_option="" ;;
3009 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
3010 cache_file_option="--cache-file=${cache_file}" ;;
3011 *) # relative path
3012 cache_file_option="--cache-file=../${cache_file}" ;;
3013 esac
3014
3015 # Host dirs don't like to share a cache file either, horribly enough.
3016 # This seems to be due to autoconf 2.5x stupidity.
3017 host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
3018
3019 target_configargs="$target_configargs ${tbaseargs}"
3020
3021 # Passing a --with-cross-host argument lets the target libraries know
3022 # whether they are being built with a cross-compiler or being built
3023 # native. However, it would be better to use other mechanisms to make the
3024 # sorts of decisions they want to make on this basis. Please consider
3025 # this option to be deprecated. FIXME.
3026 if test x${is_cross_compiler} = xyes ; then
3027 target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
3028 fi
3029
3030 # Special user-friendly check for native x86_64-linux build, if
3031 # multilib is not explicitly enabled.
3032 case "$target:$have_compiler:$host:$target:$enable_multilib" in
3033 x86_64-*linux*:yes:$build:$build:)
3034 # Make sure we have a development environment that handles 32-bit
3035 dev64=no
3036 echo "int main () { return 0; }" > conftest.c
3037 ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
3038 if test $? = 0 ; then
3039 if test -s conftest || test -s conftest.exe ; then
3040 dev64=yes
3041 fi
3042 fi
3043 rm -f conftest*
3044 if test x${dev64} != xyes ; then
3045 AC_MSG_ERROR([I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.])
3046 fi
3047 ;;
3048 esac
3049
3050 # Default to --enable-multilib.
3051 if test x${enable_multilib} = x ; then
3052 target_configargs="--enable-multilib ${target_configargs}"
3053 fi
3054
3055 # Pass --with-newlib if appropriate. Note that target_configdirs has
3056 # changed from the earlier setting of with_newlib.
3057 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
3058 target_configargs="--with-newlib ${target_configargs}"
3059 fi
3060
3061 # Different target subdirs use different values of certain variables
3062 # (notably CXX). Worse, multilibs use *lots* of different values.
3063 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
3064 # it doesn't automatically accept command-line overrides of them.
3065 # This means it's not safe for target subdirs to share a cache file,
3066 # which is disgusting, but there you have it. Hopefully this can be
3067 # fixed in future. It's still worthwhile to use a cache file for each
3068 # directory. I think.
3069
3070 # Pass the appropriate --build, --host, --target and --cache-file arguments.
3071 # We need to pass --target, as newer autoconf's requires consistency
3072 # for target_alias and gcc doesn't manage it consistently.
3073 target_configargs="--cache-file=./config.cache ${target_configargs}"
3074
3075 FLAGS_FOR_TARGET=
3076 case " $target_configdirs " in
3077 *" newlib "*)
3078 case " $target_configargs " in
3079 *" --with-newlib "*)
3080 case "$target" in
3081 *-cygwin*)
3082 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include'
3083 ;;
3084 esac
3085
3086 # If we're not building GCC, don't discard standard headers.
3087 if test -d ${srcdir}/gcc; then
3088 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
3089
3090 if test "${build}" != "${host}"; then
3091 # On Canadian crosses, CC_FOR_TARGET will have already been set
3092 # by `configure', so we won't have an opportunity to add -Bgcc/
3093 # to it. This is right: we don't want to search that directory
3094 # for binaries, but we want the header files in there, so add
3095 # them explicitly.
3096 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
3097
3098 # Someone might think of using the pre-installed headers on
3099 # Canadian crosses, in case the installed compiler is not fully
3100 # compatible with the compiler being built. In this case, it
3101 # would be better to flag an error than risking having
3102 # incompatible object files being constructed. We can't
3103 # guarantee that an error will be flagged, but let's hope the
3104 # compiler will do it, when presented with incompatible header
3105 # files.
3106 fi
3107 fi
3108
3109 case "${target}-${is_cross_compiler}" in
3110 i[[3456789]]86-*-linux*-no)
3111 # Here host == target, so we don't need to build gcc,
3112 # so we don't want to discard standard headers.
3113 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
3114 ;;
3115 *)
3116 # If we're building newlib, use its generic headers last, but search
3117 # for any libc-related directories first (so make it the last -B
3118 # switch).
3119 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
3120
3121 # If we're building libgloss, find the startup file, simulator library
3122 # and linker script.
3123 case " $target_configdirs " in
3124 *" libgloss "*)
3125 # Look for startup file, simulator library and maybe linker script.
3126 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
3127 # Look for libnosys.a in case the target needs it.
3128 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
3129 # Most targets have the linker script in the source directory.
3130 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
3131 ;;
3132 esac
3133 ;;
3134 esac
3135 ;;
3136 esac
3137 ;;
3138 esac
3139
3140 case "$target" in
3141 x86_64-*mingw* | *-w64-mingw*)
3142 # MinGW-w64 does not use newlib, nor does it use winsup. It may,
3143 # however, use a symlink named 'mingw' in ${prefix} .
3144 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
3145 ;;
3146 *-mingw*)
3147 # MinGW can't be handled as Cygwin above since it does not use newlib.
3148 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include'
3149 ;;
3150 esac
3151
3152 # Allow the user to override the flags for
3153 # our build compiler if desired.
3154 if test x"${build}" = x"${host}" ; then
3155 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
3156 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
3157 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
3158 fi
3159
3160 # On Canadian crosses, we'll be searching the right directories for
3161 # the previously-installed cross compiler, so don't bother to add
3162 # flags for directories within the install tree of the compiler
3163 # being built; programs in there won't even run.
3164 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
3165 # Search for pre-installed headers if nothing else fits.
3166 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
3167 fi
3168
3169 if test "x${use_gnu_ld}" = x &&
3170 echo " ${configdirs} " | grep " ld " > /dev/null ; then
3171 # Arrange for us to find uninstalled linker scripts.
3172 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
3173 fi
3174
3175 # Search for other target-specific linker scripts and such.
3176 case "${target}" in
3177 mep*)
3178 FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
3179 ;;
3180 esac
3181
3182 # Makefile fragments.
3183 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
3184 do
3185 eval fragval=\$$frag
3186 if test $fragval != /dev/null; then
3187 eval $frag=${srcdir}/$fragval
3188 fi
3189 done
3190 AC_SUBST_FILE(host_makefile_frag)
3191 AC_SUBST_FILE(target_makefile_frag)
3192 AC_SUBST_FILE(alphaieee_frag)
3193 AC_SUBST_FILE(ospace_frag)
3194
3195 # Miscellanea: directories, flags, etc.
3196 AC_SUBST(RPATH_ENVVAR)
3197 AC_SUBST(GCC_SHLIB_SUBDIR)
3198 AC_SUBST(tooldir)
3199 AC_SUBST(build_tooldir)
3200 AC_SUBST(CONFIGURE_GDB_TK)
3201 AC_SUBST(GDB_TK)
3202 AC_SUBST(INSTALL_GDB_TK)
3203
3204 # Build module lists & subconfigure args.
3205 AC_SUBST(build_configargs)
3206 AC_SUBST(build_configdirs)
3207
3208 # Host module lists & subconfigure args.
3209 AC_SUBST(host_configargs)
3210 AC_SUBST(configdirs)
3211 AC_SUBST(target_configdirs)
3212
3213 # Target module lists & subconfigure args.
3214 AC_SUBST(target_configargs)
3215
3216
3217 # Build tools.
3218 AC_SUBST(AR_FOR_BUILD)
3219 AC_SUBST(AS_FOR_BUILD)
3220 AC_SUBST(CC_FOR_BUILD)
3221 AC_SUBST(CFLAGS_FOR_BUILD)
3222 AC_SUBST(CXXFLAGS_FOR_BUILD)
3223 AC_SUBST(CXX_FOR_BUILD)
3224 AC_SUBST(DLLTOOL_FOR_BUILD)
3225 AC_SUBST(GFORTRAN_FOR_BUILD)
3226 AC_SUBST(GOC_FOR_BUILD)
3227 AC_SUBST(LDFLAGS_FOR_BUILD)
3228 AC_SUBST(LD_FOR_BUILD)
3229 AC_SUBST(NM_FOR_BUILD)
3230 AC_SUBST(RANLIB_FOR_BUILD)
3231 AC_SUBST(WINDMC_FOR_BUILD)
3232 AC_SUBST(WINDRES_FOR_BUILD)
3233
3234 # Generate default definitions for YACC, M4, LEX and other programs that run
3235 # on the build machine. These are used if the Makefile can't locate these
3236 # programs in objdir.
3237 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
3238
3239 AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
3240 case " $build_configdirs " in
3241 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
3242 esac
3243
3244 AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
3245 case " $build_configdirs " in
3246 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
3247 esac
3248
3249 AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
3250 case " $build_configdirs " in
3251 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
3252 esac
3253
3254 AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
3255 case " $build_configdirs " in
3256 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3257 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
3258 esac
3259
3260 AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
3261 case " $build_configdirs " in
3262 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3263 esac
3264
3265 AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
3266 case " $build_configdirs " in
3267 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
3268 *)
3269 changequote(,)
3270 # For an installed makeinfo, we require it to be from texinfo 4.7 or
3271 # higher, else we use the "missing" dummy.
3272 if ${MAKEINFO} --version \
3273 | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3274 :
3275 else
3276 MAKEINFO="$MISSING makeinfo"
3277 fi
3278 ;;
3279 changequote([,])
3280 esac
3281
3282 # FIXME: expect and dejagnu may become build tools?
3283
3284 AC_CHECK_PROGS(EXPECT, expect, expect)
3285 case " $configdirs " in
3286 *" expect "*)
3287 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3288 ;;
3289 esac
3290
3291 AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3292 case " $configdirs " in
3293 *" dejagnu "*)
3294 test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3295 ;;
3296 esac
3297
3298
3299 # Host tools.
3300 NCN_STRICT_CHECK_TOOLS(AR, ar)
3301 NCN_STRICT_CHECK_TOOLS(AS, as)
3302 NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3303 NCN_STRICT_CHECK_TOOLS(LD, ld)
3304 NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3305 NCN_STRICT_CHECK_TOOLS(NM, nm)
3306 NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
3307 NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
3308 NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3309 NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3310 NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3311 NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3312 NCN_STRICT_CHECK_TOOLS(READELF, readelf)
3313 AC_SUBST(CC)
3314 AC_SUBST(CXX)
3315 AC_SUBST(CFLAGS)
3316 AC_SUBST(CXXFLAGS)
3317
3318 # Target tools.
3319 AC_ARG_WITH([build-time-tools],
3320 [AS_HELP_STRING([--with-build-time-tools=PATH],
3321 [use given path to find target tools during the build])],
3322 [case x"$withval" in
3323 x/*) ;;
3324 *)
3325 with_build_time_tools=
3326 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3327 ;;
3328 esac],
3329 [with_build_time_tools=])
3330
3331 NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3332 NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
3333 NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3334 NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3335 NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
3336
3337 ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3338 ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3339 ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3340 ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3341 ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3342 ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3343 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJCOPY_FOR_TARGET, objcopy)
3344 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3345 ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
3346 ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf)
3347 ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3348 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3349 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3350
3351 RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3352
3353 GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3354 GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3355 GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3356 dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
3357 GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3358 [gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3359 c++)
3360 GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3361 [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3362 c++)
3363 GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3364 GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3365 GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3366 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3367 GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
3368 [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
3369 GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3370 GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3371 GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3372 GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJCOPY, [binutils/objcopy])
3373 GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3374 GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3375 GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])
3376 GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
3377 GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3378 GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3379
3380 AC_SUBST(FLAGS_FOR_TARGET)
3381 AC_SUBST(RAW_CXX_FOR_TARGET)
3382
3383 # Certain tools may need extra flags.
3384 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3385 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3386 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
3387
3388 # When building target libraries, except in a Canadian cross, we use
3389 # the same toolchain as the compiler we just built.
3390 COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3391 COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3392 COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3393 if test $host = $build; then
3394 case " $configdirs " in
3395 *" gcc "*)
3396 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3397 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3398 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3399 ;;
3400 esac
3401 fi
3402
3403 AC_SUBST(COMPILER_AS_FOR_TARGET)
3404 AC_SUBST(COMPILER_LD_FOR_TARGET)
3405 AC_SUBST(COMPILER_NM_FOR_TARGET)
3406
3407 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3408 AC_ARG_ENABLE(maintainer-mode,
3409 [AS_HELP_STRING([--enable-maintainer-mode],
3410 [enable make rules and dependencies not useful
3411 (and sometimes confusing) to the casual installer])],
3412 USE_MAINTAINER_MODE=$enableval,
3413 USE_MAINTAINER_MODE=no)
3414 AC_MSG_RESULT($USE_MAINTAINER_MODE)
3415 AC_SUBST(MAINTAINER_MODE_TRUE)
3416 AC_SUBST(MAINTAINER_MODE_FALSE)
3417 if test "$USE_MAINTAINER_MODE" = yes; then
3418 MAINTAINER_MODE_TRUE=
3419 MAINTAINER_MODE_FALSE='#'
3420 else
3421 MAINTAINER_MODE_TRUE='#'
3422 MAINTAINER_MODE_FALSE=
3423 fi
3424 MAINT=$MAINTAINER_MODE_TRUE
3425 AC_SUBST(MAINT)dnl
3426
3427 # ---------------------
3428 # GCC bootstrap support
3429 # ---------------------
3430
3431 # Stage specific cflags for build.
3432 stage1_cflags="-g"
3433 case $build in
3434 vax-*-*)
3435 case ${GCC} in
3436 yes) stage1_cflags="-g -Wa,-J" ;;
3437 *) stage1_cflags="-g -J" ;;
3438 esac ;;
3439 esac
3440
3441 AC_SUBST(stage1_cflags)
3442
3443 # Enable --enable-checking in stage1 of the compiler.
3444 AC_ARG_ENABLE(stage1-checking,
3445 [AS_HELP_STRING([[--enable-stage1-checking[=all]]],
3446 [choose additional checking for stage1 of the compiler])],
3447 [stage1_checking=--enable-checking=${enable_stage1_checking}],
3448 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3449 # For --disable-checking or implicit --enable-checking=release, avoid
3450 # setting --enable-checking=gc in the default stage1 checking for LTO
3451 # bootstraps. See PR62077.
3452 case $BUILD_CONFIG in
3453 *lto*)
3454 stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types;;
3455 *)
3456 stage1_checking=--enable-checking=yes,types;;
3457 esac
3458 if test "x$enable_checking" = x && \
3459 test -d ${srcdir}/gcc && \
3460 test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then
3461 stage1_checking=--enable-checking=yes,types,extra
3462 fi
3463 else
3464 stage1_checking=--enable-checking=$enable_checking,types
3465 fi])
3466 AC_SUBST(stage1_checking)
3467
3468 # Enable -Werror in bootstrap stage2 and later.
3469 AC_ARG_ENABLE(werror,
3470 [AS_HELP_STRING([--enable-werror],
3471 [enable -Werror in bootstrap stage2 and later])],
3472 [
3473 case ${enable_werror} in
3474 yes) stage2_werror_flag="--enable-werror-always" ;;
3475 *) stage2_werror_flag="" ;;
3476 esac
3477 ],
3478 [
3479 if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3480 case $BUILD_CONFIG in
3481 bootstrap-debug)
3482 stage2_werror_flag="--enable-werror-always" ;;
3483 "")
3484 stage2_werror_flag="--enable-werror-always" ;;
3485 esac
3486 fi
3487 ])
3488
3489 AC_SUBST(stage2_werror_flag)
3490
3491 # Specify what files to not compare during bootstrap.
3492
3493 compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3494 case "$target" in
3495 hppa*64*-*-hpux*) ;;
3496 hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;;
3497 powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;;
3498 esac
3499 AC_SUBST(compare_exclusions)
3500
3501 AC_CONFIG_FILES([Makefile],
3502 [sed "$extrasub_build" Makefile |
3503 sed "$extrasub_host" |
3504 sed "$extrasub_target" > mf$$
3505 mv -f mf$$ Makefile],
3506 [extrasub_build="$extrasub_build"
3507 extrasub_host="$extrasub_host"
3508 extrasub_target="$extrasub_target"])
3509 AC_OUTPUT