source: trunk/third/binutils/configure.in @ 21000

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