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