2002-12-13 Andrew Cagney <ac131313@redhat.com>
[deliverable/binutils-gdb.git] / configure.in
CommitLineData
252b5132
RH
1#! /bin/bash
2##############################################################################
3
4## This file is a shell script fragment that supplies the information
5## necessary to tailor a template configure script into the configure
6## script appropriate for this directory. For more information, check
7## any existing configure script.
8
9## Be warned, there are two types of configure.in files. There are those
10## used by Autoconf, which are macros which are expanded into a configure
11## script by autoconf. The other sort, of which this is one, is executed
12## by Cygnus configure.
13
14## For more information on these two systems, check out the documentation
15## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
16
75205f78
DD
17# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
18# 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
252b5132
RH
19#
20# This file is free software; you can redistribute it and/or modify it
21# under the terms of the GNU General Public License as published by
22# the Free Software Foundation; either version 2 of the License, or
23# (at your option) any later version.
24#
25# This program is distributed in the hope that it will be useful, but
26# WITHOUT ANY WARRANTY; without even the implied warranty of
27# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28# General Public License for more details.
29#
30# You should have received a copy of the GNU General Public License
31# along with this program; if not, write to the Free Software
32# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
33
34##############################################################################
35
ae831be5
NN
36extra_host_args=
37# Define the trigger file to make sure configure will re-run whenever
38# the gcc version number changes.
39if [ "${with_gcc_version_trigger+set}" = set ]; then
40 gcc_version_trigger="$with_gcc_version_trigger"
41 gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
42else
43 # If gcc's sources are available, define the trigger file.
44 if [ -f ${topsrcdir}/gcc/version.c ] ; then
45 gcc_version_trigger=${topsrcdir}/gcc/version.c
46 gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
47 case "$arguments" in
48 *--with-gcc-version-trigger=$gcc_version_trigger* )
49 ;;
50 * )
51 # Add to all subconfigure arguments: build, host, and target.
52 arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
53 ;;
54 esac
55 # This will be redundant when we start all subconfigures from the Makefile.
56 extra_host_args="--with-gcc-version-trigger=$gcc_version_trigger $extra_host_args"
57 fi
58fi
59
252b5132
RH
60### To add a new directory to the tree, first choose whether it is a target
61### or a host dependent tool. Then put it into the appropriate list
a2cc058a 62### (library or tools, host or target), doing a dependency sort.
252b5132 63
a2cc058a
NN
64# Subdirs will be configured in the order listed in build_configdirs,
65# configdirs, or target_configdirs; see the serialization section below.
66
67# Dependency sorting is only needed when *configuration* must be done in
68# a particular order. In all cases a dependency should be specified in
69# the Makefile, whether or not it's implicitly specified here.
70
71# Double entries in build_configdirs, configdirs, or target_configdirs may
72# cause circular dependencies and break everything horribly.
252b5132
RH
73
74# these libraries are used by various programs built for the host environment
75#
fd8958d5 76host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib"
252b5132 77
2e8357fc 78libstdcxx_version="target-libstdc++-v3"
ba73c63f 79
252b5132
RH
80# these tools are built for the host environment
81# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
82# know that we are building the simulator.
2af579c4
NN
83# binutils, gas and ld appear in that order because it makes sense to run
84# "make check" in that particular order.
85host_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 grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator gettext zip fastjar"
75205f78
DD
86
87# libgcj represents the runtime libraries only used by gcj.
88libgcj="target-libffi \
89 target-boehm-gc \
90 target-zlib \
91 target-qthreads \
92 target-libjava"
252b5132
RH
93
94# these libraries are built for the target environment, and are built after
95# the host libraries and the host tools (which may be a cross compiler)
96#
97target_libs="target-libiberty \
98 target-libgloss \
99 target-newlib \
ba73c63f
JM
100 ${libstdcxx_version} \
101 target-libf2c \
75205f78 102 ${libgcj}
ba73c63f 103 target-libobjc"
252b5132
RH
104
105# these tools are built using the target libs, and are intended to run only
106# in the target environment
107#
108# note: any program that *uses* libraries that are in the "target_libs"
109# list belongs in this list. those programs are also very likely
110# candidates for the "native_only" list which follows
111#
dd2768ff 112target_tools="target-examples target-groff target-gperf target-rda"
252b5132
RH
113
114################################################################################
115
252b5132
RH
116## All tools belong in one of the four categories, and are assigned above
117## We assign ${configdirs} this way to remove all embedded newlines. This
118## is important because configure will choke if they ever get through.
119## ${configdirs} is directories we build using the host tools.
120## ${target_configdirs} is directories we build using the target tools.
121#
122configdirs=`echo ${host_libs} ${host_tools}`
123target_configdirs=`echo ${target_libs} ${target_tools}`
124
125################################################################################
126
127srctrigger=move-if-change
128srcname="gnu development package"
129
130# This gets set non-empty for some net releases of packages.
131appdirs=""
132
133# per-host:
134
9ee1a75c
DD
135# There is no longer anything interesting in the per-host section.
136
137# per-target:
138
c712250a
DD
139# Define is_cross_compiler to save on calls to 'test'.
140is_cross_compiler=
141if test x"${host}" = x"${target}" ; then
142 is_cross_compiler=no
143else
144 is_cross_compiler=yes
145fi
146
252b5132
RH
147# We always want to use the same name for this directory, so that dejagnu
148# can reliably find it.
149target_subdir=${target_alias}
150
a0c4f3a0 151if test ! -d ${target_subdir} ; then
252b5132
RH
152 if mkdir ${target_subdir} ; then true
153 else
d5de0a84 154 echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
252b5132
RH
155 exit 1
156 fi
157fi
158
49b7683b
DD
159build_subdir=${build_alias}
160
a0c4f3a0
DD
161if test x"${build_alias}" != x"${host}" ; then
162 if test ! -d ${build_subdir} ; then
49b7683b
DD
163 if mkdir ${build_subdir} ; then true
164 else
d5de0a84 165 echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
49b7683b
DD
166 exit 1
167 fi
168 fi
169fi
170
f48556b1
DD
171# Skipdirs are removed silently.
172skipdirs=
173# Noconfigdirs are removed loudly.
174noconfigdirs=""
252b5132 175
f48556b1
DD
176use_gnu_ld=
177# Make sure we don't let GNU ld be added if we didn't want it.
178if test x$with_gnu_ld = xno ; then
179 use_gnu_ld=no
180 noconfigdirs="$noconfigdirs ld"
252b5132
RH
181fi
182
f48556b1
DD
183use_gnu_as=
184# Make sure we don't let GNU as be added if we didn't want it.
185if test x$with_gnu_as = xno ; then
186 use_gnu_as=no
187 noconfigdirs="$noconfigdirs gas"
252b5132
RH
188fi
189
f48556b1
DD
190# some tools are so dependent upon X11 that if we're not building with X,
191# it's not even worth trying to configure, much less build, that tool.
252b5132 192
f48556b1
DD
193case ${with_x} in
194 yes | "") ;; # the default value for this tree is that X11 is available
ff0a3bf8
DD
195 no)
196 skipdirs="${skipdirs} tk tix itcl libgui"
197 # We won't be able to build gdbtk without X.
198 enable_gdbtk=no
199 ;;
f48556b1
DD
200 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
201esac
252b5132 202
f48556b1 203# Some tools are only suitable for building in a "native" situation.
405ea7a0 204# Remove these if host!=target.
bcaf2395 205native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf"
405ea7a0
NN
206
207# Similarly, some are only suitable for cross toolchains.
208# Remove these if host=target.
209cross_only="target-libgloss target-newlib target-opcodes"
252b5132 210
f48556b1
DD
211case $is_cross_compiler in
212 no) skipdirs="${skipdirs} ${cross_only}" ;;
213 yes) skipdirs="${skipdirs} ${native_only}" ;;
214esac
252b5132 215
a32d391c
DD
216# If both --with-headers and --with-libs are specified, default to
217# --without-newlib.
218if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
219 if test x"${with_newlib}" = x ; then
220 with_newlib=no
221 fi
222fi
223
224# Recognize --with-newlib/--without-newlib.
225case ${with_newlib} in
226 no) skipdirs="${skipdirs} target-newlib" ;;
227 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
228esac
229
252b5132
RH
230# Configure extra directories which are host specific
231
232case "${host}" in
f48556b1 233 *-cygwin*)
3866be5d 234 configdirs="$configdirs libtermcap" ;;
252b5132
RH
235esac
236
237# Remove more programs from consideration, based on the host or
238# target this usually means that a port of the program doesn't
239# exist yet.
240
252b5132 241case "${host}" in
75205f78
DD
242 hppa*64*-*-*)
243 noconfigdirs="$noconfigdirs byacc"
244 ;;
252b5132 245 i[3456]86-*-vsta)
07637366 246 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv gettext"
252b5132
RH
247 ;;
248 i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
07637366 249 noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix db snavigator gnuserv libffi"
252b5132
RH
250 ;;
251 i[3456]86-*-mingw32*)
07637366
DD
252 # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv"
253 noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
252b5132
RH
254 ;;
255 i[3456]86-*-beos*)
256 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
257 ;;
258 *-*-cygwin*)
07637366 259 noconfigdirs="autoconf automake send-pr rcs guile perl"
252b5132
RH
260 ;;
261 *-*-netbsd*)
262 noconfigdirs="rcs"
263 ;;
264 ppc*-*-pe)
07637366 265 noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix db snavigator gnuserv"
252b5132 266 ;;
ba73c63f
JM
267 powerpc-*-beos*)
268 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
269 ;;
bbf7c8ac
NN
270 *-*-darwin*)
271 noconfigdirs="$noconfigdirs tk itcl tix libgui"
272 ;;
252b5132
RH
273esac
274
96111c10
AO
275# Save it here so that, even in case of --enable-libgcj, if the Java
276# front-end isn't enabled, we still get libgcj disabled.
277libgcj_saved=$libgcj
278case $enable_libgcj in
279yes)
280 # If we reset it here, it won't get added to noconfigdirs in the
281 # target-specific build rules, so it will be forcibly enabled
282 # (unless the Java language itself isn't enabled).
283 libgcj=
284 ;;
285no)
286 # Make sure we get it printed in the list of not supported target libs.
287 noconfigdirs="$noconfigdirs ${libgcj}"
288 ;;
289esac
290
252b5132 291case "${target}" in
75205f78
DD
292 *-*-chorusos)
293 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
294 ;;
ffb97b2f
DD
295 *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
296 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
297 ;;
e82380cc
JT
298 *-*-netbsd*)
299 # Skip some stuff on all NetBSD configurations.
ae03d6e2 300 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
e82380cc
JT
301
302 # Skip some stuff that's unsupported on some NetBSD configurations.
303 case "${target}" in
75205f78 304 i*86-*-netbsdelf*) ;;
e82380cc 305 *)
75205f78 306 noconfigdirs="$noconfigdirs ${libgcj}"
e82380cc
JT
307 ;;
308 esac
309 ;;
252b5132 310 *-*-netware)
e3b0c936 311 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss ${libgcj}"
252b5132
RH
312 ;;
313 *-*-rtems*)
75205f78 314 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
d5ec694c
DD
315 case ${target} in
316 h8300*-*-* | h8500-*-*)
317 noconfigdirs="$noconfigdirs target-libf2c"
318 ;;
319 *) ;;
320 esac
252b5132
RH
321 ;;
322 *-*-vxworks*)
75205f78 323 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
252b5132
RH
324 ;;
325 alpha*-dec-osf*)
e99daf2b
DD
326 # ld works, but does not support shared libraries.
327 # newlib is not 64 bit ready. I'm not sure about fileutils.
252b5132 328 # gas doesn't generate exception information.
e99daf2b 329 noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
252b5132
RH
330 ;;
331 alpha*-*-*vms*)
75205f78
DD
332 noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
333 ;;
334 alpha*-*-linux*)
335 # newlib is not 64 bit ready
336 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
252b5132 337 ;;
ffb97b2f
DD
338 alpha*-*-freebsd*)
339 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
340 ;;
252b5132
RH
341 alpha*-*-*)
342 # newlib is not 64 bit ready
75205f78 343 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
252b5132 344 ;;
75205f78
DD
345 sh-*-linux*)
346 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
75205f78 347 ;;
2fb651f6 348 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
75205f78
DD
349 noconfigdirs="$noconfigdirs ${libgcj}"
350 noconfigdirs="$noconfigdirs target-examples"
ba73c63f 351 noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
2fb651f6
NC
352 noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
353 noconfigdirs="$noconfigdirs expect dejagnu"
354 # the C++ libraries don't build on top of CE's C libraries
ba73c63f 355 noconfigdirs="$noconfigdirs ${libstdcxx_version}"
ae03d6e2 356 noconfigdirs="$noconfigdirs target-newlib"
2fb651f6
NC
357 case "${host}" in
358 *-*-cygwin*) ;; # keep gdb and readline
ba73c63f 359 *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}"
2fb651f6
NC
360 ;;
361 esac
362 ;;
252b5132 363 arc-*-*)
75205f78 364 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 365 ;;
f03b4789
NN
366 arm-*-coff | strongarm-*-coff | xscale-*-coff)
367 noconfigdirs="$noconfigdirs ${libgcj}"
368 ;;
369 arm-*-elf* | strongarm-*-elf* | xscale-*-elf*)
370 noconfigdirs="$noconfigdirs target-libffi target-qthreads"
371 ;;
252b5132 372 arm-*-pe*)
75205f78 373 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 374 ;;
252b5132 375 arm-*-oabi*)
75205f78 376 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 377 ;;
252b5132 378 thumb-*-coff)
75205f78 379 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 380 ;;
252b5132 381 thumb-*-elf)
75205f78 382 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132
RH
383 ;;
384 thumb-*-oabi)
75205f78 385 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 386 ;;
347dad9e 387 thumb-*-pe)
75205f78 388 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132
RH
389 ;;
390 arm-*-riscix*)
75205f78 391 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
252b5132 392 ;;
c95f53ae
MM
393 avr-*-*)
394 noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
395 ;;
ff72e302 396 c4x-*-* | tic4x-*-*)
e3b0c936 397 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
077b8428
NC
398 ;;
399 c54x*-*-* | tic54x-*-*)
75205f78
DD
400 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} gcc gdb newlib"
401 ;;
402 cris-*-*)
403 noconfigdirs="$noconfigdirs ${libgcj}"
077b8428 404 ;;
252b5132 405 d10v-*-*)
e3b0c936 406 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
252b5132 407 ;;
252b5132 408 d30v-*-*)
75205f78 409 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 410 ;;
252b5132 411 fr30-*-elf*)
75205f78 412 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 413 ;;
d2a86414
DB
414 frv-*-*)
415 noconfigdirs="$noconfigdirs ${libgcj}"
d2a86414 416 ;;
dd1e52a4
JH
417 h8300*-*-*)
418 noconfigdirs="$noconfigdirs target-libgloss"
419 ;;
252b5132 420 h8500-*-*)
e3b0c936 421 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} target-libf2c"
75205f78
DD
422 ;;
423 hppa*64*-*-linux* | parisc*64*-*-linux*)
424 # In this case, it's because the hppa64-linux target is for
425 # the kernel only at this point and has no libc, and thus no
426 # headers, crt*.o, etc., all of which are needed by these.
427 noconfigdirs="$noconfigdirs target-zlib"
252b5132
RH
428 ;;
429 hppa*-*-*elf* | \
75205f78 430 parisc*-*-linux* | hppa*-*-linux* | \
09e90eb4 431 hppa*-*-lites* | \
17240c1f 432 hppa*-*-openbsd* | \
09e90eb4 433 hppa*64*-*-*)
75205f78 434 noconfigdirs="$noconfigdirs ${libgcj}"
ba73c63f 435 # Do configure ld/binutils/gas for this case.
252b5132
RH
436 ;;
437 hppa*-*-*)
b3ed1d6b
AO
438 # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
439 # build on HP-UX 10.20.
440 noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
252b5132 441 ;;
2315914d
JW
442 ia64*-*-elf*)
443 # No gdb support yet.
444 noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
445 ;;
a0c1c920
NC
446 ia64*-**-hpux*)
447 # No gdb or ld support yet.
448 noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
449 ;;
252b5132 450 i[3456]86-*-coff | i[3456]86-*-elf)
75205f78 451 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 452 ;;
ffb97b2f
DD
453 i[34567]86-*-freebsd*)
454 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
455 ;;
c72f388d 456 i[3456]86-*-linux*)
28f46298
HPN
457 # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
458 # not build java stuff by default.
459 case "${target}" in
460 *-*-*libc1*)
461 noconfigdirs="$noconfigdirs ${libgcj}";;
462 esac
463
c72f388d
TF
464 # This section makes it possible to build newlib natively on linux.
465 # If we are using a cross compiler then don't configure newlib.
a018e15b 466 if test x${is_cross_compiler} != xno ; then
c72f388d
TF
467 noconfigdirs="$noconfigdirs target-newlib"
468 fi
469 noconfigdirs="$noconfigdirs target-libgloss"
470 # If we are not using a cross compiler, do configure newlib.
471 # Note however, that newlib will only be configured in this situation
472 # if the --with-newlib option has been given, because otherwise
473 # 'target-newlib' will appear in skipdirs.
c72f388d 474 ;;
252b5132
RH
475 i[3456]86-*-mingw32*)
476 target_configdirs="$target_configdirs target-mingw"
b1af961c 477 noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
252b5132
RH
478
479 # Can't build gdb for mingw32 if not native.
480 case "${host}" in
481 i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
482 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv"
483 ;;
484 esac
485 ;;
486 *-*-cygwin*)
487 target_configdirs="$target_configdirs target-libtermcap target-winsup"
b1af961c 488 noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
252b5132
RH
489 # always build newlib.
490 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
491
492 # Can't build gdb for Cygwin if not native.
493 case "${host}" in
494 *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
495 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
496 ;;
497 esac
498 ;;
499 i[3456]86-*-pe)
e3b0c936 500 noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
252b5132
RH
501 ;;
502 i[3456]86-*-sco3.2v5*)
503 # The linker does not yet know about weak symbols in COFF,
504 # and is not configured to handle mixed ELF and COFF.
75205f78 505 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
252b5132
RH
506 ;;
507 i[3456]86-*-sco*)
75205f78 508 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
252b5132
RH
509 ;;
510 i[3456]86-*-solaris2*)
511 noconfigdirs="$noconfigdirs target-libgloss"
512 ;;
513 i[3456]86-*-sysv4*)
e99daf2b 514 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132
RH
515 ;;
516 i[3456]86-*-beos*)
b1af961c 517 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
252b5132 518 ;;
75205f78
DD
519 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
520 noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
f9e0997d 521 ;;
75205f78
DD
522 m68k-*-elf*)
523 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
524 ;;
525 m68k-*-coff*)
75205f78 526 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 527 ;;
75205f78
DD
528 mcore-*-pe*)
529 # The EPOC C++ environment does not support exceptions or rtti,
530 # and so building libstdc++-v3 tends not to always work.
531 noconfigdirs="$noconfigdirs target-libstdc++-v3"
532 ;;
533 mmix-*-*)
534 noconfigdirs="$noconfigdirs ${libgcj}"
535 ;;
252b5132 536 mn10200-*-*)
75205f78 537 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
538 ;;
539 mn10300-*-*)
75205f78 540 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
541 ;;
542 powerpc-*-aix*)
543 # copied from rs6000-*-* entry
07637366 544 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
252b5132
RH
545 ;;
546 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
547 target_configdirs="$target_configdirs target-winsup"
75205f78 548 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv ${libgcj}"
252b5132
RH
549 # always build newlib.
550 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
551 ;;
552 # This is temporary until we can link against shared libraries
553 powerpcle-*-solaris*)
75205f78 554 noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv ${libgcj}"
ba73c63f
JM
555 ;;
556 powerpc-*-beos*)
75205f78 557 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
252b5132 558 ;;
c0292023 559 powerpc-*-darwin*)
bbf7c8ac 560 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}"
c0292023 561 ;;
252b5132 562 powerpc-*-eabi)
75205f78 563 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 564 ;;
574e6d11
DD
565 powerpc64*-*-linux*)
566 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
567 # not yet ported.
568 noconfigdirs="$noconfigdirs target-libffi"
569 ;;
252b5132 570 rs6000-*-lynxos*)
07637366 571 noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
252b5132
RH
572 ;;
573 rs6000-*-aix*)
75205f78 574 noconfigdirs="$noconfigdirs gprof ${libgcj}"
252b5132
RH
575 ;;
576 rs6000-*-*)
75205f78 577 noconfigdirs="$noconfigdirs gprof ${libgcj}"
252b5132
RH
578 ;;
579 m68k-apollo-*)
75205f78 580 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
252b5132
RH
581 ;;
582 mips*-*-irix5*)
583 # The GNU linker does not support shared libraries.
e99daf2b 584 noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}"
252b5132
RH
585 ;;
586 mips*-*-irix6*)
106117aa 587 # The GNU assembler does not support IRIX 6.
b3ed1d6b
AO
588 # Linking libjava exceeds command-line length limits on at least
589 # IRIX 6.2, but not on IRIX 6.5.
590 # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
591 # <oldham@codesourcery.com>
e99daf2b 592 noconfigdirs="$noconfigdirs gas gprof target-libgloss ${libgcj}"
252b5132
RH
593 ;;
594 mips*-dec-bsd*)
75205f78 595 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
252b5132
RH
596 ;;
597 mips*-*-bsd*)
75205f78 598 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
252b5132
RH
599 ;;
600 mipstx39-*-*)
75205f78 601 noconfigdirs="$noconfigdirs gprof ${libgcj}" # same as generic mips
252b5132 602 ;;
fad93c55 603 mips*-*-linux*)
574e6d11 604 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
fad93c55 605 ;;
252b5132 606 mips*-*-*)
75205f78 607 noconfigdirs="$noconfigdirs gprof ${libgcj}"
252b5132
RH
608 ;;
609 romp-*-*)
75205f78 610 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
252b5132
RH
611 ;;
612 sh-*-*)
613 case "${host}" in
614 i[3456]86-*-vsta) ;; # don't add gprof back in
615 i[3456]86-*-go32*) ;; # don't add gprof back in
616 i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
617 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
618 esac
75205f78 619 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 620 ;;
20a5393b
AO
621 sh64-*-*)
622 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
623 ;;
252b5132 624 sparc-*-elf*)
d5ec694c 625 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
626 ;;
627 sparc64-*-elf*)
d5ec694c 628 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
629 ;;
630 sparclite-*-*)
75205f78 631 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
632 ;;
633 sparc-*-sunos4*)
75205f78 634 noconfigdirs="$noconfigdirs ${libgcj}"
a0c4f3a0 635 if test x${is_cross_compiler} != xno ; then
c74222f7 636 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
252b5132
RH
637 else
638 use_gnu_ld=no
639 fi
640 ;;
3a036cdc 641 sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
b3ed1d6b 642 ;;
252b5132 643 v810-*-*)
75205f78 644 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss ${libgcj}"
252b5132
RH
645 ;;
646 v850-*-*)
75205f78 647 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 648 ;;
347dad9e 649 v850e-*-*)
75205f78 650 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132
RH
651 ;;
652 v850ea-*-*)
75205f78 653 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
347dad9e 654 ;;
252b5132 655 vax-*-vms)
75205f78 656 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
252b5132
RH
657 ;;
658 vax-*-*)
75205f78 659 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
96ce09a7 660 ;;
f48556b1
DD
661 ip2k-*-*)
662 noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
663 ;;
574e6d11
DD
664 *-*-linux*)
665 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
666 ;;
252b5132 667 *-*-lynxos*)
75205f78 668 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
252b5132 669 ;;
75205f78
DD
670 *-*-*)
671 noconfigdirs="$noconfigdirs ${libgcj}"
672 ;;
252b5132
RH
673esac
674
675# If we aren't building newlib, then don't build libgloss, since libgloss
676# depends upon some newlib header files.
677case "${noconfigdirs}" in
678 *target-libgloss*) ;;
679 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
f48556b1 680esac
252b5132 681
6ee6cea6
AO
682# Figure out what language subdirectories are present.
683# Look if the user specified --enable-languages="..."; if not, use
684# the environment variable $LANGUAGES if defined. $LANGUAGES might
685# go away some day.
922b2485 686# NB: embedded tabs in this IF block -- do not untabify
6ee6cea6
AO
687if test x"${enable_languages+set}" != xset; then
688 if test x"${LANGUAGES+set}" = xset; then
922b2485
DD
689 enable_languages="${LANGUAGES}"
690 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
6ee6cea6
AO
691 else
692 enable_languages=all
693 fi
694else
922b2485
DD
695 if test x"${enable_languages}" = x ||
696 test x"${enable_languages}" = xyes;
697 then
698 echo configure.in: --enable-languages needs at least one language argument 1>&2
6ee6cea6
AO
699 exit 1
700 fi
701fi
922b2485
DD
702enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'`
703
75205f78
DD
704# First scan to see if an enabled language requires some other language.
705# We assume that a given config-lang.in will list all the language
706# front ends it requires, even if some are required indirectly.
707for lang in ${srcdir}/gcc/*/config-lang.in ..
708do
709 case $lang in
710 ..)
711 ;;
712 # The odd quoting in the next line works around
713 # an apparent bug in bash 1.12 on linux.
714 ${srcdir}/gcc/[*]/config-lang.in)
715 ;;
716 *)
717 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
718 this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
719 for other in $this_lang_requires
720 do
721 case ,${enable_languages}, in
722 *,$other,*)
723 ;;
724 *,all,*)
725 ;;
726 *,$lang_alias,*)
727 echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2
728 enable_languages="$enable_languages,$other"
729 ;;
730 esac
731 done
732 ;;
733 esac
734done
735
6ee6cea6
AO
736subdirs=
737for lang in ${srcdir}/gcc/*/config-lang.in ..
738do
739 case $lang in
740 ..) ;;
741 # The odd quoting in the next line works around
742 # an apparent bug in bash 1.12 on linux.
743 ${srcdir}/gcc/[*]/config-lang.in) ;;
744 *)
745 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
746 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
75205f78 747 this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang`
6ee6cea6
AO
748 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
749 if test "x$lang_alias" = x
750 then
751 echo "$lang doesn't set \$language." 1>&2
752 exit 1
753 fi
754 case ${build_by_default},${enable_languages}, in
755 *,$lang_alias,*) add_this_lang=yes ;;
756 no,*) add_this_lang=no ;;
757 *,all,*) add_this_lang=yes ;;
758 *) add_this_lang=no ;;
759 esac
760 if test x"${add_this_lang}" = xyes; then
761 eval target_libs='"$target_libs "'\"$this_lang_libs\"
762 else
75205f78 763 eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
6ee6cea6
AO
764 fi
765 ;;
766 esac
767done
768
252b5132
RH
769# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
770# $target_configdirs.
771# If we have the source for $noconfigdirs entries, add them to $notsupp.
772
773notsupp=""
774for dir in . $skipdirs $noconfigdirs ; do
775 dirname=`echo $dir | sed -e s/target-//g`
a0c4f3a0 776 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
252b5132 777 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
405ea7a0 778 if test -r $srcdir/$dirname/configure ; then
252b5132
RH
779 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
780 true
781 else
782 notsupp="$notsupp $dir"
783 fi
784 fi
785 fi
a0c4f3a0 786 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
252b5132 787 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
405ea7a0 788 if test -r $srcdir/$dirname/configure ; then
252b5132
RH
789 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
790 true
791 else
792 notsupp="$notsupp $dir"
793 fi
794 fi
795 fi
796done
797
798# Sometimes the tools are distributed with libiberty but with no other
799# libraries. In that case, we don't want to build target-libiberty.
a0c4f3a0 800if test -n "${target_configdirs}" ; then
252b5132
RH
801 others=
802 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
a0c4f3a0 803 if test "$i" != "libiberty" ; then
405ea7a0 804 if test -r $srcdir/$i/configure ; then
252b5132
RH
805 others=yes;
806 break;
807 fi
808 fi
809 done
a0c4f3a0 810 if test -z "${others}" ; then
252b5132
RH
811 target_configdirs=
812 fi
813fi
814
f48556b1
DD
815# Deconfigure all subdirectories, in case we are changing the
816# configuration from one where a subdirectory is supported to one where it
817# is not.
818if test -z "${norecursion}" && test -n "${configdirs}" ; then
819 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
820 rm -f $i/Makefile
821 done
822fi
823if test -z "${norecursion}" && test -n "${target_configdirs}" ; then
824 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
825 rm -f ${target_subdir}/$i/Makefile
826 done
827fi
828
829# Quietly strip out all directories which aren't configurable in this tree.
830# This relies on all configurable subdirectories being autoconfiscated, which
831# is now the case.
832configdirs_all="$configdirs"
833configdirs=
834for i in ${configdirs_all} ; do
835 if test -f ${srcdir}/$i/configure ; then
836 configdirs="${configdirs} $i"
837 fi
838done
839target_configdirs_all="$target_configdirs"
840target_configdirs=
841for i in ${target_configdirs_all} ; do
842 j=`echo $i | sed -e s/target-//g`
843 if test -f ${srcdir}/$j/configure ; then
844 target_configdirs="${target_configdirs} $i"
845 fi
846done
847
848# Produce a warning message for the subdirs we can't configure.
849# This isn't especially interesting in the Cygnus tree, but in the individual
850# FSF releases, it's important to let people know when their machine isn't
851# supported by the one or two programs in a package.
852
853if test -n "${notsupp}" && test -z "${norecursion}" ; then
854 # If $appdirs is non-empty, at least one of those directories must still
855 # be configured, or we error out. (E.g., if the gas release supports a
856 # specified target in some subdirs but not the gas subdir, we shouldn't
857 # pretend that all is well.)
858 if test -n "$appdirs" ; then
859 for dir in $appdirs ; do
860 if test -r $dir/Makefile.in ; then
861 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
862 appdirs=""
863 break
864 fi
865 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
866 appdirs=""
867 break
868 fi
869 fi
870 done
871 if test -n "$appdirs" ; then
872 echo "*** This configuration is not supported by this package." 1>&2
873 exit 1
874 fi
875 fi
876 # Okay, some application will build, or we don't care to check. Still
877 # notify of subdirs not getting built.
878 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
879 echo " ${notsupp}" 1>&2
880 echo " (Any other directories should still work fine.)" 1>&2
881fi
882
883case "$host" in
884 *msdosdjgpp*)
885 enable_gdbtk=no ;;
886esac
f48556b1
DD
887
888copy_dirs=
889
bdc57bfd
JT
890# Handle --with-headers=XXX. If the value is not "yes", the contents of
891# the named directory are copied to $(tooldir)/sys-include.
f48556b1
DD
892if test x"${with_headers}" != x ; then
893 if test x${is_cross_compiler} = xno ; then
894 echo 1>&2 '***' --with-headers is only supported when cross compiling
895 exit 1
896 fi
bdc57bfd
JT
897 if test x"${with_headers}" != xyes ; then
898 case "${exec_prefixoption}" in
899 "") x=${prefix} ;;
900 *) x=${exec_prefix} ;;
901 esac
902 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
903 fi
f48556b1
DD
904fi
905
bdc57bfd
JT
906# Handle --with-libs=XXX. If the value is not "yes", the contents of
907# the name directories are copied to $(tooldir)/lib. Multiple directories
908# are permitted.
f48556b1
DD
909if test x"${with_libs}" != x ; then
910 if test x${is_cross_compiler} = xno ; then
911 echo 1>&2 '***' --with-libs is only supported when cross compiling
912 exit 1
913 fi
bdc57bfd
JT
914 if test x"${with_libs}" != xyes ; then
915 # Copy the libraries in reverse order, so that files in the first named
916 # library override files in subsequent libraries.
917 case "${exec_prefixoption}" in
918 "") x=${prefix} ;;
919 *) x=${exec_prefix} ;;
920 esac
921 for l in ${with_libs}; do
922 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
923 done
924 fi
f48556b1
DD
925fi
926
927# Handle ${copy_dirs}
928set fnord ${copy_dirs}
929shift
930while test $# != 0 ; do
931 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
932 :
933 else
934 echo Copying $1 to $2
935
936 # Use the install script to create the directory and all required
937 # parent directories.
938 if test -d $2 ; then
939 :
940 else
941 echo >config.temp
942 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
943 fi
944
945 # Copy the directory, assuming we have tar.
946 # FIXME: Should we use B in the second tar? Not all systems support it.
947 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
948
949 # It is the responsibility of the user to correctly adjust all
950 # symlinks. If somebody can figure out how to handle them correctly
951 # here, feel free to add the code.
952
953 echo $1 > $2/COPIED
954 fi
955 shift; shift
956done
957
958# Work in distributions that contain no compiler tools, like Autoconf.
959tentative_cc=""
960if test -d ${srcdir}/config ; then
961case "${host}" in
962 m68k-hp-hpux*)
963 # Avoid "too much defining" errors from HPUX compiler.
964 tentative_cc="cc -Wp,-H256000"
965 host_makefile_frag="config/mh-hp300"
966 ;;
967 m68k-apollo-sysv*)
968 tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
969 host_makefile_frag="config/mh-apollo68"
970 ;;
971 m68k-apollo-bsd*)
972 #None of the Apollo compilers can compile gas or binutils. The preprocessor
973 # chokes on bfd, the compiler won't let you assign integers to enums, and
974 # other problems. Defining CC to gcc is a questionable way to say "don't use
975 # the apollo compiler" (the preferred version of GCC could be called cc,
976 # or whatever), but I'm not sure leaving CC as cc is any better...
977 #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
978 tentative_cc=gcc
979 host_makefile_frag="config/mh-a68bsd"
980 ;;
981 m88k-dg-dgux*)
982 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
983 host_makefile_frag="config/mh-dgux"
984 ;;
985 m88k-harris-cxux*)
986 # Under CX/UX, we want to tell the compiler to use ANSI mode.
987 tentative_cc="cc -Xa"
988 host_makefile_frag="config/mh-cxux"
989 ;;
990 m88k-motorola-sysv*)
991 host_makefile_frag="config/mh-delta88"
992 ;;
993 mips*-dec-ultrix*)
994 tentative_cc="cc -Wf,-XNg1000"
995 host_makefile_frag="config/mh-decstation"
996 ;;
997 mips*-nec-sysv4*)
998 # The C compiler on NEC MIPS SVR4 needs bigger tables.
999 tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
1000 host_makefile_frag="config/mh-necv4"
1001 ;;
1002 mips*-sgi-irix6*)
1003 host_makefile_frag="config/mh-irix6"
1004 ;;
1005 mips*-sgi-irix5*)
1006 host_makefile_frag="config/mh-irix5"
1007 ;;
1008 mips*-sgi-irix4*)
1009 # Tell compiler to use K&R C. We can't compile under the SGI Ansi
1010 # environment. Also bump switch table size so that cp-parse will
1011 # compile. Bump string length limit so linker builds.
1012 tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
1013 ;;
1014 mips*-sgi-irix3*)
1015 host_makefile_frag="config/mh-sysv"
1016 ;;
1017 mips*-*-sysv4*)
1018 host_makefile_frag="config/mh-sysv4"
1019 ;;
1020 mips*-*-sysv*)
1021 # This is for a MIPS running RISC/os 4.52C.
1022
1023 # This is needed for GDB, but needs to be in the top-level make because
1024 # if a library is compiled with the bsd headers and gets linked with the
1025 # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
1026 # a different size).
1027 # ptrace(2) apparently has problems in the BSD environment. No workaround is
1028 # known except to select the sysv environment. Could we use /proc instead?
1029 # These "sysv environments" and "bsd environments" often end up being a pain.
1030 #
1031 # This is not part of CFLAGS because perhaps not all C compilers have this
1032 # option.
1033 tentative_cc="cc -systype sysv"
1034 host_makefile_frag="config/mh-riscos"
1035 ;;
1036 i370-ibm-opened*)
1037 tentative_cc="c89"
1038 host_makefile_frag="config/mh-openedition"
1039 ;;
1040 i[3456]86-*-sysv5*)
1041 host_makefile_frag="config/mh-sysv5"
1042 ;;
1043 i[3456]86-*-dgux*)
1044 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1045 host_makefile_frag="config/mh-dgux386"
1046 ;;
1047 i[3456]86-ncr-sysv4.3*)
1048 # The MetaWare compiler will generate a copyright message unless you
1049 # turn it off by adding the -Hnocopyr flag.
1050 tentative_cc="cc -Hnocopyr"
1051 host_makefile_frag="config/mh-ncrsvr43"
1052 ;;
1053 i[3456]86-ncr-sysv4*)
1054 # for an NCR 3000 (i486/SVR4) system.
1055 # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1056 # This compiler not only emits obnoxious copyright messages every time
1057 # you run it, but it chokes and dies on a whole bunch of GNU source
1058 # files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1059 tentative_cc="/usr/ccs/ATT/cc"
1060 host_makefile_frag="config/mh-ncr3000"
1061 ;;
1062 i[3456]86-*-sco3.2v5*)
1063 host_makefile_frag="config/mh-sysv"
1064 ;;
1065 i[3456]86-*-sco*)
1066 # The native C compiler botches some simple uses of const. Unfortunately,
1067 # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1068 tentative_cc="cc -Dconst="
1069 host_makefile_frag="config/mh-sco"
1070 ;;
1071 i[3456]86-*-udk*)
1072 host_makefile_frag="config/mh-sysv5"
1073 ;;
1074 i[3456]86-*-isc*)
1075 host_makefile_frag="config/mh-sysv"
1076 ;;
1077 i[3456]86-*-solaris2*)
1078 host_makefile_frag="config/mh-sysv4"
1079 ;;
1080 i[3456]86-*-aix*)
1081 host_makefile_frag="config/mh-aix386"
1082 ;;
1083 i[3456]86-*-msdosdjgpp*)
1084 host_makefile_frag="config/mh-djgpp"
1085 ;;
1086 *-cygwin*)
1087 host_makefile_frag="config/mh-cygwin"
1088 ;;
1089 *-mingw32*)
1090 host_makefile_frag="config/mh-mingw32"
1091 ;;
1092 *-interix*)
1093 host_makefile_frag="config/mh-interix"
1094 ;;
1095 vax-*-ultrix2*)
1096 # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1097 tentative_cc=gcc
1098 ;;
1099 *-*-solaris2*)
1100 host_makefile_frag="config/mh-solaris"
1101 ;;
1102 m68k-sun-sunos*)
1103 # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1104 # without overflowing the jump tables (-J says to use a 32 bit table)
1105 tentative_cc="cc -J"
1106 ;;
1107 *-hp-hpux[78]*)
1108 tentative_cc="cc -Wp,-H256000"
1109 host_makefile_frag="config/mh-hpux8"
1110 ;;
1111 *-hp-hpux*)
1112 tentative_cc="cc -Wp,-H256000"
1113 host_makefile_frag="config/mh-hpux"
1114 ;;
1115 *-*-hiux*)
1116 tentative_cc="cc -Wp,-H256000"
1117 host_makefile_frag="config/mh-hpux"
1118 ;;
1119 rs6000-*-lynxos*)
1120 # /bin/cc is less than useful for our purposes. Always use GCC
1121 tentative_cc="/usr/cygnus/progressive/bin/gcc"
1122 host_makefile_frag="config/mh-lynxrs6k"
1123 ;;
1124 *-*-lynxos*)
1125 # /bin/cc is less than useful for our purposes. Always use GCC
1126 tentative_cc="/bin/gcc"
1127 ;;
1128 *-*-sysv4*)
1129 host_makefile_frag="config/mh-sysv4"
1130 ;;
1131 *-*-sysv*)
1132 host_makefile_frag="config/mh-sysv"
1133 ;;
1134esac
1135fi
1136
1137rm -f mh-frag
1138if test -n "${host_makefile_frag}" ; then
1139 for f in ${host_makefile_frag}
1140 do
1141 cat ${srcdir}/$f >> mh-frag
252b5132 1142 done
f48556b1 1143 host_makefile_frag=mh-frag
252b5132 1144fi
f48556b1 1145
874e38b4
NN
1146extra_arflags_for_target=
1147extra_nmflags_for_target=
f48556b1 1148case "${target}" in
f48556b1 1149 i[3456]86-*-netware*)
b6f83f2a 1150 target_makefile_frag="config/mt-netware"
f48556b1
DD
1151 ;;
1152 powerpc-*-netware*)
b6f83f2a 1153 target_makefile_frag="config/mt-netware"
f48556b1
DD
1154 ;;
1155 *-*-linux*)
b6f83f2a 1156 target_makefile_frag="config/mt-linux"
f48556b1
DD
1157 ;;
1158 *-*-aix4.[3456789]* | *-*-aix[56789].*)
874e38b4
NN
1159 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
1160 # commands to handle both 32-bit and 64-bit objects. These flags are
1161 # harmless if we're using GNU nm or ar.
1162 extra_arflags_for_target=" -X32_64"
1163 extra_nmflags_for_target=" -B -X32_64"
f48556b1
DD
1164 ;;
1165 mips*-*-pe | sh*-*-pe | *arm-wince-pe)
b6f83f2a
DD
1166 target_makefile_frag="config/mt-wince"
1167 ;;
1168esac
1169
1170alphaieee_frag=
1171case $target in
1172 alpha*-*-*)
1173 # This just makes sure to use the -mieee option to build target libs.
1174 # This should probably be set individually by each library.
1175 alphaieee_frag="config/mt-alphaieee"
f48556b1
DD
1176 ;;
1177esac
a0a2c6c6 1178
f48556b1
DD
1179# If --enable-target-optspace always use -Os instead of -O2 to build
1180# the target libraries, similarly if it is not specified, use -Os
1181# on selected platforms.
b6f83f2a 1182ospace_frag=
f48556b1
DD
1183case "${enable_target_optspace}:${target}" in
1184 yes:*)
b6f83f2a 1185 ospace_frag="config/mt-ospace"
f48556b1
DD
1186 ;;
1187 :d30v-*)
b6f83f2a 1188 ospace_frag="config/mt-d30v"
f48556b1
DD
1189 ;;
1190 :m32r-* | :d10v-* | :fr30-*)
b6f83f2a 1191 ospace_frag="config/mt-ospace"
f48556b1
DD
1192 ;;
1193 no:* | :*)
1194 ;;
1195 *)
1196 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1197 ;;
1198esac
252b5132 1199
f48556b1 1200rm -f mt-frag
b6f83f2a
DD
1201if test -n "${target_makefile_frag}${alphaieee_frag}${ospace_frag}" ; then
1202 for f in ${target_makefile_frag} ${alphaieee_frag} ${ospace_frag}
f48556b1
DD
1203 do
1204 cat ${srcdir}/$f >> mt-frag
1205 done
1206 target_makefile_frag=mt-frag
252b5132
RH
1207fi
1208
1209# Set with_gnu_as and with_gnu_ld as appropriate.
1210#
1211# This is done by determining whether or not the appropriate directory
1212# is available, and by checking whether or not specific configurations
1213# have requested that this magic not happen.
1214#
1215# The command line options always override the explicit settings in
1216# configure.in, and the settings in configure.in override this magic.
1217#
1218# If the default for a toolchain is to use GNU as and ld, and you don't
1219# want to do that, then you should use the --without-gnu-as and
1220# --without-gnu-ld options for the configure script.
1221
f48556b1
DD
1222if test x${use_gnu_as} = x &&
1223 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1224 with_gnu_as=yes
ae831be5 1225 extra_host_args="$extra_host_args --with-gnu-as"
252b5132
RH
1226fi
1227
f48556b1
DD
1228if test x${use_gnu_ld} = x &&
1229 echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1230 with_gnu_ld=yes
ae831be5 1231 extra_host_args="$extra_host_args --with-gnu-ld"
252b5132
RH
1232fi
1233
ae831be5 1234# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
252b5132
RH
1235# can detect this case.
1236
f48556b1 1237if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
252b5132 1238 with_newlib=yes
ae831be5 1239 extra_host_args="$extra_host_args --with-newlib"
252b5132
RH
1240fi
1241
f48556b1
DD
1242# We default to --with-shared on platforms where -fpic is meaningless.
1243# Well, we don't yet, but we will.
1244if false && test "${host}" = "${target}" && test x${enable_shared} = x ; then
1245 case "${target}" in
1246 alpha*-dec-osf*) enable_shared=yes ;;
1247 alpha*-*-linux*) enable_shared=yes ;;
1248 mips-sgi-irix5*) enable_shared=yes ;;
1249 *) enable_shared=no ;;
1250 esac
252b5132
RH
1251fi
1252
f48556b1
DD
1253case "${enable_shared}" in
1254 yes) shared=yes ;;
1255 no) shared=no ;;
1256 "") shared=no ;;
1257 *) shared=yes ;;
c92a0210 1258esac
f48556b1
DD
1259
1260
1261# Default to using --with-stabs for certain targets.
1262if test x${with_stabs} = x ; then
1263 case "${target}" in
d7cf5d30
DD
1264 mips*-*-irix6*o32)
1265 with_stabs=yes;
ae831be5 1266 extra_host_args="${extra_host_args} --with-stabs"
d7cf5d30 1267 ;;
f48556b1
DD
1268 mips*-*-irix6*)
1269 ;;
1270 mips*-*-* | alpha*-*-osf*)
1271 with_stabs=yes;
ae831be5 1272 extra_host_args="${extra_host_args} --with-stabs"
f48556b1
DD
1273 ;;
1274 esac
1275fi
1276
1277# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
1278# them automatically.
1279case "${host}" in
1280 hppa*64*-*-hpux11*)
ae831be5 1281 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
f48556b1 1282 ;;
c92a0210
DD
1283esac
1284
ae831be5
NN
1285# This will go away when we start subconfigures from the Makefile.
1286withoptions="${withoptions} ${extra_host_args}"
1287
227d98f5
NN
1288# If we aren't going to be using gcc, see if we can extract a definition
1289# of CC from the fragment.
1290# Actually, use the 'pre-extracted' version above.
1291if test -z "${CC}" && test "${build}" = "${host}" ; then
1292 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1293 found=
1294 for dir in $PATH; do
1295 test -z "$dir" && dir=.
1296 if test -f $dir/gcc; then
1297 found=yes
1298 break
1299 fi
1300 done
1301 IFS="$save_ifs"
1302 if test -z "${found}" && test -n "${tentative_cc}" ; then
1303 CC=$tentative_cc
1304 fi
1305fi
1306
252b5132
RH
1307# post-target:
1308
1309# Make sure that the compiler is able to generate an executable. If it
1310# can't, we are probably in trouble. We don't care whether we can run the
1311# executable--we might be using a cross compiler--we only care whether it
1312# can be created. At this point the main configure script has set CC.
a0c4f3a0 1313we_are_ok=no
252b5132
RH
1314echo "int main () { return 0; }" > conftest.c
1315${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
a0c4f3a0
DD
1316if test $? = 0 ; then
1317 if test -s conftest || test -s conftest.exe ; then
1318 we_are_ok=yes
1319 fi
1320fi
1321case $we_are_ok in
1322 no)
1323 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1324 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1325 rm -f conftest*
1326 exit 1
1327 ;;
1328esac
252b5132
RH
1329rm -f conftest*
1330
1331# The Solaris /usr/ucb/cc compiler does not appear to work.
1332case "${host}" in
1333 sparc-sun-solaris2*)
1334 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
a0c4f3a0 1335 if test "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ; then
252b5132 1336 could_use=
a0c4f3a0
DD
1337 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1338 if test -d /opt/cygnus/bin ; then
1339 if test "$could_use" = "" ; then
252b5132
RH
1340 could_use="/opt/cygnus/bin"
1341 else
1342 could_use="$could_use or /opt/cygnus/bin"
1343 fi
1344 fi
a0c4f3a0 1345 if test "$could_use" = "" ; then
252b5132
RH
1346 echo "Warning: compilation may fail because you're using"
1347 echo "/usr/ucb/cc. You should change your PATH or CC "
1348 echo "variable and rerun configure."
1349 else
1350 echo "Warning: compilation may fail because you're using"
1351 echo "/usr/ucb/cc, when you should use the C compiler from"
1352 echo "$could_use. You should change your"
1353 echo "PATH or CC variable and rerun configure."
1354 fi
1355 fi
1356 ;;
1357esac
1358
1359# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1360# binutils tools will find libbfd.so.
a0c4f3a0 1361if test "${shared}" = "yes" ; then
8607b6c9
NN
1362 SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)"
1363else
1364 SET_LIB_PATH=
252b5132 1365fi
8607b6c9
NN
1366sed -e "s/@SET_LIB_PATH@/${SET_LIB_PATH}/" Makefile > Makefile.tem
1367rm -f Makefile
1368mv -f Makefile.tem Makefile
1369
1370
1371case "${host}" in
1372 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1373 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1374esac
1375sed -e "s/@RPATH_ENVVAR@/${RPATH_ENVVAR}/" Makefile > Makefile.tem
1376rm -f Makefile
1377mv -f Makefile.tem Makefile
1378
3866be5d
NN
1379# Record target_configdirs and the configure arguments for target and
1380# build configuration in Makefile.
1381target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1382
1383# This is the final value for target_configdirs. configdirs already
1384# has its final value. It's time to create some lists of valid targets.
930314a4
NN
1385
1386all_build_modules=
1387configure_build_modules=
1388# Only make build modules if build != host.
1389# This should be done more generally, but at the moment it doesn't matter.
1390if test ${host_alias} != ${build_alias} ; then
1391 all_build_modules=all-build-libiberty
1392 configure_build_modules=configure-build-libiberty
1393fi
1394
3866be5d
NN
1395all_host_modules=
1396check_host_modules=
1397install_host_modules=
930314a4 1398configure_host_modules=
3866be5d
NN
1399for module in ${configdirs} ; do
1400 all_host_modules="${all_host_modules} all-${module}"
1401 check_host_modules="${check_host_modules} check-${module}"
1402 install_host_modules="${install_host_modules} install-${module}"
930314a4 1403 configure_host_modules="${configure_host_modules} configure-${module}"
3866be5d
NN
1404done
1405install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'`
1406
1407all_target_modules=
1408check_target_modules=
1409install_target_modules=
930314a4 1410configure_target_modules=
3866be5d
NN
1411for module in ${target_configdirs} ; do
1412 all_target_modules="${all_target_modules} all-target-${module}"
1413 check_target_modules="${check_target_modules} check-target-${module}"
1414 install_target_modules="${install_target_modules} install-target-${module}"
930314a4 1415 configure_target_modules="${configure_target_modules} configure-target-${module}"
3866be5d 1416done
252b5132 1417
930314a4
NN
1418# Determine whether gdb needs tk/tcl or not.
1419# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1420# and in that case we want gdb to be built without tk. Ugh!
1421# In fact I believe gdb is the *only* package directly dependent on tk,
1422# so we should be able to put the 'maybe's in unconditionally and
1423# leave out the maybe dependencies when enable_gdbtk is false. I'm not
1424# 100% sure that that's safe though.
1425case "$enable_gdbtk" in
1426 no)
1427 GDB_TK="" ;;
1428 *)
1429 GDB_TK="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" ;;
1430esac
1431
1432# Create the 'maybe dependencies'. This uses a temporary file.
1433rm -f maybedep.tmp
1434for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \
1435 ${install_host_modules} ${install_target_modules} \
1436 ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \
1437 ; do
1438 echo "maybe-${item}: ${item}" >> maybedep.tmp
1439done
1440sed -e '/@maybe_dependencies@/r maybedep.tmp' \
1441 -e 's/@maybe_dependencies@//' Makefile > Makefile.tem
1442rm -f Makefile
1443mv -f Makefile.tem Makefile
1444rm -f maybedep.tmp
1445
a2cc058a
NN
1446# Create the serialization dependencies. This uses a temporary file.
1447
1448# These force 'configure's to be done one at a time, to avoid problems
1449# with contention over a shared config.cache.
1450rm -f serdep.tmp
1451olditem=
1452for item in ${build_configdirs} ; do
1453 case ${olditem} in
1454 "") ;;
1455 *) echo "\$(BUILD_SUBDIR)/${item}/Makefile: \$(BUILD_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
1456 esac
1457 olditem=${item}
1458done
1459olditem=
1460for item in ${configdirs} ; do
1461 case ${olditem} in
1462 "") ;;
1463 *) echo "${item}/Makefile: ${olditem}/Makefile" >> serdep.tmp ;;
1464 esac
1465 olditem=${item}
1466done
1467olditem=
1468for item in ${target_configdirs} ; do
1469 case ${olditem} in
1470 "") ;;
1471 *) echo "\$(TARGET_SUBDIR)/${item}/Makefile: \$(TARGET_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
1472 esac
1473 olditem=${item}
1474done
1475sed -e '/@serialization_dependencies@/r serdep.tmp' \
1476 -e 's/@serialization_dependencies@//' Makefile > Makefile.tem
1477rm -f Makefile
1478mv -f Makefile.tem Makefile
1479rm -f serdep.tmp
1480
91e060aa
DD
1481# Base args. Strip norecursion, cache-file, srcdir, host, build, target.
1482# These are the ones we might not want to pass down to subconfigures.
1483baseargs=`echo "${arguments}" | \
252b5132
RH
1484 sed -e 's/--no[^ ]*//' \
1485 -e 's/--cache[a-z-]*=[^ ]*//' \
91e060aa 1486 -e 's/--sr[a-z-]*=[^ ]*//' \
252b5132
RH
1487 -e 's/--ho[a-z-]*=[^ ]*//' \
1488 -e 's/--bu[a-z-]*=[^ ]*//' \
1489 -e 's/--ta[a-z-]*=[^ ]*//'`
1490
49b7683b
DD
1491# For the build-side libraries, we just need to pretend we're native,
1492# and not use the same cache file. Multilibs are neither needed nor
1493# desired.
91e060aa
DD
1494buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1495
ae831be5
NN
1496# For host modules, accept cache file option, or specification as blank.
1497case "${cache_file}" in
1498"") # empty
1499 cache_file_option="" ;;
1500/* | [A-Za-z]:[\\/]* ) # absolute path
1501 cache_file_option="--cache-file=${cache_file}" ;;
1502*) # relative path
1503 cache_file_option="--cache-file=../${cache_file}" ;;
1504esac
1505
1506hostargs="${cache_file_option} ${buildopt} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
1507
91e060aa 1508targargs=${baseargs}
49b7683b 1509
252b5132
RH
1510# Passing a --with-cross-host argument lets the target libraries know
1511# whether they are being built with a cross-compiler or being built
1512# native. However, it would be better to use other mechanisms to make the
1513# sorts of decisions they want to make on this basis. Please consider
1514# this option to be deprecated. FIXME.
a0c4f3a0 1515if test x${is_cross_compiler} = xyes ; then
252b5132
RH
1516 targargs="--with-cross-host=${host_alias} ${targargs}"
1517fi
1518
1519# Default to --enable-multilib.
a0c4f3a0 1520if test x${enable_multilib} = x ; then
252b5132
RH
1521 targargs="--enable-multilib ${targargs}"
1522fi
1523
1524# Pass --with-newlib if appropriate. Note that target_configdirs has
1525# changed from the earlier setting of with_newlib.
a0c4f3a0 1526if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
252b5132
RH
1527 targargs="--with-newlib ${targargs}"
1528fi
1529
49b7683b
DD
1530# Pass the appropriate --host, --build, and --cache-file arguments.
1531targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
1532
252b5132
RH
1533# provide a proper gxx_include_dir.
1534# Note, if you change the default, make sure to fix both here and in
75205f78 1535# the gcc and libstdc++-v3 subdirectories.
252b5132
RH
1536# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1537gxx_include_dir=
1538if test -n "${with_gxx_include_dir}"; then
1539 case "${with_gxx_include_dir}" in
1540 yes )
1541 echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
1542 exit 1
1543 ;;
1544 no )
1545 ;;
1546 * )
1547 gxx_include_dir=${with_gxx_include_dir}
1548 ;;
1549 esac
1550fi
1551if test x${gxx_include_dir} = x; then
1552 if test x${enable_version_specific_runtime_libs} = xyes; then
edd1b227 1553 gxx_include_dir='${libsubdir}/include/c++'
252b5132 1554 else
4d5fd396 1555 . ${srcdir}/config.if
75205f78 1556 gxx_include_dir='${prefix}/include/${libstdcxx_incdir}'
252b5132
RH
1557 fi
1558else
1559 gxx_include_dir=${gxx_include_dir}
1560fi
1561
9e449d3e 1562FLAGS_FOR_TARGET=
7c1f909c 1563case " $target_configdirs " in
75205f78
DD
1564 *" newlib "*)
1565 case " $targargs " in
1566 *" --with-newlib "*)
9e449d3e 1567 case "$target" in
63266560 1568 *-cygwin*)
9e449d3e
AO
1569 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 -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;;
1570 esac
1571
7450026c 1572 # If we're not building GCC, don't discard standard headers.
4d5fd396 1573 if test -d ${srcdir}/gcc; then
63266560 1574 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
7450026c
AO
1575
1576 if test "${build}" != "${host}"; then
1577 # On Canadian crosses, CC_FOR_TARGET will have already been set
1578 # by `configure', so we won't have an opportunity to add -Bgcc/
1579 # to it. This is right: we don't want to search that directory
1580 # for binaries, but we want the header files in there, so add
1581 # them explicitly.
1582 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1583
1584 # Someone might think of using the pre-installed headers on
1585 # Canadian crosses, in case the installed compiler is not fully
1586 # compatible with the compiler being built. In this case, it
1587 # would be better to flag an error than risking having
1588 # incompatible object files being constructed. We can't
1589 # guarantee that an error will be flagged, but let's hope the
1590 # compiler will do it, when presented with incompatible header
1591 # files.
1592 fi
63266560
DD
1593 fi
1594
0a0d0041 1595 case "${target}-${is_cross_compiler}" in
c72f388d 1596 i[3456]86-*-linux*-no)
0a0d0041
TF
1597 # Here host == target, so we don't need to build gcc,
1598 # so we don't want to discard standard headers.
1599 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
0a0d0041
TF
1600 ;;
1601 *)
1602 # If we're building newlib, use its generic headers last, but search
1603 # for any libc-related directories first (so make it the last -B
1604 # switch).
1605 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1606 ;;
1607 esac
9e449d3e 1608 ;;
75205f78
DD
1609 esac
1610 ;;
9e449d3e 1611esac
63266560
DD
1612
1613# On Canadian crosses, we'll be searching the right directories for
1614# the previously-installed cross compiler, so don't bother to add
1615# flags for directories within the install tree of the compiler
1616# being built; programs in there won't even run.
4d5fd396 1617if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
9e449d3e
AO
1618 # Search for pre-installed headers if nothing else fits.
1619 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include'
1620fi
63266560 1621
7c1f909c 1622if test "x${use_gnu_ld}" = x &&
f48556b1 1623 echo " ${configdirs} " | grep " ld " > /dev/null ; then
9e449d3e
AO
1624 # Arrange for us to find uninstalled linker scripts.
1625 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1626fi
1627
63266560
DD
1628if test "x${CC_FOR_TARGET+set}" = xset; then
1629 :
4d5fd396 1630elif test -d ${srcdir}/gcc; then
98fbe43f 1631 CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
9e449d3e
AO
1632elif test "$host" = "$target"; then
1633 CC_FOR_TARGET='$(CC)'
1634else
1635 CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1636fi
63266560
DD
1637# On Canadian crosses, configure reads CC_FOR_TARGET from Makefile,
1638# if Makefile exists. Prevent $(FLAGS_FOR_TARGET) from being duplicated.
1639case $CC_FOR_TARGET in
1640*' $(FLAGS_FOR_TARGET)') ;;
1641*) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1642esac
9e449d3e 1643
75205f78
DD
1644if test "x${GCJ_FOR_TARGET+set}" = xset; then
1645 :
4d5fd396 1646elif test -d ${srcdir}/gcc; then
75205f78
DD
1647 GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
1648elif test "$host" = "$target"; then
1649 GCJ_FOR_TARGET='gcj'
1650else
1651 GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}`
1652fi
1653case $GCJ_FOR_TARGET in
1654*' $(FLAGS_FOR_TARGET)') ;;
1655*) GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1656esac
1657
8ee424c0 1658# Don't use libstdc++-v3's flags to configure/build itself.
930314a4
NN
1659libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1660raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
8ee424c0 1661
63266560
DD
1662if test "x${CXX_FOR_TARGET+set}" = xset; then
1663 :
4d5fd396 1664elif test -d ${srcdir}/gcc; then
2e8357fc
AO
1665 # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
1666 # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
1667 # default whereas gcc does not.
930314a4
NN
1668 # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
1669 # all other cases.
1670 CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1671 RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
9e449d3e
AO
1672elif test "$host" = "$target"; then
1673 CXX_FOR_TARGET='$(CXX)'
930314a4 1674 RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
9e449d3e
AO
1675else
1676 CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
930314a4 1677 RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
9e449d3e 1678fi
63266560
DD
1679case $CXX_FOR_TARGET in
1680*' $(FLAGS_FOR_TARGET)') ;;
1681*) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1682esac
930314a4
NN
1683case $RAW_CXX_FOR_TARGET in
1684*' $(FLAGS_FOR_TARGET)') ;;
1685*) RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1686esac
1687
dec0cb0c 1688qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
930314a4 1689qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
dec0cb0c
AO
1690
1691# We want to defer the evaluation of `cmd`s and shell variables in
1692# CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1693# bootstrap. We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1694# quotes, but we still have to duplicate `$'s so that shell variables
1695# can be expanded by the nested make as shell variables, not as make
1696# macros.
1697qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
930314a4 1698qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
9e449d3e 1699
15723a45
NN
1700# BASE_CC_FOR_TARGET is the actual program file of CC_FOR_TARGET,
1701# for use in dependencies. Replace $$r with a relative
1702# path if it's present.
1703set dummy $CC_FOR_TARGET; cc_for_target_first_word=$2
1704BASE_CC_FOR_TARGET=`echo "$cc_for_target_first_word" | sed -e 's,[$][$]r,.,'`
1705
75205f78
DD
1706sedtemp=sed.$$
1707cat >$sedtemp <<EOF
930314a4 1708s%@GDB_TK@%${GDB_TK}%
930314a4 1709s%@configure_build_modules@%${configure_build_modules}%
db1ac78d
NN
1710s%@all_build_modules@%${all_build_modules}%
1711s%@configure_host_modules@%${configure_host_modules}%
3866be5d
NN
1712s%@all_host_modules@%${all_host_modules}%
1713s%@check_host_modules@%${check_host_modules}%
1714s%@install_host_modules@%${install_host_modules}%
1715s%@install_host_modules_nogcc@%${install_host_modules_nogcc}%
db1ac78d 1716s%@configure_target_modules@%${configure_target_modules}%
3866be5d
NN
1717s%@all_target_modules@%${all_target_modules}%
1718s%@check_target_modules@%${check_target_modules}%
1719s%@install_target_modules@%${install_target_modules}%
58daee98
NN
1720s:@target_configdirs@:${target_configdirs}:
1721s%@target_configargs@%${targargs}%
1722s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
1723s%@CC_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}%
15723a45 1724s%@BASE_CC_FOR_TARGET@%${BASE_CC_FOR_TARGET}%
58daee98
NN
1725s%@GCJ_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}%
1726s%@CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}%
930314a4 1727s%@RAW_CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}%
58daee98 1728s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}%
930314a4 1729s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}%
58daee98
NN
1730s%@target_subdir@%${target_subdir}%
1731s%@build_subdir@%${build_subdir}%
1732s%@build_configargs@%${buildargs}%
1733s%@gxx_include_dir@%${gxx_include_dir}%
ae831be5 1734s%@host_configargs@%${hostargs}%
75205f78
DD
1735EOF
1736sed -f $sedtemp Makefile > Makefile.tem
1737rm -f Makefile $sedtemp
252b5132
RH
1738mv -f Makefile.tem Makefile
1739
1740#
This page took 0.274953 seconds and 4 git commands to generate.