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