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