1#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
3#
4# This file is free software; you can redistribute it and/or modify it
5# under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful, but
10# WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12# General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18##############################################################################
19### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
20
21sinclude(config/acx.m4)
22
23AC_INIT(move-if-change)
24AC_PREREQ(2.13)
25AC_CANONICAL_SYSTEM
26AC_ARG_PROGRAM
27
28# Get 'install' or 'install-sh' and its variants.
29AC_PROG_INSTALL
30ACX_PROG_LN
31AC_PROG_LN_S
32
33### we might need to use some other shell than /bin/sh for running subshells
34### If we are on Windows, search for the shell.  This will permit people
35### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
36### without also having to set CONFIG_SHELL.  This code will work when
37### using bash, which sets OSTYPE.
38case "${OSTYPE}" in
39*win32*)
40  if test x${CONFIG_SHELL} = x ; then
41    if test ! -f /bin/sh ; then
42      if test x${SHELL} != x && test -f ${SHELL} ; then
43	CONFIG_SHELL=${SHELL}
44	export CONFIG_SHELL
45      else
46	for prog in sh sh.exe bash bash.exe; do
47	  IFS="${IFS=	}"; save_ifs="$IFS"; IFS="${IFS}:"
48	  for dir in $PATH; do
49	    test -z "$dir" && dir=.
50	    if test -f $dir/$prog; then
51	      CONFIG_SHELL=$dir/$prog
52	      export CONFIG_SHELL
53	      break
54	    fi
55	  done
56	  IFS="$save_ifs"
57	  test -n "${CONFIG_SHELL}" && break
58	done
59      fi
60    fi
61  fi
62  ;;
63esac
64
65config_shell=${CONFIG_SHELL-/bin/sh}
66
67progname=$0
68# if PWD already has a value, it is probably wrong.
69if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
70
71# Export original configure arguments for use by sub-configures.  These
72# will be expanded by make, so quote '$'.
73tmp="$progname $@"
74sed -e 's,\$,$$,g' <<EOF_SED > conftestsed.out
75$tmp
76EOF_SED
77TOPLEVEL_CONFIGURE_ARGUMENTS=`cat conftestsed.out`
78rm -f conftestsed.out
79AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
80
81moveifchange=${srcdir}/move-if-change
82
83srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
84
85# We pass INSTALL explicitly to sub-makes.  Make sure that it is not
86# a relative path.
87if test "$INSTALL" = "${srcdir}/install-sh -c"; then
88  INSTALL="${srcpwd}/install-sh -c"
89fi
90
91# Set srcdir to "." if that's what it is.
92# This is important for multilib support.
93pwd=`${PWDCMD-pwd}`
94if test "${pwd}" = "${srcpwd}" ; then
95  srcdir=.
96fi
97
98topsrcdir=$srcpwd
99
100extra_host_args=
101
102### To add a new directory to the tree, first choose whether it is a target
103### or a host dependent tool.  Then put it into the appropriate list
104### (library or tools, host or target), doing a dependency sort.
105
106# Subdirs will be configured in the order listed in build_configdirs, 
107# configdirs, or target_configdirs; see the serialization section below.
108
109# Dependency sorting is only needed when *configuration* must be done in 
110# a particular order.  In all cases a dependency should be specified in 
111# the Makefile, whether or not it's implicitly specified here.
112
113# Double entries in build_configdirs, configdirs, or target_configdirs may
114# cause circular dependencies and break everything horribly.
115
116# these library is used by various programs built for the build
117# environment
118#
119build_libs="build-libiberty"
120
121# these tools are built for the build environment
122build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
123
124# these libraries are used by various programs built for the host environment
125#
126host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber"
127
128# these tools are built for the host environment
129# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
130# know that we are building the simulator.
131# binutils, gas and ld appear in that order because it makes sense to run
132# "make check" in that particular order.
133host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
134
135# libgcj represents the runtime libraries only used by gcj.
136libgcj="target-libffi \
137	target-boehm-gc \
138	target-zlib \
139	target-qthreads \
140	target-libjava"
141
142# these libraries are built for the target environment, and are built after
143# the host libraries and the host tools (which may be a cross compiler)
144#
145target_libraries="target-libiberty \
146		target-libgloss \
147		target-newlib \
148		target-libstdc++-v3 \
149		target-libmudflap \
150		target-libssp \
151		target-libgcc-math \
152		target-libgfortran \
153		${libgcj} \
154		target-libobjc \
155		target-libada \
156		target-libgomp"
157
158# these tools are built using the target libraries, and are intended to
159# run only in the target environment
160#
161# note: any program that *uses* libraries that are in the "target_libraries"
162# list belongs in this list.  those programs are also very likely
163# candidates for the "native_only" list which follows
164#
165target_tools="target-examples target-groff target-gperf target-rda"
166
167################################################################################
168
169## All tools belong in one of the four categories, and are assigned above
170## We assign ${configdirs} this way to remove all embedded newlines.  This
171## is important because configure will choke if they ever get through.
172## ${configdirs} is directories we build using the host tools.
173## ${target_configdirs} is directories we build using the target tools.
174configdirs=`echo ${host_libs} ${host_tools}`
175target_configdirs=`echo ${target_libraries} ${target_tools}`
176build_configdirs=`echo ${build_libs} ${build_tools}`
177
178################################################################################
179
180srcname="gnu development package"
181
182# This gets set non-empty for some net releases of packages.
183appdirs=""
184
185# Define is_cross_compiler to save on calls to 'test'.
186is_cross_compiler=
187if test x"${host}" = x"${target}" ; then
188  is_cross_compiler=no
189else
190  is_cross_compiler=yes
191fi	
192
193# Find the build and target subdir names.
194GCC_TOPLEV_SUBDIRS
195
196# Skipdirs are removed silently.
197skipdirs=
198# Noconfigdirs are removed loudly.
199noconfigdirs=""
200
201use_gnu_ld=
202# Make sure we don't let GNU ld be added if we didn't want it.
203if test x$with_gnu_ld = xno ; then
204  use_gnu_ld=no
205  noconfigdirs="$noconfigdirs ld"
206fi
207
208use_gnu_as=
209# Make sure we don't let GNU as be added if we didn't want it.
210if test x$with_gnu_as = xno ; then
211  use_gnu_as=no
212  noconfigdirs="$noconfigdirs gas"
213fi
214
215# some tools are so dependent upon X11 that if we're not building with X, 
216# it's not even worth trying to configure, much less build, that tool.
217
218case ${with_x} in
219  yes | "") ;; # the default value for this tree is that X11 is available
220  no)
221    skipdirs="${skipdirs} tk itcl libgui"
222    # We won't be able to build gdbtk without X.
223    enable_gdbtk=no 
224    ;;
225  *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
226esac
227
228# Some tools are only suitable for building in a "native" situation.
229# Remove these if host!=target.  
230native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
231
232# Similarly, some are only suitable for cross toolchains.
233# Remove these if host=target.
234cross_only="target-libgloss target-newlib target-opcodes"
235
236case $is_cross_compiler in
237  no) skipdirs="${skipdirs} ${cross_only}" ;;
238  yes) skipdirs="${skipdirs} ${native_only}" ;;
239esac
240
241# If both --with-headers and --with-libs are specified, default to
242# --without-newlib.
243if test x"${with_headers}" != x && test x"${with_headers}" != xno \
244   && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
245  if test x"${with_newlib}" = x ; then
246    with_newlib=no
247  fi
248fi
249
250# Recognize --with-newlib/--without-newlib.
251case ${with_newlib} in
252  no) skipdirs="${skipdirs} target-newlib" ;;
253  yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
254esac
255
256# Configure extra directories which are host specific
257
258case "${host}" in
259  *-cygwin*)
260    configdirs="$configdirs libtermcap" ;;
261esac
262
263# A target can indicate whether a language isn't supported for some reason.
264# Only spaces may be used in this macro; not newlines or tabs.
265unsupported_languages=
266
267# Remove more programs from consideration, based on the host or 
268# target this usually means that a port of the program doesn't
269# exist yet.
270
271case "${host}" in
272  hppa*64*-*-*)
273    noconfigdirs="$noconfigdirs byacc"
274    ;;
275  i[[3456789]]86-*-vsta)
276    noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
277    ;;
278  i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
279    noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
280    ;;
281  i[[3456789]]86-*-mingw32*)
282    # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
283    noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
284    ;;
285  i[[3456789]]86-*-beos*)
286    noconfigdirs="$noconfigdirs tk itcl libgui gdb"
287    ;;
288  i[[3456789]]86-*-haiku*)
289    noconfigdirs="$noconfigdirs tk itcl libgui gdb"
290    ;;
291  *-*-cygwin*)
292    noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
293    ;;
294  *-*-netbsd*)
295    noconfigdirs="$noconfigdirs rcs"
296    ;;
297  ppc*-*-pe)
298    noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
299    ;;
300  powerpc-*-beos*)
301    noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
302    ;;
303esac
304
305
306AC_ARG_ENABLE(libada,
307[  --enable-libada        Builds libada directory],
308ENABLE_LIBADA=$enableval,
309ENABLE_LIBADA=yes)
310if test "${ENABLE_LIBADA}" != "yes" ; then
311  noconfigdirs="$noconfigdirs gnattools"
312fi
313
314AC_ARG_ENABLE(libssp,
315[  --enable-libssp        Builds libssp directory],
316ENABLE_LIBSSP=$enableval,
317ENABLE_LIBSSP=yes)
318
319# Set the default so we build libgcc-math for ix86 and x86_64
320AC_ARG_ENABLE(libgcc-math,
321[  --enable-libgcc-math   Builds libgcc-math directory],,
322[
323case "${target}" in
324  i?86-* | x86_64-* )
325    enable_libgcc_math=yes ;;
326  *)
327    enable_libgcc_math=no ;;
328esac
329])
330
331# Save it here so that, even in case of --enable-libgcj, if the Java
332# front-end isn't enabled, we still get libgcj disabled.
333libgcj_saved=$libgcj
334case $enable_libgcj in
335yes)
336  # If we reset it here, it won't get added to noconfigdirs in the
337  # target-specific build rules, so it will be forcibly enabled
338  # (unless the Java language itself isn't enabled).
339  libgcj=
340  ;;
341no)
342  # Make sure we get it printed in the list of not supported target libs.
343  noconfigdirs="$noconfigdirs ${libgcj}"
344  ;;
345esac
346
347
348# Disable libmudflap on some systems.
349if test x$enable_libmudflap = x ; then
350    case "${target}" in
351    *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
352        # Enable libmudflap by default in GNU and friends.
353	;;
354    *-*-freebsd*)
355        # Enable libmudflap by default in FreeBSD.
356	;;
357    *)
358        # Disable it by default everywhere else.
359	noconfigdirs="$noconfigdirs target-libmudflap"
360	;;
361    esac
362fi
363
364# Disable libgomp on non POSIX hosted systems.
365if test x$enable_libgomp = x ; then
366    # Enable libgomp by default on hosted POSIX systems.
367    case "${target}" in
368    *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
369	;;
370    *-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
371	;;
372    *-*-solaris2* | *-*-sysv4* | *-*-irix* | *-*-osf* | *-*-hpux*)
373	;;
374    *-*-darwin* | *-*-aix*)
375	;;
376    *)
377	noconfigdirs="$noconfigdirs target-libgomp"
378	;;
379    esac
380fi
381
382
383case "${target}" in
384  *-*-chorusos)
385    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
386    ;;
387  powerpc-*-darwin*)
388    noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
389    noconfigdirs="$noconfigdirs sim target-rda"
390    ;;
391  *-*-darwin*)
392    noconfigdirs="$noconfigdirs ld gas gdb gprof"
393    noconfigdirs="$noconfigdirs sim target-rda"
394    noconfigdirs="$noconfigdirs ${libgcj}"
395    ;;
396  *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
397    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
398    ;;
399  *-*-freebsd*)
400    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
401    if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
402	&& test -f /usr/local/include/gmp.h; then
403      with_gmp=/usr/local
404    fi
405
406    # Skip some stuff that's unsupported on some FreeBSD configurations.
407    case "${target}" in
408      i*86-*-*) ;;
409      alpha*-*-*) ;;
410      *)
411	noconfigdirs="$noconfigdirs ${libgcj}"
412	;;
413    esac
414    ;;
415  *-*-kaos*)
416    # Remove unsupported stuff on all kaOS configurations.
417    skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
418    skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
419    skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
420    noconfigdirs="$noconfigdirs target-libgloss"
421    ;;
422  *-*-netbsd*)
423    # Skip some stuff on all NetBSD configurations.
424    noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
425
426    # Skip some stuff that's unsupported on some NetBSD configurations.
427    case "${target}" in
428      i*86-*-netbsdelf*) ;;
429      arm*-*-netbsdelf*) ;;
430      *)
431	noconfigdirs="$noconfigdirs ${libgcj}"
432	;;
433    esac
434    ;;
435  *-*-netware*)
436    noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
437    ;;
438  *-*-rtems*)
439    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
440    ;;
441    # The tpf target doesn't support gdb yet.
442  *-*-tpf*)
443    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
444    ;;
445  *-*-uclinux*)
446    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
447    ;;
448  *-*-vxworks*)
449    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
450    ;;
451  m32c-*-*)
452    noconfigdirs="$noconfigdirs target-libstdc++-v3"
453    ;;
454  alpha*-dec-osf*)
455    # ld works, but does not support shared libraries.
456    # newlib is not 64 bit ready.  I'm not sure about fileutils.
457    # gas doesn't generate exception information.
458    noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
459    ;;
460  alpha*-*-*vms*)
461    noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
462    ;;
463  alpha*-*-linux*)
464    # newlib is not 64 bit ready
465    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
466    ;;
467  alpha*-*-*)
468    # newlib is not 64 bit ready
469    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
470    ;;
471  am33_2.0-*-linux*)
472    noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
473    ;;
474  sh-*-linux*)
475    noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
476    ;;    
477  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
478    noconfigdirs="$noconfigdirs ${libgcj}"
479    noconfigdirs="$noconfigdirs target-examples"
480    noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
481    noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
482    noconfigdirs="$noconfigdirs expect dejagnu"
483    # the C++ libraries don't build on top of CE's C libraries
484    noconfigdirs="$noconfigdirs target-libstdc++-v3"
485    noconfigdirs="$noconfigdirs target-newlib"
486    case "${host}" in
487      *-*-cygwin*) ;; # keep gdb and readline
488      *) noconfigdirs="$noconfigdirs gdb readline"
489	 ;;
490    esac
491    ;;
492  arc-*-*)
493    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
494    ;;
495  arm-semi-aof )
496    ;;
497  arm-*-coff | strongarm-*-coff | xscale-*-coff)
498    noconfigdirs="$noconfigdirs ${libgcj}"
499    ;;
500  arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
501    noconfigdirs="$noconfigdirs target-libffi target-qthreads"
502    ;;
503  arm*-*-linux-gnueabi)
504    noconfigdirs="$noconfigdirs target-libffi target-qthreads"
505    noconfigdirs="$noconfigdirs target-libjava target-libobjc"
506    ;;
507  arm*-*-symbianelf*)
508    noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
509    ;;
510  arm-*-pe*)
511    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
512    ;;
513  thumb-*-coff)
514    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
515    ;;
516  thumb-*-elf)
517    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
518    ;;
519  thumb-*-pe)
520    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
521    ;;
522  arm-*-riscix*)
523    noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
524    ;;
525  avr-*-*)
526    noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
527    ;;
528  bfin-*-*)
529    noconfigdirs="$noconfigdirs target-libgloss gdb"
530    if test x${is_cross_compiler} != xno ; then
531      target_configdirs="${target_configdirs} target-bsp target-cygmon"
532    fi
533    ;;
534  c4x-*-* | tic4x-*-*)
535    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
536    ;;
537  c54x*-*-* | tic54x-*-*)
538    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
539    ;;
540  cris-*-* | crisv32-*-*)
541    unsupported_languages="$unsupported_languages java"
542    case "${target}" in
543      *-*-aout)
544	unsupported_languages="$unsupported_languages fortran"
545	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
546      *-*-elf)
547	unsupported_languages="$unsupported_languages fortran"
548	noconfigdirs="$noconfigdirs target-boehm-gc";;
549      *-*-linux*)
550	noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
551      *)
552	unsupported_languages="$unsupported_languages fortran"
553	noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
554    esac
555    ;;
556  crx-*-*)
557    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
558    ;;
559  d10v-*-*)
560    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
561    ;;
562  d30v-*-*)
563    noconfigdirs="$noconfigdirs ${libgcj} gdb"
564    ;;
565  fr30-*-elf*)
566    noconfigdirs="$noconfigdirs ${libgcj} gdb"
567    ;;
568  frv-*-*)
569    noconfigdirs="$noconfigdirs ${libgcj}"
570    ;;
571  h8300*-*-*)
572    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
573    ;;
574  h8500-*-*)
575    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
576    ;;
577  hppa1.1-*-osf* | hppa1.1-*-bsd* )
578    ;;
579  hppa*64*-*-linux* | parisc*64*-*-linux*)
580    # In this case, it's because the hppa64-linux target is for
581    # the kernel only at this point and has no libc, and thus no
582    # headers, crt*.o, etc., all of which are needed by these.
583    noconfigdirs="$noconfigdirs target-zlib"
584    ;;
585  parisc*-*-linux* | hppa*-*-linux*)
586    ;;
587  hppa*-*-*elf* | \
588  hppa*-*-lites* | \
589  hppa*-*-openbsd* | \
590  hppa*64*-*-*)
591    noconfigdirs="$noconfigdirs ${libgcj}"
592    ;;
593  hppa*-*-*)
594    # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
595    # build on HP-UX 10.20.
596    noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
597    ;;
598  i960-*-*)
599    noconfigdirs="$noconfigdirs ${libgcj} gdb"
600    ;;
601  ia64*-*-elf*)
602    # No gdb support yet.
603    noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
604    ;;
605  ia64*-**-hpux*)
606    # No gdb or ld support yet.
607    noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
608    ;;
609  i370-*-opened*)
610    ;;
611  i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
612    noconfigdirs="$noconfigdirs ${libgcj}"
613    ;;
614  i[[3456789]]86-*-linux*)
615    # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
616    # not build java stuff by default.
617    case "${target}" in
618      *-*-*libc1*)
619	noconfigdirs="$noconfigdirs ${libgcj}";;
620    esac
621
622    # This section makes it possible to build newlib natively on linux.
623    # If we are using a cross compiler then don't configure newlib.
624    if test x${is_cross_compiler} != xno ; then
625      noconfigdirs="$noconfigdirs target-newlib"
626    fi
627    noconfigdirs="$noconfigdirs target-libgloss"
628    # If we are not using a cross compiler, do configure newlib.
629    # Note however, that newlib will only be configured in this situation
630    # if the --with-newlib option has been given, because otherwise
631    # 'target-newlib' will appear in skipdirs.
632    ;;
633  i[[3456789]]86-*-mingw32*)
634    target_configdirs="$target_configdirs target-mingw"
635    noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
636
637    # Can't build gdb for mingw32 if not native.
638    case "${host}" in
639      i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
640      *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl gnuserv"
641         ;;
642    esac
643    ;;    
644  *-*-cygwin*)
645    target_configdirs="$target_configdirs target-libtermcap target-winsup"
646    noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
647    # always build newlib if winsup directory is present.
648    if test -d "$srcdir/winsup"; then
649      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
650    elif test -d "$srcdir/newlib"; then
651      echo "Warning: winsup is missing so newlib can't be built."
652    fi
653
654    # Can't build gdb for Cygwin if not native.
655    case "${host}" in
656      *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
657      *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl libgui gnuserv"
658         ;;
659    esac
660    ;;    
661  i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
662  i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
663    ;;
664  i[[3456789]]86-*-pe)
665    noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
666    ;;
667  i[[3456789]]86-*-sco3.2v5*)
668    # The linker does not yet know about weak symbols in COFF,
669    # and is not configured to handle mixed ELF and COFF.
670    noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
671    ;;
672  i[[3456789]]86-*-sco*)
673    noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
674    ;;
675  i[[3456789]]86-*-solaris2*)
676    noconfigdirs="$noconfigdirs target-libgloss"
677    ;;
678  i[[3456789]]86-*-sysv4*)
679    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
680    ;;
681  i[[3456789]]86-*-beos*)
682    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
683    ;;
684  i[[3456789]]86-*-haiku*)
685    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
686    ;;
687  i[[3456789]]86-*-rdos*)
688    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
689    ;;
690  m32r-*-*)
691    noconfigdirs="$noconfigdirs ${libgcj}"
692    ;;
693  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
694    noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
695    ;;
696  m68k-*-elf*)
697    noconfigdirs="$noconfigdirs ${libgcj}"
698    ;;
699  m68k-*-coff*)
700    noconfigdirs="$noconfigdirs ${libgcj}"
701    ;;
702  mcore-*-pe*)
703  # The EPOC C++ environment does not support exceptions or rtti,
704  # and so building libstdc++-v3 tends not to always work.
705    noconfigdirs="$noconfigdirs target-libstdc++-v3"
706    ;;
707  mmix-*-*)
708    noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
709    unsupported_languages="$unsupported_languages fortran java"
710    ;;
711  mn10200-*-*)
712    noconfigdirs="$noconfigdirs ${libgcj}"
713    ;;
714  mn10300-*-*)
715    noconfigdirs="$noconfigdirs ${libgcj}"
716    ;;
717  mt-*-*)
718    noconfigdirs="$noconfigdirs sim"
719    ;;
720  powerpc-*-aix*)
721    # copied from rs6000-*-* entry
722    noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
723    ;;
724  powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
725    target_configdirs="$target_configdirs target-winsup"
726    noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
727    # always build newlib.
728    skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
729    ;;
730    # This is temporary until we can link against shared libraries
731  powerpcle-*-solaris*)
732    noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
733    ;;
734  powerpc-*-beos*)
735    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
736    ;;
737  powerpc-*-eabi)
738    noconfigdirs="$noconfigdirs ${libgcj}"
739    ;;
740  powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
741    ;;
742  rs6000-*-lynxos*)
743    noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
744    ;;
745  rs6000-*-aix*)
746    noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
747    ;;
748  rs6000-*-*)
749    noconfigdirs="$noconfigdirs gprof ${libgcj}"
750    ;;
751  m68k-apollo-*)
752    noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
753    ;;
754  mips*-*-irix5*)
755    noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
756    ;;
757  mips*-*-irix6*)
758    # Linking libjava exceeds command-line length limits on at least
759    # IRIX 6.2, but not on IRIX 6.5.
760    # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
761    # <oldham@codesourcery.com>
762    noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
763    ;;
764  mips*-dec-bsd*)
765    noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
766    ;;
767  mips*-*-bsd*)
768    noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
769    ;;
770  mipstx39-*-*)
771    noconfigdirs="$noconfigdirs gprof ${libgcj}"   # same as generic mips
772    ;;
773  mips64*-*-linux*)
774    noconfigdirs="$noconfigdirs target-newlib ${libgcj}"
775    ;;
776  mips*-*-linux*)
777    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
778    ;;
779  mips*-*-*)
780    noconfigdirs="$noconfigdirs gprof ${libgcj}"
781    ;;
782  romp-*-*)
783    noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
784    ;;
785  sh-*-* | sh64-*-*)
786    case "${host}" in
787      i[[3456789]]86-*-vsta) ;; # don't add gprof back in
788      i[[3456789]]86-*-go32*) ;; # don't add gprof back in
789      i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
790      *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
791    esac
792    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
793    ;;
794  sparc-*-elf*)
795    noconfigdirs="$noconfigdirs ${libgcj}"
796    ;;
797  sparc64-*-elf*)
798    noconfigdirs="$noconfigdirs ${libgcj}"
799    ;;
800  sparclite-*-*)
801    noconfigdirs="$noconfigdirs ${libgcj}"
802    ;;
803  sparc-*-sunos4*)
804    noconfigdirs="$noconfigdirs ${libgcj}"
805    if test x${is_cross_compiler} != xno ; then
806           noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
807    else
808           use_gnu_ld=no
809    fi
810    ;;
811  sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
812    noconfigdirs="$noconfigdirs ${libgcj}"
813    ;;
814  sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
815    ;;
816  v810-*-*)
817    noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
818    ;;
819  v850-*-*)
820    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
821    ;;
822  v850e-*-*)
823    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
824    ;;
825  v850ea-*-*)
826    noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
827    ;;
828  vax-*-vms)
829    noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
830    ;;
831  vax-*-*)
832    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
833    ;;
834  xtensa-*-*)
835    noconfigdirs="$noconfigdirs ${libgcj}"
836    ;;
837  ip2k-*-*)
838    noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
839    ;;
840  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
841    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
842    ;;
843  *-*-lynxos*)
844    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
845    ;; 
846  *-*-*)
847    noconfigdirs="$noconfigdirs ${libgcj}"
848    ;;
849esac
850
851# If we aren't building newlib, then don't build libgloss, since libgloss
852# depends upon some newlib header files.
853case "${noconfigdirs}" in
854  *target-libgloss*) ;;
855  *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
856esac
857
858# Work in distributions that contain no compiler tools, like Autoconf.
859tentative_cc=""
860host_makefile_frag=/dev/null
861if test -d ${srcdir}/config ; then
862case "${host}" in
863  m68k-hp-hpux*)
864    # Avoid "too much defining" errors from HPUX compiler.
865    tentative_cc="cc -Wp,-H256000"
866    # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
867    # If it's HP/UX ar, this should be harmless.
868    RANLIB="ar ts"
869    ;;
870  m68k-apollo-sysv*)
871    tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
872    ;;
873  m68k-apollo-bsd*)
874    #None of the Apollo compilers can compile gas or binutils.  The preprocessor
875    # chokes on bfd, the compiler won't let you assign integers to enums, and
876    # other problems.  Defining CC to gcc is a questionable way to say "don't use
877    # the apollo compiler" (the preferred version of GCC could be called cc,
878    # or whatever), but I'm not sure leaving CC as cc is any better...
879    #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
880    # Used to have BISON=yacc.
881    tentative_cc=gcc
882    ;;
883  m88k-dg-dgux*)
884    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
885    ;;
886  m88k-harris-cxux*)
887    # Under CX/UX, we want to tell the compiler to use ANSI mode.
888    tentative_cc="cc -Xa"
889    host_makefile_frag="config/mh-cxux"
890    ;;
891  m88k-motorola-sysv*)
892    ;;
893  mips*-dec-ultrix*)
894    tentative_cc="cc -Wf,-XNg1000"
895    host_makefile_frag="config/mh-decstation"
896    ;;
897  mips*-nec-sysv4*)
898    # The C compiler on NEC MIPS SVR4 needs bigger tables.
899    tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
900    host_makefile_frag="config/mh-necv4"
901    ;;
902  mips*-sgi-irix4*)
903    # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
904    # environment.  Also bump switch table size so that cp-parse will
905    # compile.  Bump string length limit so linker builds.
906    tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
907    ;;
908  mips*-*-sysv4*)
909    host_makefile_frag="config/mh-sysv4"
910    ;;
911  mips*-*-sysv*)
912    # This is for a MIPS running RISC/os 4.52C.
913
914    # This is needed for GDB, but needs to be in the top-level make because
915    # if a library is compiled with the bsd headers and gets linked with the
916    # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
917    # a different size).
918    # ptrace(2) apparently has problems in the BSD environment.  No workaround is
919    # known except to select the sysv environment.  Could we use /proc instead?
920    # These "sysv environments" and "bsd environments" often end up being a pain.
921    #
922    # This is not part of CFLAGS because perhaps not all C compilers have this
923    # option.
924    tentative_cc="cc -systype sysv"
925    ;;
926  i370-ibm-opened*)
927    tentative_cc="c89"
928    ;;
929  i[[3456789]]86-*-sysv5*)
930    host_makefile_frag="config/mh-sysv5"
931    ;;
932  i[[3456789]]86-*-dgux*)
933    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
934    host_makefile_frag="config/mh-dgux386"
935    ;;
936  i[[3456789]]86-ncr-sysv4.3*)
937    # The MetaWare compiler will generate a copyright message unless you
938    # turn it off by adding the -Hnocopyr flag.
939    tentative_cc="cc -Hnocopyr"
940    ;;
941  i[[3456789]]86-ncr-sysv4*)
942    # for an NCR 3000 (i486/SVR4) system.
943    # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
944    # This compiler not only emits obnoxious copyright messages every time
945    # you run it, but it chokes and dies on a whole bunch of GNU source
946    # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
947    tentative_cc="/usr/ccs/ATT/cc"
948    host_makefile_frag="config/mh-ncr3000"
949    ;;
950  i[[3456789]]86-*-sco3.2v5*)
951    ;;
952  i[[3456789]]86-*-sco*)
953    # The native C compiler botches some simple uses of const.  Unfortunately,
954    # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
955    tentative_cc="cc -Dconst="
956    host_makefile_frag="config/mh-sco"
957    ;;
958  i[[3456789]]86-*-udk*)
959    host_makefile_frag="config/mh-sysv5"
960    ;;
961  i[[3456789]]86-*-solaris2*)
962    host_makefile_frag="config/mh-sysv4"
963    ;;
964  i[[3456789]]86-*-msdosdjgpp*)
965    host_makefile_frag="config/mh-djgpp"
966    ;;
967  *-cygwin*)
968    host_makefile_frag="config/mh-cygwin"
969    ;;
970  *-mingw32*)
971    ;;
972  *-interix*)
973    host_makefile_frag="config/mh-interix"
974    ;;
975  vax-*-ultrix2*)
976    # The old BSD pcc isn't up to compiling parts of gdb so use gcc
977    tentative_cc=gcc
978    ;;
979  *-*-solaris2*)
980    host_makefile_frag="config/mh-solaris"
981    ;;
982  m68k-sun-sunos*)
983    # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
984    # without overflowing the jump tables (-J says to use a 32 bit table)
985    tentative_cc="cc -J"
986    ;;
987  *-hp-hpux*)
988    tentative_cc="cc -Wp,-H256000"
989    ;;
990  *-*-hiux*)
991    tentative_cc="cc -Wp,-H256000"
992    ;;
993  rs6000-*-lynxos*)
994    # /bin/cc is less than useful for our purposes.  Always use GCC
995    tentative_cc="/usr/cygnus/progressive/bin/gcc"
996    host_makefile_frag="config/mh-lynxrs6k"
997    ;;
998  powerpc-*-darwin*)
999    host_makefile_frag="config/mh-ppc-darwin"
1000    ;;
1001  powerpc-*-aix*)
1002    host_makefile_frag="config/mh-ppc-aix"
1003    ;;
1004  rs6000-*-aix*)
1005    host_makefile_frag="config/mh-ppc-aix"
1006    ;;
1007  *-*-lynxos*)
1008    # /bin/cc is less than useful for our purposes.  Always use GCC
1009    tentative_cc="/bin/gcc"
1010    ;;
1011  *-*-sysv4*)
1012    host_makefile_frag="config/mh-sysv4"
1013    ;;
1014  # This is placed last to prevent interfering with the cases above.
1015  i[[3456789]]86-*-*)
1016    # Build the stage2 and stage3 compilers with -fomit-frame-pointer.
1017    host_makefile_frag="config/mh-x86omitfp"
1018    ;;
1019esac
1020fi
1021
1022# If we aren't going to be using gcc, see if we can extract a definition
1023# of CC from the fragment.
1024# Actually, use the 'pre-extracted' version above.
1025if test -z "${CC}" && test "${build}" = "${host}" ; then
1026  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
1027  found=
1028  for dir in $PATH; do
1029    test -z "$dir" && dir=.
1030    if test -f $dir/gcc; then
1031      found=yes
1032      break
1033    fi
1034  done
1035  IFS="$save_ifs"
1036  if test -z "${found}" && test -n "${tentative_cc}" ; then
1037    CC=$tentative_cc
1038  fi
1039fi
1040
1041if test "${build}" != "${host}" ; then
1042  # If we are doing a Canadian Cross, in which the host and build systems
1043  # are not the same, we set reasonable default values for the tools.
1044
1045  CC=${CC-${host_alias}-gcc}
1046  CFLAGS=${CFLAGS-"-g -O2"}
1047  CXX=${CXX-${host_alias}-c++}
1048  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1049  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1050
1051else
1052  # Set reasonable default values for some tools even if not Canadian.
1053  # Of course, these are different reasonable default values, originally
1054  # specified directly in the Makefile.
1055  # We don't export, so that autoconf can do its job.
1056  # Note that all these settings are above the fragment inclusion point
1057  # in Makefile.in, so can still be overridden by fragments.
1058  # This is all going to change when we autoconfiscate...
1059
1060  CC_FOR_BUILD="\$(CC)"
1061  AC_PROG_CC
1062
1063  # We must set the default linker to the linker used by gcc for the correct
1064  # operation of libtool.  If LD is not defined and we are using gcc, try to
1065  # set the LD default to the ld used by gcc.
1066  if test -z "$LD"; then
1067    if test "$GCC" = yes; then
1068      case $build in
1069      *-*-mingw*)
1070	gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1071      *)
1072	gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1073      esac
1074      case $gcc_prog_ld in
1075      # Accept absolute paths.
1076      [[\\/]* | [A-Za-z]:[\\/]*)]
1077        LD="$gcc_prog_ld" ;;
1078      esac
1079    fi
1080  fi
1081
1082  CXX=${CXX-"c++"}
1083  CFLAGS=${CFLAGS-"-g"}
1084  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1085fi
1086
1087ACX_PROG_GNAT
1088ACX_PROG_CMP_IGNORE_INITIAL
1089
1090# Check for GMP and MPFR
1091gmplibs=
1092gmpinc=
1093have_gmp=yes
1094# Specify a location for mpfr
1095# check for this first so it ends up on the link line before gmp.
1096AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    Specify source directory for MPFR library])
1097
1098if test "x$with_mpfr_dir" != x; then
1099  gmpinc="-I$with_mpfr_dir"
1100  gmplibs="$with_mpfr_dir/libmpfr.a"
1101else
1102  gmplibs="-lmpfr"
1103fi
1104
1105AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        Specify directory for installed MPFR library])
1106
1107if test "x$with_mpfr" != x; then
1108  gmplibs="-L$with_mpfr/lib $gmplibs"
1109  gmpinc="-I$with_mpfr/include"
1110fi
1111
1112# Specify a location for gmp
1113AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     Specify source directory for GMP library])
1114
1115if test "x$with_gmp_dir" != x; then
1116  gmpinc="$gmpinc -I$with_gmp_dir"
1117  if test -f "$with_gmp_dir/.libs/libgmp.a"; then
1118    gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
1119  elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
1120    gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
1121  fi
1122  # One of the later tests will catch the error if neither library is present.
1123else
1124  gmplibs="$gmplibs -lgmp"
1125fi
1126
1127AC_ARG_WITH(gmp, [  --with-gmp=PATH         Specify directory for installed GMP library])
1128
1129if test "x$with_gmp" != x; then
1130  gmplibs="-L$with_gmp/lib $gmplibs"
1131  gmpinc="-I$with_gmp/include $gmpinc"
1132fi
1133
1134saved_CFLAGS="$CFLAGS"
1135CFLAGS="$CFLAGS $gmpinc"
1136# Check GMP actually works
1137AC_MSG_CHECKING([for correct version of gmp.h])
1138AC_TRY_COMPILE([#include "gmp.h"],[
1139#if __GNU_MP_VERSION < 3
1140choke me
1141#endif
1142], [AC_MSG_RESULT([yes])],
1143  [AC_MSG_RESULT([no]); have_gmp=no])
1144
1145if test x"$have_gmp" = xyes; then
1146  AC_MSG_CHECKING([for MPFR])
1147
1148  saved_LIBS="$LIBS"
1149  LIBS="$LIBS $gmplibs"
1150  AC_TRY_LINK([#include <gmp.h>
1151#include <mpfr.h>], [mpfr_t n; mpfr_init(n);],
1152    [AC_MSG_RESULT([yes])],  [AC_MSG_RESULT([no]); have_gmp=no])
1153  LIBS="$saved_LIBS"
1154  CFLAGS="$saved_CFLAGS"
1155fi
1156
1157# Flags needed for both GMP and/or MPFR
1158AC_SUBST(gmplibs)
1159AC_SUBST(gmpinc)
1160
1161# By default, C is the only stage 1 language.
1162stage1_languages=c
1163AC_SUBST(stage1_languages)
1164
1165# Figure out what language subdirectories are present.
1166# Look if the user specified --enable-languages="..."; if not, use
1167# the environment variable $LANGUAGES if defined. $LANGUAGES might
1168# go away some day.
1169# NB:  embedded tabs in this IF block -- do not untabify
1170if test -d ${srcdir}/gcc; then
1171  if test x"${enable_languages+set}" != xset; then
1172    if test x"${LANGUAGES+set}" = xset; then
1173      enable_languages="${LANGUAGES}"
1174        echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1175    else
1176      enable_languages=all
1177    fi
1178  else
1179    if test x"${enable_languages}" = x ||
1180       test x"${enable_languages}" = xyes;
1181       then
1182      echo configure.in: --enable-languages needs at least one language argument 1>&2
1183      exit 1
1184    fi
1185  fi
1186  enable_languages=`echo "${enable_languages}" | sed -e 's/[[ 	,]][[ 	,]]*/,/g' -e 's/,$//'`
1187
1188  # 'f95' is the old name for the 'fortran' language. We issue a warning
1189  # and make the substitution.
1190  case ,${enable_languages}, in
1191    *,f95,*)
1192      echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1193      enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1194      ;;
1195  esac
1196
1197  # First scan to see if an enabled language requires some other language.
1198  # We assume that a given config-lang.in will list all the language
1199  # front ends it requires, even if some are required indirectly.
1200  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1201    case ${lang_frag} in
1202      ..) ;;
1203      # The odd quoting in the next line works around
1204      # an apparent bug in bash 1.12 on linux.
1205      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1206      *)
1207        # From the config-lang.in, get $language, $lang_requires
1208        language=
1209        lang_requires=
1210        . ${lang_frag}
1211        for other in ${lang_requires} ; do
1212          case ,${enable_languages}, in
1213	    *,$other,*) ;;
1214	    *,all,*) ;;
1215	    *,$language,*)
1216	      echo " \`$other' language required by \`$language'; enabling" 1>&2
1217	      enable_languages="${enable_languages},${other}"
1218	      ;;
1219	  esac
1220        done
1221        ;;
1222    esac
1223  done
1224
1225  new_enable_languages=c
1226  missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1227  potential_languages=c
1228
1229  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1230    case ${lang_frag} in
1231      ..) ;;
1232      # The odd quoting in the next line works around
1233      # an apparent bug in bash 1.12 on linux.
1234      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1235      *)
1236        # From the config-lang.in, get $language, $target_libs, 
1237        # $lang_dirs, $boot_language, and $build_by_default
1238        language=
1239        target_libs=
1240        lang_dirs=
1241        boot_language=
1242        build_by_default=
1243        need_gmp=
1244        . ${lang_frag}
1245        potential_languages="${potential_languages},${language}"
1246        # This is quite sensitive to the ordering of the case statement arms.
1247        case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in
1248          *::*:*)
1249            echo "${lang_frag} doesn't set \$language." 1>&2
1250            exit 1
1251            ;;
1252          *:ada:no:*)
1253            # Ada was requested with no preexisting GNAT.  Disable unconditionally.
1254            add_this_lang=no
1255            ;;
1256          *,${language},*:*:*:*)
1257            # Language was explicitly selected; include it.
1258            add_this_lang=yes
1259            ;;
1260          *,all,*:*:*:no)
1261            # 'all' was selected, but this is not a default language
1262            # so do not include it.
1263            add_this_lang=no
1264            ;;
1265          *,all,*:*:*:*)
1266            # 'all' was selected and this is a default language; include it.
1267            add_this_lang=yes
1268            ;;
1269          *)
1270            add_this_lang=no
1271            ;;
1272        esac
1273
1274        # Disable languages that need GMP if it isn't available.
1275        case ,${enable_languages},:${have_gmp}:${need_gmp} in
1276          *,${language},*:no:yes)
1277            # Specifically requested language; tell them.
1278            AC_MSG_ERROR([GMP with MPFR support is required to build $language])
1279            ;;
1280          *:no:yes)
1281            # Silently disable.
1282            add_this_lang=no
1283            ;;
1284        esac
1285
1286	# Disable a language that is unsupported by the target.
1287	case " $unsupported_languages " in
1288	  *" $language "*)
1289	    add_this_lang=no
1290	    ;;
1291	esac
1292
1293	case $add_this_lang in
1294	  no)
1295            # Remove language-dependent dirs.
1296            eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1297	    ;;
1298          *)
1299	    new_enable_languages="$new_enable_languages,$language"
1300	    missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1301	    case ${boot_language} in
1302	      yes)
1303		# Add to (comma-separated) list of stage 1 languages.
1304		stage1_languages="${stage1_languages},${language}"
1305		;;
1306	    esac
1307	    ;;
1308        esac
1309        ;;
1310    esac
1311  done
1312
1313  missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1314  if test "x$missing_languages" != x; then
1315    AC_MSG_ERROR([
1316The following requested languages could not be built: ${missing_languages}
1317Recognised languages are: ${potential_languages}])
1318  fi
1319
1320  if test "x$new_enable_languages" != "x$enable_languages"; then
1321    echo The following languages will be built: ${new_enable_languages}
1322  fi
1323  enable_languages="$new_enable_languages"
1324  ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `
1325fi
1326
1327# Handle --disable-<component> generically.
1328for dir in $configdirs $build_configdirs $target_configdirs ; do
1329  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
1330  if eval test x\${enable_${dirname}} "=" xno ; then
1331    noconfigdirs="$noconfigdirs $dir"
1332  fi
1333done
1334
1335# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1336# $build_configdirs and $target_configdirs.
1337# If we have the source for $noconfigdirs entries, add them to $notsupp.
1338
1339notsupp=""
1340for dir in . $skipdirs $noconfigdirs ; do
1341  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
1342  if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1343    configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1344    if test -r $srcdir/$dirname/configure ; then
1345      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1346	true
1347      else
1348	notsupp="$notsupp $dir"
1349      fi
1350    fi
1351  fi
1352  if test $dir != .  && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1353    build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1354    if test -r $srcdir/$dirname/configure ; then
1355      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1356	true
1357      else
1358	notsupp="$notsupp $dir"
1359      fi
1360    fi
1361  fi
1362  if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1363    target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1364    if test -r $srcdir/$dirname/configure ; then
1365      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1366	true
1367      else
1368	notsupp="$notsupp $dir"
1369      fi
1370    fi
1371  fi
1372done
1373
1374# Sometimes the tools are distributed with libiberty but with no other
1375# libraries.  In that case, we don't want to build target-libiberty.
1376if test -n "${target_configdirs}" ; then
1377  others=
1378  for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1379    if test "$i" != "libiberty" ; then
1380      if test -r $srcdir/$i/configure ; then
1381	others=yes;
1382	break;
1383      fi
1384    fi
1385  done
1386  if test -z "${others}" ; then
1387    target_configdirs=
1388  fi
1389fi
1390
1391# Quietly strip out all directories which aren't configurable in this tree.
1392# This relies on all configurable subdirectories being autoconfiscated, which
1393# is now the case.
1394build_configdirs_all="$build_configdirs"
1395build_configdirs=
1396for i in ${build_configdirs_all} ; do
1397  j=`echo $i | sed -e s/build-//g` 
1398  if test -f ${srcdir}/$j/configure ; then
1399    build_configdirs="${build_configdirs} $i"
1400  fi
1401done
1402
1403configdirs_all="$configdirs"
1404configdirs=
1405for i in ${configdirs_all} ; do
1406  if test -f ${srcdir}/$i/configure ; then
1407    configdirs="${configdirs} $i"
1408  fi
1409done
1410
1411target_configdirs_all="$target_configdirs"
1412target_configdirs=
1413for i in ${target_configdirs_all} ; do
1414  j=`echo $i | sed -e s/target-//g` 
1415  if test -f ${srcdir}/$j/configure ; then
1416    target_configdirs="${target_configdirs} $i"
1417  fi
1418done
1419
1420# Produce a warning message for the subdirs we can't configure.
1421# This isn't especially interesting in the Cygnus tree, but in the individual
1422# FSF releases, it's important to let people know when their machine isn't
1423# supported by the one or two programs in a package.
1424
1425if test -n "${notsupp}" && test -z "${norecursion}" ; then
1426  # If $appdirs is non-empty, at least one of those directories must still
1427  # be configured, or we error out.  (E.g., if the gas release supports a
1428  # specified target in some subdirs but not the gas subdir, we shouldn't
1429  # pretend that all is well.)
1430  if test -n "$appdirs" ; then
1431    for dir in $appdirs ; do
1432      if test -r $dir/Makefile.in ; then
1433	if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1434	  appdirs=""
1435	  break
1436	fi
1437	if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1438	  appdirs=""
1439	  break
1440	fi
1441      fi
1442    done
1443    if test -n "$appdirs" ; then
1444      echo "*** This configuration is not supported by this package." 1>&2
1445      exit 1
1446    fi
1447  fi
1448  # Okay, some application will build, or we don't care to check.  Still
1449  # notify of subdirs not getting built.
1450  echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1451  echo "    ${notsupp}" 1>&2
1452  echo "    (Any other directories should still work fine.)" 1>&2
1453fi
1454
1455case "$host" in
1456  *msdosdjgpp*)
1457    enable_gdbtk=no ;;
1458esac
1459
1460copy_dirs=
1461
1462AC_ARG_WITH([build-sysroot], 
1463  [  --with-build-sysroot=sysroot
1464                          use sysroot as the system root during the build],
1465  [if test x"$withval" != x ; then
1466     SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1467   fi],
1468  [SYSROOT_CFLAGS_FOR_TARGET=])
1469AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1470
1471# Handle --with-headers=XXX.  If the value is not "yes", the contents of
1472# the named directory are copied to $(tooldir)/sys-include.
1473if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1474  if test x${is_cross_compiler} = xno ; then
1475    echo 1>&2 '***' --with-headers is only supported when cross compiling
1476    exit 1
1477  fi
1478  if test x"${with_headers}" != xyes ; then
1479    case "${exec_prefixoption}" in
1480    "") x=${prefix} ;;
1481    *) x=${exec_prefix} ;;
1482    esac
1483    copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
1484  fi
1485fi
1486
1487# Handle --with-libs=XXX.  If the value is not "yes", the contents of
1488# the name directories are copied to $(tooldir)/lib.  Multiple directories
1489# are permitted.
1490if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1491  if test x${is_cross_compiler} = xno ; then
1492    echo 1>&2 '***' --with-libs is only supported when cross compiling
1493    exit 1
1494  fi
1495  if test x"${with_libs}" != xyes ; then
1496    # Copy the libraries in reverse order, so that files in the first named
1497    # library override files in subsequent libraries.
1498    case "${exec_prefixoption}" in
1499    "") x=${prefix} ;;
1500    *) x=${exec_prefix} ;;
1501    esac
1502    for l in ${with_libs}; do
1503      copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
1504    done
1505  fi
1506fi
1507
1508# Set with_gnu_as and with_gnu_ld as appropriate.
1509#
1510# This is done by determining whether or not the appropriate directory
1511# is available, and by checking whether or not specific configurations
1512# have requested that this magic not happen.
1513# 
1514# The command line options always override the explicit settings in 
1515# configure.in, and the settings in configure.in override this magic.
1516#
1517# If the default for a toolchain is to use GNU as and ld, and you don't 
1518# want to do that, then you should use the --without-gnu-as and
1519# --without-gnu-ld options for the configure script.
1520
1521if test x${use_gnu_as} = x &&
1522   echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1523  with_gnu_as=yes
1524  extra_host_args="$extra_host_args --with-gnu-as"
1525fi
1526
1527if test x${use_gnu_ld} = x &&
1528   echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1529  with_gnu_ld=yes
1530  extra_host_args="$extra_host_args --with-gnu-ld"
1531fi
1532
1533# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1534# can detect this case.
1535
1536if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1537  with_newlib=yes
1538  extra_host_args="$extra_host_args --with-newlib"
1539fi
1540
1541# Handle ${copy_dirs}
1542set fnord ${copy_dirs}
1543shift
1544while test $# != 0 ; do
1545  if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1546    :
1547  else
1548    echo Copying $1 to $2
1549
1550    # Use the install script to create the directory and all required
1551    # parent directories.
1552    if test -d $2 ; then
1553      :
1554    else
1555      echo >config.temp
1556      ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1557    fi
1558
1559    # Copy the directory, assuming we have tar.
1560    # FIXME: Should we use B in the second tar?  Not all systems support it.
1561    (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1562
1563    # It is the responsibility of the user to correctly adjust all
1564    # symlinks.  If somebody can figure out how to handle them correctly
1565    # here, feel free to add the code.
1566
1567    echo $1 > $2/COPIED
1568  fi
1569  shift; shift
1570done
1571
1572# Determine a target-dependent exec_prefix that the installed
1573# gcc will search in.  Keep this list sorted by triplet, with
1574# the *-*-osname triplets last.
1575md_exec_prefix=
1576case "${target}" in
1577  alpha*-*-*vms*)
1578    md_exec_prefix=/gnu/lib/gcc-lib
1579    ;;
1580  i[34567]86-pc-msdosdjgpp*)
1581    md_exec_prefix=/dev/env/DJDIR/bin
1582    ;;
1583  i[34567]86-*-sco3.2v5*)
1584    if test $with_gnu_as = yes; then
1585      md_exec_prefix=/usr/gnu/bin
1586    else
1587      md_exec_prefix=/usr/ccs/bin/elf
1588    fi
1589    ;;
1590
1591  mn10300-*-* | \
1592  powerpc-*-chorusos* | \
1593  powerpc*-*-eabi* | \
1594  powerpc*-*-sysv* | \
1595  powerpc*-*-kaos* | \
1596  s390x-ibm-tpf*)
1597    md_exec_prefix=/usr/ccs/bin
1598    ;;
1599  sparc64-*-elf*)
1600    ;;
1601  v850*-*-*)
1602    md_exec_prefix=/usr/ccs/bin
1603    ;;
1604  xtensa-*-elf*)
1605    ;;
1606
1607  *-*-beos* | \
1608  *-*-elf* | \
1609  *-*-hpux* | \
1610  *-*-netware* | \
1611  *-*-nto-qnx* | \
1612  *-*-rtems* | \
1613  *-*-solaris2* | \
1614  *-*-sysv[45]* | \
1615  *-*-vxworks* | \
1616  *-wrs-windiss)
1617    md_exec_prefix=/usr/ccs/bin
1618    ;;
1619esac
1620
1621extra_arflags_for_target=
1622extra_nmflags_for_target=
1623extra_ranlibflags_for_target=
1624target_makefile_frag=/dev/null
1625case "${target}" in
1626  *-*-netware*)
1627    target_makefile_frag="config/mt-netware"
1628    ;;
1629  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1630    target_makefile_frag="config/mt-gnu"
1631    ;;
1632  *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1633    # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
1634    # commands to handle both 32-bit and 64-bit objects.  These flags are
1635    # harmless if we're using GNU nm or ar.
1636    extra_arflags_for_target=" -X32_64"
1637    extra_nmflags_for_target=" -B -X32_64"
1638    ;;
1639  *-*-darwin*)
1640    # ranlib from Darwin requires the -c flag to look at common symbols.
1641    extra_ranlibflags_for_target=" -c"
1642    ;;
1643  mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1644    target_makefile_frag="config/mt-wince"
1645    ;;
1646esac
1647
1648alphaieee_frag=/dev/null
1649case $target in
1650  alpha*-*-*)
1651    # This just makes sure to use the -mieee option to build target libs.
1652    # This should probably be set individually by each library.
1653    alphaieee_frag="config/mt-alphaieee"
1654    ;;
1655esac
1656
1657# If --enable-target-optspace always use -Os instead of -O2 to build
1658# the target libraries, similarly if it is not specified, use -Os
1659# on selected platforms.
1660ospace_frag=/dev/null
1661case "${enable_target_optspace}:${target}" in
1662  yes:*)
1663    ospace_frag="config/mt-ospace"
1664    ;;
1665  :d30v-*)
1666    ospace_frag="config/mt-d30v"
1667    ;;
1668  :m32r-* | :d10v-* | :fr30-*)
1669    ospace_frag="config/mt-ospace"
1670    ;;
1671  no:* | :*)
1672    ;;
1673  *)
1674    echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1675    ;;
1676esac
1677
1678# Default to using --with-stabs for certain targets.
1679if test x${with_stabs} = x ; then
1680  case "${target}" in
1681  mips*-*-irix[[56]]*)
1682    ;;
1683  mips*-*-* | alpha*-*-osf*)
1684    with_stabs=yes;
1685    extra_host_args="${extra_host_args} --with-stabs"
1686    ;;
1687  esac
1688fi
1689
1690# hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1691# them automatically.
1692case "${host}" in
1693  hppa*64*-*-hpux11*)	
1694    extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1695    ;;
1696esac
1697
1698# Some systems (e.g., one of the i386-aix systems the gas testers are
1699# using) don't handle "\$" correctly, so don't use it here.
1700tooldir='${exec_prefix}'/${target_alias}
1701build_tooldir=${tooldir}
1702
1703# Create a .gdbinit file which runs the one in srcdir
1704# and tells GDB to look there for source files.
1705
1706if test -r ${srcdir}/.gdbinit ; then
1707  case ${srcdir} in
1708    .) ;;
1709    *) cat > ./.gdbinit <<EOF
1710# ${NO_EDIT}
1711dir ${srcdir}
1712dir .
1713source ${srcdir}/.gdbinit
1714EOF
1715    ;;
1716  esac
1717fi
1718
1719# Make sure that the compiler is able to generate an executable.  If it
1720# can't, we are probably in trouble.  We don't care whether we can run the
1721# executable--we might be using a cross compiler--we only care whether it
1722# can be created.  At this point the main configure script has set CC.
1723we_are_ok=no
1724echo "int main () { return 0; }" > conftest.c
1725${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1726if test $? = 0 ; then
1727  if test -s conftest || test -s conftest.exe ; then
1728    we_are_ok=yes
1729  fi
1730fi 
1731case $we_are_ok in
1732  no)
1733    echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1734    echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1735    rm -f conftest*
1736    exit 1
1737    ;;
1738esac
1739rm -f conftest*
1740
1741# The Solaris /usr/ucb/cc compiler does not appear to work.
1742case "${host}" in
1743  sparc-sun-solaris2*)
1744      CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1745      if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1746          could_use=
1747          test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1748          if test -d /opt/cygnus/bin ; then
1749              if test "$could_use" = "" ; then
1750                  could_use="/opt/cygnus/bin"
1751              else
1752                  could_use="$could_use or /opt/cygnus/bin"
1753              fi
1754          fi
1755        if test "$could_use" = "" ; then
1756            echo "Warning: compilation may fail because you're using"
1757            echo "/usr/ucb/cc.  You should change your PATH or CC "
1758            echo "variable and rerun configure."
1759        else
1760            echo "Warning: compilation may fail because you're using"
1761            echo "/usr/ucb/cc, when you should use the C compiler from"
1762            echo "$could_use.  You should change your"
1763            echo "PATH or CC variable and rerun configure."
1764        fi
1765      fi
1766  ;;
1767esac
1768
1769case "${host}" in
1770  *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1771  *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
1772  *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1773esac
1774
1775# Record target_configdirs and the configure arguments for target and
1776# build configuration in Makefile.
1777target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1778build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
1779
1780# Determine whether gdb needs tk/tcl or not.
1781# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1782# and in that case we want gdb to be built without tk.  Ugh!
1783# In fact I believe gdb is the *only* package directly dependent on tk,
1784# so we should be able to put the 'maybe's in unconditionally and
1785# leave out the maybe dependencies when enable_gdbtk is false.  I'm not
1786# 100% sure that that's safe though.
1787
1788gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
1789case "$enable_gdbtk" in
1790  no)
1791    GDB_TK="" ;;
1792  yes)
1793    GDB_TK="${gdb_tk}" ;;
1794  *)
1795    # Only add the dependency on gdbtk when GDBtk is part of the gdb
1796    # distro.  Eventually someone will fix this and move Insight, nee
1797    # gdbtk to a separate directory.
1798    if test -d ${srcdir}/gdb/gdbtk ; then
1799      GDB_TK="${gdb_tk}"
1800    else
1801      GDB_TK=""
1802    fi
1803    ;;
1804esac
1805CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
1806INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
1807
1808# Strip out unwanted targets.
1809
1810# While at that, we remove Makefiles if we were started for recursive
1811# configuration, so that the top-level Makefile reconfigures them,
1812# like we used to do when configure itself was recursive.
1813
1814# Loop over modules.  $extrasub must be used with care, limiting as
1815# much as possible the usage of range addresses.  That's because autoconf
1816# splits the sed script to overcome limits in the number of commands,
1817# and relying on carefully-timed sed passes may turn out to be very hard
1818# to maintain later.  In this particular case, you just have to be careful
1819# not to nest @if/@endif pairs, because configure will not warn you at all.
1820
1821AC_ARG_ENABLE([bootstrap],
1822[  --enable-bootstrap           Enable bootstrapping [yes if native build]],,
1823enable_bootstrap=default)
1824
1825# Issue errors and warnings for invalid/strange bootstrap combinations.
1826case "$configdirs" in
1827  *gcc*) have_compiler=yes ;;
1828  *) have_compiler=no ;;
1829esac
1830
1831case "$have_compiler:$host:$target:$enable_bootstrap" in
1832  *:*:*:no) ;;
1833
1834  # Default behavior.  Enable bootstrap if we have a compiler
1835  # and we are in a native configuration.
1836  yes:$build:$build:default)
1837    enable_bootstrap=yes ;;
1838
1839  *:*:*:default)
1840    enable_bootstrap=no ;;
1841
1842  # We have a compiler and we are in a native configuration, bootstrap is ok
1843  yes:$build:$build:yes)
1844    ;;
1845
1846  # Other configurations, but we have a compiler.  Assume the user knows
1847  # what he's doing.
1848  yes:*:*:yes)
1849    AC_MSG_WARN([trying to bootstrap a cross compiler])
1850    ;;
1851
1852  # No compiler: if they passed --enable-bootstrap explicitly, fail
1853  no:*:*:yes)
1854    AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1855
1856  # Fail if wrong command line
1857  *)
1858    AC_MSG_ERROR([invalid option for --enable-bootstrap])
1859    ;;
1860esac
1861
1862# Adjust the toplevel makefile according to whether bootstrap was selected.
1863case "$enable_bootstrap" in
1864  yes)
1865    bootstrap_suffix=bootstrap ;;
1866  no)
1867    bootstrap_suffix=no-bootstrap ;;
1868esac
1869
1870for module in ${build_configdirs} ; do
1871  if test -z "${no_recursion}" \
1872     && test -f ${build_subdir}/${module}/Makefile; then
1873    echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1874    rm -f ${build_subdir}/${module}/Makefile
1875  fi
1876  extrasub="$extrasub
1877/^@if build-$module\$/d
1878/^@endif build-$module\$/d
1879/^@if build-$module-$bootstrap_suffix\$/d
1880/^@endif build-$module-$bootstrap_suffix\$/d"
1881done
1882for module in ${configdirs} ; do
1883  if test -z "${no_recursion}"; then
1884    for file in stage*-${module}/Makefile ${module}/Makefile; do
1885      if test -f ${file}; then
1886	echo 1>&2 "*** removing ${file} to force reconfigure"
1887	rm -f ${file}
1888      fi
1889    done
1890  fi
1891  extrasub="$extrasub
1892/^@if $module\$/d
1893/^@endif $module\$/d
1894/^@if $module-$bootstrap_suffix\$/d
1895/^@endif $module-$bootstrap_suffix\$/d"
1896done
1897for module in ${target_configdirs} ; do
1898  if test -z "${no_recursion}" \
1899     && test -f ${target_subdir}/${module}/Makefile; then
1900    echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1901    rm -f ${target_subdir}/${module}/Makefile
1902  fi
1903  extrasub="$extrasub
1904/^@if target-$module\$/d
1905/^@endif target-$module\$/d
1906/^@if target-$module-$bootstrap_suffix\$/d
1907/^@endif target-$module-$bootstrap_suffix\$/d"
1908done
1909
1910extrasub="$extrasub
1911/^@if /,/^@endif /d"
1912
1913# Create the serialization dependencies.  This uses a temporary file.
1914
1915AC_ARG_ENABLE([serial-configure],
1916[  --enable-serial-[{host,target,build}-]configure
1917                          Force sequential configuration of
1918                          sub-packages for the host, target or build
1919			  machine, or all sub-packages])
1920
1921case ${enable_serial_configure} in
1922  yes)
1923    enable_serial_build_configure=yes
1924    enable_serial_host_configure=yes
1925    enable_serial_target_configure=yes
1926    ;;
1927esac
1928
1929# These force 'configure's to be done one at a time, to avoid problems
1930# with contention over a shared config.cache.
1931rm -f serdep.tmp
1932echo '# serdep.tmp' > serdep.tmp
1933olditem=
1934test "x${enable_serial_build_configure}" = xyes &&
1935for item in ${build_configdirs} ; do
1936  case ${olditem} in
1937    "") ;;
1938    *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
1939  esac
1940  olditem=${item}
1941done
1942olditem=
1943test "x${enable_serial_host_configure}" = xyes &&
1944for item in ${configdirs} ; do
1945  case ${olditem} in
1946    "") ;;
1947    *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
1948  esac
1949  olditem=${item}
1950done
1951olditem=
1952test "x${enable_serial_target_configure}" = xyes &&
1953for item in ${target_configdirs} ; do
1954  case ${olditem} in
1955    "") ;;
1956    *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
1957  esac
1958  olditem=${item}
1959done
1960serialization_dependencies=serdep.tmp
1961AC_SUBST_FILE(serialization_dependencies)
1962
1963# Base args.  Strip norecursion, cache-file, srcdir, host, build,
1964# target and nonopt.  These are the ones we might not want to pass
1965# down to subconfigures.  Also strip program-prefix, program-suffix,
1966# and program-transform-name, so that we can pass down a consistent
1967# program-transform-name.  If autoconf has put single quotes around
1968# any of these arguments (because they contain shell metacharacters)
1969# then this will fail; in practice this only happens for
1970# --program-transform-name, so be sure to override --program-transform-name
1971# at the end of the argument list.
1972# These will be expanded by make, so quote '$'.
1973cat <<\EOF_SED > conftestsed
1974s/ --no[[^ ]]*/ /g
1975s/ --c[[a-z-]]*[[= ]][[^ ]]*//g
1976s/ --sr[[a-z-]]*[[= ]][[^ ]]*//g
1977s/ --ho[[a-z-]]*[[= ]][[^ ]]*//g
1978s/ --bu[[a-z-]]*[[= ]][[^ ]]*//g
1979s/ --t[[a-z-]]*[[= ]][[^ ]]*//g
1980s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]*//g
1981s/ -cache-file[[= ]][[^ ]]*//g
1982s/ -srcdir[[= ]][[^ ]]*//g
1983s/ -host[[= ]][[^ ]]*//g
1984s/ -build[[= ]][[^ ]]*//g
1985s/ -target[[= ]][[^ ]]*//g
1986s/ -program-prefix[[= ]][[^ ]]*//g
1987s/ -program-suffix[[= ]][[^ ]]*//g
1988s/ -program-transform-name[[= ]][[^ ]]*//g
1989s/ [[^' -][^ ]*] / /
1990s/^ *//;s/ *$//
1991s,\$,$$,g
1992EOF_SED
1993sed -f conftestsed <<EOF_SED > conftestsed.out
1994 ${ac_configure_args} 
1995EOF_SED
1996baseargs=`cat conftestsed.out`
1997rm -f conftestsed conftestsed.out
1998
1999# Add in --program-transform-name, after --program-prefix and
2000# --program-suffix have been applied to it.  Autoconf has already
2001# doubled dollar signs and backslashes in program_transform_name; we want
2002# the backslashes un-doubled, and then the entire thing wrapped in single
2003# quotes, because this will be expanded first by make and then by the shell. 
2004# Also, because we want to override the logic in subdir configure scripts to
2005# choose program_transform_name, replace any s,x,x, with s,y,y,.
2006sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2007${program_transform_name}
2008EOF_SED
2009gcc_transform_name=`cat conftestsed.out`
2010rm -f conftestsed.out
2011baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2012
2013# For the build-side libraries, we just need to pretend we're native,
2014# and not use the same cache file.  Multilibs are neither needed nor
2015# desired.
2016build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} --target=${target_alias} ${baseargs}"
2017
2018# For host modules, accept cache file option, or specification as blank.
2019case "${cache_file}" in
2020"") # empty
2021  cache_file_option="" ;;
2022/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2023  cache_file_option="--cache-file=${cache_file}" ;;
2024*) # relative path
2025  cache_file_option="--cache-file=../${cache_file}" ;;
2026esac
2027
2028# Host dirs don't like to share a cache file either, horribly enough.
2029# This seems to be due to autoconf 2.5x stupidity.
2030host_configargs="--cache-file=./config.cache --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
2031
2032target_configargs=${baseargs}
2033
2034# Passing a --with-cross-host argument lets the target libraries know
2035# whether they are being built with a cross-compiler or being built
2036# native.  However, it would be better to use other mechanisms to make the
2037# sorts of decisions they want to make on this basis.  Please consider
2038# this option to be deprecated.  FIXME.
2039if test x${is_cross_compiler} = xyes ; then
2040  target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
2041fi
2042
2043# Default to --enable-multilib.
2044if test x${enable_multilib} = x ; then
2045  target_configargs="--enable-multilib ${target_configargs}"
2046fi
2047
2048# Pass --with-newlib if appropriate.  Note that target_configdirs has
2049# changed from the earlier setting of with_newlib.
2050if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2051  target_configargs="--with-newlib ${target_configargs}"
2052fi
2053
2054# Different target subdirs use different values of certain variables
2055# (notably CXX).  Worse, multilibs use *lots* of different values.
2056# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2057# it doesn't automatically accept command-line overrides of them.
2058# This means it's not safe for target subdirs to share a cache file,
2059# which is disgusting, but there you have it.  Hopefully this can be
2060# fixed in future.  It's still worthwhile to use a cache file for each
2061# directory.  I think.
2062
2063# Pass the appropriate --build, --host, --target and --cache-file arguments.
2064# We need to pass --target, as newer autoconf's requires consistency
2065# for target_alias and gcc doesn't manage it consistently.
2066target_configargs="--cache-file=./config.cache --build=${build_alias} --host=${target_alias} --target=${target_alias} ${target_configargs}"
2067
2068FLAGS_FOR_TARGET=
2069case " $target_configdirs " in
2070 *" newlib "*)
2071  case " $target_configargs " in
2072  *" --with-newlib "*)
2073   case "$target" in
2074   *-cygwin*)
2075     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include' ;;
2076   esac
2077
2078   # If we're not building GCC, don't discard standard headers.
2079   if test -d ${srcdir}/gcc; then
2080     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2081
2082     if test "${build}" != "${host}"; then
2083       # On Canadian crosses, CC_FOR_TARGET will have already been set
2084       # by `configure', so we won't have an opportunity to add -Bgcc/
2085       # to it.  This is right: we don't want to search that directory
2086       # for binaries, but we want the header files in there, so add
2087       # them explicitly.
2088       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
2089
2090       # Someone might think of using the pre-installed headers on
2091       # Canadian crosses, in case the installed compiler is not fully
2092       # compatible with the compiler being built.  In this case, it
2093       # would be better to flag an error than risking having
2094       # incompatible object files being constructed.  We can't
2095       # guarantee that an error will be flagged, but let's hope the
2096       # compiler will do it, when presented with incompatible header
2097       # files.
2098     fi
2099   fi
2100
2101   case "${target}-${is_cross_compiler}" in
2102   i[[3456789]]86-*-linux*-no)
2103      # Here host == target, so we don't need to build gcc,
2104      # so we don't want to discard standard headers.
2105      FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2106      ;;
2107   *)
2108      # If we're building newlib, use its generic headers last, but search
2109      # for any libc-related directories first (so make it the last -B
2110      # switch).
2111      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2112      ;;
2113   esac
2114   ;;
2115  esac
2116  ;;
2117esac
2118
2119# Allow the user to override the flags for
2120# our build compiler if desired.
2121CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2122
2123# On Canadian crosses, we'll be searching the right directories for
2124# the previously-installed cross compiler, so don't bother to add
2125# flags for directories within the install tree of the compiler
2126# being built; programs in there won't even run.
2127if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2128  # Search for pre-installed headers if nothing else fits.
2129  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2130fi
2131
2132if test "x${use_gnu_ld}" = x &&
2133   echo " ${configdirs} " | grep " ld " > /dev/null ; then
2134  # Arrange for us to find uninstalled linker scripts.
2135  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
2136fi
2137
2138# Makefile fragments.
2139for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2140do
2141  eval fragval=\$$frag
2142  if test $fragval != /dev/null; then
2143    eval $frag=${srcdir}/$fragval
2144  fi
2145done
2146AC_SUBST_FILE(host_makefile_frag)
2147AC_SUBST_FILE(target_makefile_frag)
2148AC_SUBST_FILE(alphaieee_frag)
2149AC_SUBST_FILE(ospace_frag)
2150
2151# Miscellanea: directories, flags, etc.
2152AC_SUBST(RPATH_ENVVAR)
2153AC_SUBST(tooldir)
2154AC_SUBST(build_tooldir)
2155AC_SUBST(CONFIGURE_GDB_TK)
2156AC_SUBST(GDB_TK)
2157AC_SUBST(INSTALL_GDB_TK)
2158
2159# Build module lists & subconfigure args.
2160AC_SUBST(build_configargs)
2161AC_SUBST(build_configdirs)
2162
2163# Host module lists & subconfigure args.
2164AC_SUBST(host_configargs)
2165AC_SUBST(configdirs)
2166
2167# Target module lists & subconfigure args.
2168AC_SUBST(target_configargs)
2169
2170
2171# Build tools.
2172AC_SUBST(CC_FOR_BUILD)
2173AC_SUBST(config_shell)
2174
2175# Generate default definitions for YACC, M4, LEX and other programs that run
2176# on the build machine.  These are used if the Makefile can't locate these
2177# programs in objdir.
2178MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2179
2180AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2181case " $build_configdirs " in
2182  *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2183  *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2184esac
2185
2186AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2187case " $build_configdirs " in
2188  *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2189esac
2190
2191AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2192case " $build_configdirs " in
2193  *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2194esac
2195
2196AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2197case " $build_configdirs " in
2198  *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2199  *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2200esac
2201
2202AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2203case " $build_configdirs " in
2204  *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2205esac
2206
2207AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2208case " $build_configdirs " in
2209  *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2210  *)
2211changequote(,)
2212    # For an installed makeinfo, we require it to be from texinfo 4.4 or
2213    # higher, else we use the "missing" dummy.
2214    if ${MAKEINFO} --version \
2215       | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]|[5-9])' >/dev/null 2>&1; then
2216      :
2217    else
2218      MAKEINFO="$MISSING makeinfo"
2219    fi
2220    ;;
2221changequote([,])
2222esac
2223
2224# FIXME: expect and dejagnu may become build tools?
2225
2226AC_CHECK_PROGS(EXPECT, expect, expect)
2227case " $configdirs " in
2228  *" expect "*)
2229    test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
2230    ;;
2231esac
2232
2233AC_CHECK_PROGS(RUNTEST, runtest, runtest)
2234case " $configdirs " in
2235  *" dejagnu "*)
2236    test $host = $build && RUNTEST='$$r/$(HOST_SUBDIR)/dejagnu/runtest'
2237    ;;
2238esac
2239
2240
2241# Host tools.
2242NCN_STRICT_CHECK_TOOLS(AR, ar)
2243NCN_STRICT_CHECK_TOOLS(AS, as)
2244NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
2245NCN_STRICT_CHECK_TOOLS(LD, ld)
2246NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
2247NCN_STRICT_CHECK_TOOLS(NM, nm)
2248NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
2249NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
2250NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
2251NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
2252NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
2253AC_SUBST(CC)
2254AC_SUBST(CXX)
2255AC_SUBST(CFLAGS)
2256AC_SUBST(CFLAGS_FOR_BUILD)
2257AC_SUBST(CXXFLAGS)
2258
2259# Target tools.
2260AC_ARG_WITH([build-time-tools], 
2261  [  --with-build-time-tools=path
2262                          use given path to find target tools during the build],
2263  [case x"$withval" in
2264     x/*) ;;
2265     *)
2266       with_build_time_tools=
2267       AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
2268       ;;
2269   esac],
2270  [with_build_time_tools=])
2271
2272NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
2273NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
2274NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
2275NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
2276NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
2277
2278ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
2279ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
2280ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2281ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
2282ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
2283ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
2284ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
2285ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2286ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
2287ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
2288
2289RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
2290
2291GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
2292GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
2293GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2294GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
2295		[gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
2296		c++)
2297GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
2298		[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],
2299		c++)
2300GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
2301GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2302GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
2303		[gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
2304GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
2305		[gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
2306GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
2307GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
2308GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
2309GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
2310GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
2311GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
2312GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
2313
2314AC_SUBST(FLAGS_FOR_TARGET)
2315AC_SUBST(RAW_CXX_FOR_TARGET)
2316
2317# Certain tools may need extra flags.
2318AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2319RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2320NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2321
2322# When building target libraries, except in a Canadian cross, we use
2323# the same toolchain as the compiler we just built.
2324COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
2325COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
2326COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
2327if test $host = $build; then
2328  case " $configdirs " in
2329    *" gcc "*)
2330      COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
2331      COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
2332      COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
2333      ;;
2334  esac
2335fi
2336
2337AC_SUBST(COMPILER_AS_FOR_TARGET)
2338AC_SUBST(COMPILER_LD_FOR_TARGET)
2339AC_SUBST(COMPILER_NM_FOR_TARGET)
2340
2341AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2342AC_ARG_ENABLE(maintainer-mode,
2343[  --enable-maintainer-mode enable make rules and dependencies not useful
2344                          (and sometimes confusing) to the casual installer],
2345      USE_MAINTAINER_MODE=$enableval,
2346      USE_MAINTAINER_MODE=no)
2347AC_MSG_RESULT($USE_MAINTAINER_MODE)
2348AC_SUBST(MAINTAINER_MODE_TRUE)
2349AC_SUBST(MAINTAINER_MODE_FALSE)
2350if test "$USE_MAINTAINER_MODE" = yes; then
2351  MAINTAINER_MODE_TRUE=
2352  MAINTAINER_MODE_FALSE='#'
2353else
2354  MAINTAINER_MODE_TRUE='#'
2355  MAINTAINER_MODE_FALSE=
2356fi	
2357MAINT=$MAINTAINER_MODE_TRUE
2358AC_SUBST(MAINT)dnl
2359
2360# ---------------------
2361# GCC bootstrap support
2362# ---------------------
2363
2364# Stage specific cflags for build.
2365stage1_cflags="-g"
2366case $build in
2367  vax-*-*)
2368    case ${GCC} in
2369      yes) stage1_cflags="-g -Wa,-J" ;;
2370      *) stage1_cflags="-g -J" ;;
2371    esac ;;
2372  powerpc-*-darwin*)
2373    # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
2374    # sources; use -no-cpp-precomp to get to GNU cpp.
2375    # Apple's GCC has bugs in designated initializer handling, so disable
2376    # that too.
2377    stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
2378    ;;
2379esac
2380AC_SUBST(stage1_cflags)
2381
2382# Enable -Werror in bootstrap stage2 and later.
2383# Change the default to "no" on release branches.
2384AC_ARG_ENABLE(werror,
2385[  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
2386[enable_werror=yes])
2387case ${enable_werror} in
2388  yes) stage2_werror_flag="--enable-werror-always" ;;
2389  *) stage2_werror_flag="" ;;
2390esac
2391AC_SUBST(stage2_werror_flag)
2392
2393# Flags needed to enable html installing and building
2394AC_ARG_WITH(datarootdir,
2395[  --with-datarootdir	Use datarootdir as the data root directory.],
2396[datarootdir="\${prefix}/${withval}"],
2397[datarootdir="\${prefix}/share"])
2398
2399AC_ARG_WITH(docdir,
2400[  --with-docdir	Install documentation in this directory.],
2401[docdir="\${prefix}/${withval}"],
2402[docdir="\${datarootdir}/doc"])
2403
2404AC_ARG_WITH(htmldir,
2405[  --with-htmldir	Install html in this directory.],
2406[htmldir="\${prefix}/${withval}"],
2407[htmldir="\${docdir}"])
2408
2409AC_SUBST(datarootdir)
2410AC_SUBST(docdir)
2411AC_SUBST(htmldir)
2412
2413AC_OUTPUT(Makefile)
2414