Thu Jul 2 14:59:42 1998 Klaus Kaempf <kkaempf@rmi.de>
[deliverable/binutils-gdb.git] / configure.in
CommitLineData
59d95e81 1#! /bin/bash
9bdd52dd 2##############################################################################
eb02fd64 3
041164e4
DZ
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.
ba4513e7 8
041164e4
DZ
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.
ba4513e7 13
041164e4
DZ
14## For more information on these two systems, check out the documentation
15## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
ba4513e7 16
d20af0bd 17# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
85f533f7
TT
18#
19# This file is free software; you can redistribute it and/or modify it
20# under the terms of the GNU General Public License as published by
21# the Free Software Foundation; either version 2 of the License, or
22# (at your option) any later version.
23#
24# This program is distributed in the hope that it will be useful, but
25# WITHOUT ANY WARRANTY; without even the implied warranty of
26# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27# General Public License for more details.
28#
29# You should have received a copy of the GNU General Public License
30# along with this program; if not, write to the Free Software
31# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
32
9bdd52dd 33##############################################################################
041164e4
DZ
34
35### To add a new directory to the tree, first choose whether it is a target
36### or a host dependent tool. Then put it into the appropriate list
37### (library or tools, host or target), doing a dependency sort. For
38### example, gdb requires that byacc (or bison) be built first, so it is in
39### the ${host_tools} list after byacc and bison.
40
41
42# these libraries are used by various programs built for the host environment
43#
d20af0bd 44host_libs="intl mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix libgui"
6f1e2150 45# start-sanitize-ide
f46d03c5 46host_libs="${host_libs} libide libidetcl"
6f1e2150 47# end-sanitize-ide
5f9e41cd
BE
48# start-sanitize-cygnus
49host_libs="${host_libs} flexlm"
50# end-sanitize-cygnus
041164e4 51
f4a7dca7
TL
52if [ "${enable_gdbgui}" = "yes" ] ; then
53 host_libs="${host_libs} libgui"
54fi
55
041164e4 56# these tools are built for the host environment
23e92f3f
MM
57# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
58# know that we are building the simulator.
5412dceb 59host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext"
3718029f 60# start-sanitize-ide
c070fb34 61host_tools="${host_tools} ilu vmake jstools"
3718029f 62# end-sanitize-ide
5ea0771f
DE
63# start-sanitize-cygnus
64host_tools="${host_tools} cgen"
65# end-sanitize-cygnus
041164e4 66
9bdd52dd
DZ
67# these libraries are built for the target environment, and are built after
68# the host libraries and the host tools (which may be a cross compiler)
041164e4 69#
6d2d3edc
SG
70target_libs="target-libiberty \
71 target-libgloss \
72 target-newlib \
73 target-libio \
74 target-librx \
75 target-libstdc++ \
76 ${start-sanitize-java}
77 target-libjava \
78 target-boehm-gc \
79 ${end-sanitize-java}
80 target-libg++"
041164e4 81
9bdd52dd 82# these tools are built using the target libs, and are intended to run only
9623e828 83# in the target environment
83a47678 84#
9bdd52dd
DZ
85# note: any program that *uses* libraries that are in the "target_libs"
86# list belongs in this list. those programs are also very likely
87# candidates for the "native_only" list which follows
041164e4 88#
10be59aa 89target_tools="target-examples target-groff target-gperf"
041164e4
DZ
90
91################################################################################
92
93## These two lists are of directories that are to be removed from the
94## ${configdirs} list for either cross-compilations or for native-
95## compilations. For example, it doesn't make that much sense to
ab1cbc67 96## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
041164e4
DZ
97## a native environment.
98
99# directories to be built in the native environment only
100#
cd0ae558
ILT
101# This must be a single line because of the way it is searched by grep in
102# the code below.
2f5ed6bc 103native_only="autoconf automake libtool cvssrc emacs emacs19 fileutils find gawk gettext grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time ash bash prms snavigator gnuserv target-gperf"
041164e4 104
9bdd52dd 105# directories to be built in a cross environment only
041164e4 106#
f4434c50 107cross_only="target-libgloss target-newlib target-cygmon target-opcodes target-libstub"
041164e4
DZ
108
109## All tools belong in one of the four categories, and are assigned above
8f30a41e
DE
110## We assign ${configdirs} this way to remove all embedded newlines. This
111## is important because configure will choke if they ever get through.
ca2ce3b3
ILT
112## ${configdirs} is directories we build using the host tools.
113## ${target_configdirs} is directories we build using the target tools.
041164e4 114#
ca2ce3b3
ILT
115configdirs=`echo ${host_libs} ${host_tools}`
116target_configdirs=`echo ${target_libs} ${target_tools}`
041164e4
DZ
117
118################################################################################
ba4513e7 119
378fd382 120srctrigger=move-if-change
eb02fd64 121srcname="gnu development package"
0df06ca0 122
af9fa3c1
ILT
123# This gets set non-empty for some net releases of packages.
124appdirs=""
125
0df06ca0
RP
126# per-host:
127
594c548a
DM
128# Work in distributions that contain no compiler tools, like Autoconf.
129if [ -d ${srcdir}/config ]; then
cec673a2 130case "${host}" in
9cfb301e
JL
131 m68k-hp-hpux*)
132 host_makefile_frag="${host_makefile_frag} config/mh-hp300"
133 ;;
134 m68k-apollo-sysv*)
135 host_makefile_frag="${host_makefile_frag} config/mh-apollo68"
136 ;;
137 m68k-apollo-bsd*)
138 host_makefile_frag="${host_makefile_frag} config/mh-a68bsd"
139 ;;
140 m88k-dg-dgux*)
141 host_makefile_frag="${host_makefile_frag} config/mh-dgux"
142 ;;
143 m88k-harris-cxux*)
144 host_makefile_frag="${host_makefile_frag} config/mh-cxux"
145 ;;
146 m88k-motorola-sysv*)
147 host_makefile_frag="${host_makefile_frag} config/mh-delta88"
148 ;;
149 mips*-dec-ultrix*)
150 host_makefile_frag="${host_makefile_frag} config/mh-decstation"
151 ;;
152 mips*-nec-sysv4*)
153 host_makefile_frag="${host_makefile_frag} config/mh-necv4"
154 ;;
155 mips*-sgi-irix6*)
156 host_makefile_frag="${host_makefile_frag} config/mh-irix6"
157 ;;
158 mips*-sgi-irix5*)
159 host_makefile_frag="${host_makefile_frag} config/mh-irix5"
160 ;;
161 mips*-sgi-irix4*)
162 host_makefile_frag="${host_makefile_frag} config/mh-irix4"
163 ;;
164 mips*-sgi-irix3*)
165 host_makefile_frag="${host_makefile_frag} config/mh-sysv"
166 ;;
167 mips*-*-sysv4*)
168 host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
169 ;;
170 mips*-*-sysv*)
171 host_makefile_frag="${host_makefile_frag} config/mh-riscos"
172 ;;
f43cc8f7
JM
173 i[3456]86-*-sysv5*)
174 host_makefile_frag="${host_makefile_frag} config/mh-sysv5"
175 ;;
9cfb301e
JL
176 i[3456]86-*-dgux*)
177 host_makefile_frag="${host_makefile_frag} config/mh-dgux386"
178 ;;
179 i[3456]86-ncr-sysv4.3*)
180 host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43"
181 ;;
182 i[3456]86-ncr-sysv4*)
183 host_makefile_frag="${host_makefile_frag} config/mh-ncr3000"
184 ;;
185 i[3456]86-*-sco3.2v5*)
186 host_makefile_frag="${host_makefile_frag} config/mh-sysv"
187 ;;
188 i[3456]86-*-sco*)
189 host_makefile_frag="${host_makefile_frag} config/mh-sco"
190 ;;
191 i[3456]86-*-isc*)
192 host_makefile_frag="${host_makefile_frag} config/mh-sysv"
193 ;;
194 i[3456]86-*-solaris2*)
195 host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
196 ;;
197 i[3456]86-*-aix*)
198 host_makefile_frag="${host_makefile_frag} config/mh-aix386"
199 ;;
200 i[3456]86-*-go32*)
201 host_makefile_frag="${host_makefile_frag} config/mh-go32"
202 ;;
203 i[3456]86-*-msdosdjgpp*)
204 host_makefile_frag="${host_makefile_frag} config/mh-go32"
205 ;;
206 *-cygwin32*)
207 host_makefile_frag="${host_makefile_frag} config/mh-cygwin32"
208 ;;
0b0bd98b
JL
209 *-mingw32*)
210 host_makefile_frag="${host_makefile_frag} config/mh-mingw32"
211 ;;
6271cadd 212# start-sanitize-mswin
9cfb301e
JL
213 *-windows*)
214 host_makefile_frag="${host_makefile_frag} config/mh-windows"
215 ;;
6271cadd 216# end-sanitize-mswin
9cfb301e
JL
217 vax-*-ultrix2*)
218 host_makefile_frag="${host_makefile_frag} config/mh-vaxult2"
219 ;;
220 *-*-solaris2*)
221 host_makefile_frag="${host_makefile_frag} config/mh-solaris"
222 ;;
223 m68k-sun-sunos*)
224 host_makefile_frag="${host_makefile_frag} config/mh-sun3"
225 ;;
226 *-hp-hpux[78]*)
227 host_makefile_frag="${host_makefile_frag} config/mh-hpux8"
228 ;;
229 *-hp-hpux*)
230 host_makefile_frag="${host_makefile_frag} config/mh-hpux"
231 ;;
232 *-*-hiux*)
233 host_makefile_frag="${host_makefile_frag} config/mh-hpux"
234 ;;
235 rs6000-*-lynxos*)
236 host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k"
237 ;;
238 *-*-lynxos*)
239 host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
240 ;;
241 *-*-sysv4*)
242 host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
243 ;;
244 *-*-sysv*)
245 host_makefile_frag="${host_makefile_frag} config/mh-sysv"
246 ;;
f4bda0ff 247esac
594c548a 248fi
f4bda0ff 249
0e47ce97
ILT
250# If we aren't going to be using gcc, see if we can extract a definition
251# of CC from the fragment.
8beb827a 252if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
0e47ce97
ILT
253 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
254 found=
255 for dir in $PATH; do
256 test -z "$dir" && dir=.
257 if test -f $dir/gcc; then
258 found=yes
259 break
260 fi
261 done
262 IFS="$save_ifs"
8beb827a 263 if [ -z "${found}" ] && [ -n "${host_makefile_frag}" ] && [ -f "${srcdir}/${host_makefile_frag}" ]; then
2f9bfdfa
SG
264 xx=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
265 if [ -n "${xx}" ] ; then
266 CC=$xx
267 fi
ca2ce3b3
ILT
268 fi
269fi
270
45329a2c
JM
271# We default to --with-shared on platforms where -fpic is meaningless.
272# Well, we don't yet, but we will.
273if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
274 case "${target}" in
bf31116d
ILT
275 alpha*-dec-osf*) enable_shared=yes ;;
276 alpha*-*-linux*) enable_shared=yes ;;
45329a2c
JM
277 mips-sgi-irix5*) enable_shared=yes ;;
278 *) enable_shared=no ;;
279 esac
280fi
281
d4be7765
ILT
282case "${enable_shared}" in
283 yes) shared=yes ;;
284 no) shared=no ;;
feb522ad 285 "") shared=no ;;
d4be7765
ILT
286 *) shared=yes ;;
287esac
288
289if [ x${shared} = xyes ]; then
45329a2c 290 case "${host}" in
9cfb301e
JL
291 hppa*)
292 host_makefile_frag="${host_makefile_frag} config/mh-papic"
293 ;;
f4132507
ILT
294 i[3456]86-*-cygwin32*)
295 # We don't want -fPIC on cygwin32.
296 ;;
9cfb301e
JL
297 i[3456]86-*)
298 host_makefile_frag="${host_makefile_frag} config/mh-x86pic"
299 ;;
300 sparc64-*)
301 host_makefile_frag="${host_makefile_frag} config/mh-sparcpic"
302 ;;
303 powerpc*-*)
304 host_makefile_frag="${host_makefile_frag} config/mh-ppcpic"
305 ;;
bf31116d 306 alpha*-*-linux*)
9cfb301e
JL
307 host_makefile_frag="${host_makefile_frag} config/mh-elfalphapic"
308 ;;
309 *)
5a67071d 310 if test -f ${srcdir}/config/mh-${host_cpu}pic; then
8e123593
JL
311 host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic"
312 fi
9cfb301e 313 ;;
45329a2c 314 esac
9cfb301e
JL
315fi
316
317rm -f mh-frag
318if [ -n "${host_makefile_frag}" ] ; then
319 for f in ${host_makefile_frag}
320 do
321 cat ${srcdir}/$f >> mh-frag
322 done
323 host_makefile_frag=mh-frag
45329a2c
JM
324fi
325
0df06ca0 326# per-target:
bc58b41d 327
9ab10a5b 328case "${target}" in
9cfb301e
JL
329 v810*)
330 target_makefile_frag="${target_makefile_frag} config/mt-v810"
331 ;;
332 i[3456]86-*-netware*)
333 target_makefile_frag="${target_makefile_frag} config/mt-netware"
334 ;;
335 powerpc-*-netware*)
336 target_makefile_frag="${target_makefile_frag} config/mt-netware"
337 ;;
276c2d7d 338# start-sanitize-r5900
9cfb301e
JL
339 mips64r59*)
340 target_makefile_frag="${target_makefile_frag} config/mt-r5900"
341 ;;
276c2d7d 342# end-sanitize-r5900
9cfb301e
JL
343 *-*-linux-gnu)
344 target_makefile_frag="${target_makefile_frag} config/mt-linux"
345 ;;
9ab10a5b
SEF
346esac
347
bcb92b02
MM
348# If --enable-target-optspace always use -Os instead of -O2 to build
349# the target libraries, similarly if it is not specified, use -Os
350# on selected platforms.
351case "${enable_target_optspace}:${target}" in
352 yes:*)
353 target_makefile_frag="${target_makefile_frag} config/mt-ospace"
354 ;;
355 :m32r-* | :d10v-*)
356 target_makefile_frag="${target_makefile_frag} config/mt-ospace"
357 ;;
358# start-sanitize-d30v
359 :d30v-*-*)
360 target_makefile_frag="${target_makefile_frag} config/mt-ospace"
361 ;;
362# end-sanitize-d30v
34b65ac5 363 no:* | :*)
bcb92b02
MM
364 ;;
365 *)
366 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
367 ;;
368esac
369
ca2ce3b3 370skipdirs=
719cb03f
DZ
371gasdir=gas
372use_gnu_ld=
373use_gnu_as=
374
9f579565
DZ
375# some tools are so dependent upon X11 that if we're not building with X,
376# it's not even worth trying to configure, much less build, that tool.
377
378case ${with_x} in
e13fa011 379 yes | "") # the default value for this tree is that X11 is available
6a42d184 380 ;;
e13fa011 381 no)
6f1e2150 382 skipdirs="${skipdirs} tk libgui gash"
3718029f 383# start-sanitize-ide
f46d03c5 384 skipdirs="${skipdirs} libide libidetcl vmake jstools"
3718029f 385# end-sanitize-ide
9f579565
DZ
386 ;;
387 *)
388 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
389 ;;
390esac
391
5357f128 392# Some tools are only suitable for building in a "native" situation.
ba4513e7
DZ
393# Those are added when we have a host==target configuration. For cross
394# toolchains, we add some directories that should only be useful in a
395# cross-compiler.
43557c0a 396
2a38983c
DHW
397is_cross_compiler=
398
94028943 399if [ x"${host}" = x"${target}" ] ; then
041164e4
DZ
400 # when doing a native toolchain, don't build the targets
401 # that are in the 'cross only' list
ca2ce3b3 402 skipdirs="${skipdirs} ${cross_only}"
2a38983c 403 is_cross_compiler=no
ab1cbc67 404 target_subdir=.
3c4e3186
BK
405 case "${host}" in
406 # We need multilib support for irix6, to get libiberty built
407 # properly for o32 and n32.
c80c4a58 408 mips-sgi-irix6*) target_subdir=${host} ;;
3c4e3186 409 esac
43557c0a 410else
041164e4
DZ
411 # similarly, don't build the targets in the 'native only'
412 # list when building a cross compiler
ca2ce3b3 413 skipdirs="${skipdirs} ${native_only}"
2a38983c 414 is_cross_compiler=yes
ab1cbc67 415 target_subdir=${target_alias}
43557c0a
DZ
416fi
417
3c4e3186
BK
418if [ ! -d ${target_subdir} ] ; then
419 if mkdir ${target_subdir} ; then true
420 else
421 echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
422 exit 1
423 fi
424fi
425
055cca84
ILT
426copy_dirs=
427
428# Handle --with-headers=XXX. The contents of the named directory are
52b5deb9 429# copied to $(tooldir)/sys-include.
055cca84
ILT
430if [ x"${with_headers}" != x ]; then
431 if [ x${is_cross_compiler} = xno ]; then
432 echo 1>&2 '***' --with-headers is only supported when cross compiling
433 exit 1
434 fi
435 case "${exec_prefixoption}" in
436 "") x=${prefix} ;;
437 *) x=${exec_prefix} ;;
438 esac
52b5deb9 439 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
055cca84
ILT
440fi
441
442# Handle --with-libs=XXX. Multiple directories are permitted. The
443# contents are copied to $(tooldir)/lib.
444if [ x"${with_libs}" != x ]; then
445 if [ x${is_cross_compiler} = xno ]; then
446 echo 1>&2 '***' --with-libs is only supported when cross compiling
447 exit 1
448 fi
449 # Copy the libraries in reverse order, so that files in the first named
450 # library override files in subsequent libraries.
451 case "${exec_prefixoption}" in
452 "") x=${prefix} ;;
453 *) x=${exec_prefix} ;;
454 esac
455 for l in ${with_libs}; do
456 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
457 done
458fi
459
460# If both --with-headers and --with-libs are specified, default to
461# --without-newlib.
462if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
463 if [ x"${with_newlib}" = x ]; then
464 with_newlib=no
465 fi
466fi
467
99dff294 468# Recognize --with-newlib/--without-newlib.
055cca84 469if [ x${with_newlib} = xno ]; then
ab1cbc67 470 skipdirs="${skipdirs} target-newlib"
99dff294 471elif [ x${with_newlib} = xyes ]; then
ab1cbc67 472 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
055cca84
ILT
473fi
474
4f0ad91b
ILT
475# Default to using --with-stabs for certain targets.
476if [ x${with_stabs} = x ]; then
477 case "${target}" in
780da94c
JM
478 mips*-*-irix6*)
479 ;;
f7954d86 480 mips*-*-* | alpha*-*-osf* | i[3456]86*-*-sysv4* | i[3456]86*-*-unixware*)
4f0ad91b
ILT
481 with_stabs=yes;
482 withoptions="${withoptions} --with-stabs"
483 ;;
484 esac
485fi
486
055cca84
ILT
487# Handle ${copy_dirs}
488set fnord ${copy_dirs}
489shift
490while [ $# != 0 ]; do
491 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
492 :
493 else
494 echo Copying $1 to $2
495
496 # Use the install script to create the directory and all required
497 # parent directories.
498 if [ -d $2 ]; then
499 :
500 else
501 echo >config.temp
cc7e1635 502 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
055cca84
ILT
503 fi
504
505 # Copy the directory, assuming we have tar.
506 # FIXME: Should we use B in the second tar? Not all systems support it.
507 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
508
509 # It is the responsibility of the user to correctly adjust all
510 # symlinks. If somebody can figure out how to handle them correctly
511 # here, feel free to add the code.
512
513 echo $1 > $2/COPIED
514 fi
515 shift; shift
516done
517
eebd76cb
SC
518# Configure extra directories which are host specific
519
520case "${host}" in
f7954d86 521 i[3456]86-*-go32*)
a220ba0f 522 configdirs="$configdirs dosrel" ;;
0b0bd98b
JL
523 i[3456]86-*-mingw32*)
524 configdirs="$configdirs dosrel" ;;
e39c2bd2
GN
525 *-cygwin32*)
526 configdirs="$configdirs dosrel" ;;
eebd76cb
SC
527esac
528
5357f128 529# Remove more programs from consideration, based on the host or
dfa891fc 530# target this usually means that a port of the program doesn't
8ae559b7 531# exist yet.
dfa891fc 532
52e3ad87
KR
533noconfigdirs=""
534
9f579565 535case "${host}" in
f7954d86 536 i[3456]86-*-vsta)
d20af0bd 537 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext"
3718029f 538# start-sanitize-ide
f46d03c5 539 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
3718029f 540# end-sanitize-ide
5f9e41cd
BE
541# start-sanitize-cygnus
542 noconfigdirs="$noconfigdirs flexlm"
543# end-sanitize-cygnus
8a3871bb 544 ;;
e087efc1 545 i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
d20af0bd 546 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext"
3718029f 547# start-sanitize-ide
f46d03c5 548 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
3718029f 549# end-sanitize-ide
5f9e41cd
BE
550# start-sanitize-cygnus
551 noconfigdirs="$noconfigdirs flexlm"
552# end-sanitize-cygnus
8c7fd353 553 ;;
0b0bd98b 554 i[3456]86-*-mingw32*)
c6c22ffe 555 # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv"
db5d8d39 556 noconfigdirs="expect dejagnu cvs autoconf automake send-pr gprof rcs guile perl texinfo apache inet libtool"
0b0bd98b 557 ;;
341aa377 558 *-*-cygwin32)
0db468b8 559 noconfigdirs="autoconf automake send-pr gprof rcs guile perl texinfo apache inet"
9f579565 560 ;;
341aa377 561 *-*-windows*)
5707b74f 562# This is only used to build WinGDB...
e8f6afa3
FL
563# note that powerpc-eabi depends on sim configured before gdb.
564 configdirs="bfd libiberty opcodes readline sim gdb"
5707b74f 565 target_configdirs=
341aa377 566 ;;
c49f612a
JL
567 *-*-netbsd*)
568 noconfigdirs="rcs"
569 ;;
a51794f1 570 ppc*-*-pe)
c6c22ffe 571 noconfigdirs="patch diff make tk tcl expect dejagnu cvssrc autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db snavigator gnuserv"
3718029f 572# start-sanitize-ide
f46d03c5 573 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
3718029f 574# end-sanitize-ide
5f9e41cd
BE
575# start-sanitize-cygnus
576 noconfigdirs="$noconfigdirs flexlm"
577# end-sanitize-cygnus
a51794f1 578 ;;
9f579565 579esac
dfa891fc 580
eebd76cb 581
43557c0a 582case "${target}" in
0f45fbc1 583 *-*-netware)
35cb2108 584 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty target-libgloss"
0f45fbc1 585 ;;
107e5276
DE
586 *-*-rtems*)
587 noconfigdirs="$noconfigdirs target-libgloss"
588 ;;
406477a6 589 *-*-vxworks*)
35cb2108 590 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
849367a2 591 ;;
bf31116d 592 alpha*-dec-osf*)
6bd3f765 593 # ld works, but does not support shared libraries. emacs doesn't
f5152f73 594 # work. newlib is not 64 bit ready. I'm not sure about fileutils.
2a3486d2 595 # gas doesn't generate exception information.
f5152f73 596 noconfigdirs="$noconfigdirs gas ld emacs fileutils target-newlib target-libgloss"
0f45fbc1 597 ;;
bc70a918
ILT
598 alpha*-*-*vms*)
599 noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss"
600 ;;
bf31116d 601 alpha*-*-linux*)
9cfb301e
JL
602 # newlib is not 64 bit ready
603 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
604 # linux has rx in libc
605 skipdirs="$skipdirs target-librx"
606 ;;
04b9315f 607 alpha*-*-*)
6bd3f765 608 # newlib is not 64 bit ready
35cb2108 609 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
0f45fbc1 610 ;;
7c71fc39 611 arc-*-*)
35cb2108 612 noconfigdirs="$noconfigdirs target-libgloss"
7c71fc39 613 ;;
bf150019 614 arm-*-pe*)
35cb2108 615 noconfigdirs="$noconfigdirs target-libgloss"
bf150019 616 ;;
875c8d5c
JSC
617 arm-*-coff*)
618 noconfigdirs="$noconfigdirs target-libgloss"
619 ;;
51654893 620 thumb-*-coff)
28b6fd89
NC
621 noconfigdirs="$noconfigdirs target-libgloss"
622 ;;
1f984018
NC
623 thumb-*-pe) # CYGNUS LOCAL nickc/thumb
624 noconfigdirs="$noconfigdirs target-libgloss"
625 ;;
ff15324f 626 arm-*-riscix*)
35cb2108 627 noconfigdirs="$noconfigdirs ld target-libgloss"
318b02b6 628 ;;
a1e636c8 629 d10v-*-*)
c1f6b406 630 noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio target-libgloss"
a1e636c8 631 ;;
c2304cba
MH
632# start-sanitize-d30v
633 d30v-*-*)
c2304cba
MH
634 ;;
635# end-sanitize-d30v
52e3ad87 636 h8300*-*-* | \
8388b9df 637 h8500-*-*)
35cb2108 638 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
15ae586e 639 ;;
8a71f0f3 640 hppa*-*-*elf* | \
107e5276 641 hppa*-*-lites*)
8c92a7d1 642 # Do configure ld/binutils/gas for this case.
99a5da15 643 ;;
15ae586e 644 hppa*-*-*)
408f64bc
JK
645 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
646 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 647 # whatever they want. FIXME, emacs emacs19).
8b5405d2 648 case "${CC}" in
e37bb3c7 649 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 650 *) ;;
8b5405d2 651 esac
d9f1d487 652 noconfigdirs="$noconfigdirs ld shellutils"
15ae586e 653 ;;
e087efc1 654 i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*)
632ee4a1 655 # but don't build gdb
ab1cbc67 656 noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
8c92a7d1 657 ;;
0b0bd98b
JL
658 i[3456]86-*-mingw32*)
659 target_configdirs="$target_configdirs target-mingw"
660 noconfigdirs="$noconfigdirs expect target-libgloss"
661
53b0f196 662 # Can't build gdb for mingw32 if not native.
0b0bd98b
JL
663 case "${host}" in
664 i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
c6c22ffe 665 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv"
5f9e41cd
BE
666# start-sanitize-cygnus
667 noconfigdirs="$noconfigdirs flexlm"
668# end-sanitize-cygnus
0b0bd98b
JL
669 ;;
670 esac
671 ;;
ccac0df1 672 *-*-cygwin32*)
77cd090a 673 target_configdirs="$target_configdirs target-winsup"
53b0f196 674 noconfigdirs="$noconfigdirs target-gperf target-libgloss"
e1a1ddc6 675 # always build newlib.
ab1cbc67 676 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
9daacfc4
SC
677
678 # Can't build gdb for cygwin32 if not native.
5f8d8c91 679 case "${host}" in
ccac0df1 680 *-*-cygwin32*) ;; # keep gdb tcl tk expect etc.
c6c22ffe 681 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
64434418 682# start-sanitize-ide
f46d03c5 683 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
64434418 684# end-sanitize-ide
5f9e41cd
BE
685# start-sanitize-cygnus
686 noconfigdirs="$noconfigdirs flexlm"
687# end-sanitize-cygnus
64434418 688 ;;
9daacfc4 689 esac
a220ba0f 690 ;;
f7954d86 691 i[3456]86-*-pe)
35cb2108 692 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
8c7fd353 693 ;;
f7954d86 694 i[3456]86-*-sco3.2v5*)
a48876fc
SS
695 # The linker does not yet know about weak symbols in COFF,
696 # and is not configured to handle mixed ELF and COFF.
f43cc8f7 697 noconfigdirs="$noconfigdirs ld target-libgloss"
a48876fc 698 ;;
f7954d86 699 i[3456]86-*-sco*)
35cb2108 700 noconfigdirs="$noconfigdirs gprof target-libgloss"
de9117a7 701 ;;
f7954d86 702 i[3456]86-*-solaris2*)
320c9fff
KR
703 # The linker does static linking correctly, but the Solaris C library
704 # has bugs such that some important functions won't work when statically
705 # linked. (See man pages for getpwuid, for example.)
35cb2108 706 noconfigdirs="$noconfigdirs ld target-libgloss"
320c9fff 707 ;;
f7954d86 708 i[3456]86-*-sysv4*)
8b5405d2
DZ
709 # The SYSV4 C compiler doesn't handle Emacs correctly
710 case "${CC}" in
e37bb3c7 711 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
712 *) ;;
713 esac
714 # but that's okay since emacs doesn't work anyway
35cb2108 715 noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss"
8b5405d2 716 ;;
ae1b99e4 717 mn10200-*-*)
5bf639ac
MA
718 noconfigdirs="$noconfigdirs"
719 if [ x${is_cross_compiler} != xno ] ; then
720 target_configdirs="${target_configdirs} target-libstub target-cygmon"
721 fi
ae1b99e4
JL
722 ;;
723 mn10300-*-*)
f33a8aa5 724 noconfigdirs="$noconfigdirs"
529fce81
MA
725 if [ x${is_cross_compiler} != xno ] ; then
726 target_configdirs="${target_configdirs} target-libstub target-cygmon"
727 fi
be9b9d69 728 ;;
3e1e245d
ILT
729 powerpc-*-aix*)
730 # copied from rs6000-*-* entry
7751f03a 731 noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss"
3d40ace0
ILT
732 # This is needed until gcc and ld are fixed to work together.
733 use_gnu_ld=no
3e1e245d 734 ;;
a51794f1
JM
735 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
736 target_configdirs="$target_configdirs target-winsup"
c6c22ffe 737 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv"
3718029f 738# start-sanitize-ide
f46d03c5 739 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
3718029f 740# end-sanitize-ide
5f9e41cd
BE
741# start-sanitize-cygnus
742 noconfigdirs="$noconfigdirs flexlm"
743# end-sanitize-cygnus
a51794f1
JM
744 # always build newlib.
745 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
81d08d0c 746 ;;
59d95e81 747 # This is temporary until we can link against shared libraries
8970d123 748 powerpcle-*-solaris*)
c6c22ffe 749 noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv"
3718029f 750# start-sanitize-ide
f46d03c5 751 noconfigdirs="$noconfigdirs libide libidetcl vmake jstools"
3718029f 752# end-sanitize-ide
5f9e41cd
BE
753# start-sanitize-cygnus
754 noconfigdirs="$noconfigdirs flexlm"
755# end-sanitize-cygnus
8970d123 756 ;;
2a38983c 757 rs6000-*-lynxos*)
2a38983c
DHW
758 # The CVS server code doesn't work on the RS/6000
759 # Newlib makes problems for libg++ in crosses.
7751f03a 760 noconfigdirs="$noconfigdirs target-newlib gprof cvssrc"
2a38983c 761 ;;
3d40ace0
ILT
762 rs6000-*-aix*)
763 noconfigdirs="$noconfigdirs gprof"
764 # This is needed until gcc and ld are fixed to work together.
765 use_gnu_ld=no
766 ;;
8388b9df 767 rs6000-*-*)
92caaa6a 768 noconfigdirs="$noconfigdirs gprof"
fcf4d286 769 ;;
becf2d8a 770 m68k-apollo-*)
35cb2108 771 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
becf2d8a 772 ;;
04b9315f
ILT
773 mips*-*-irix5*)
774 # The GNU linker does not support shared libraries.
82633710 775 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
35cb2108 776 noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
04b9315f 777 ;;
79a2d56d 778 mips*-*-irix6*)
07057350 779 # The GNU assembler and linker do not support IRIX 6.
79a2d56d 780 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
4ceaca77 781 noconfigdirs="$noconfigdirs ld gas gprof emacs target-libgloss"
79a2d56d 782 ;;
af9fa3c1 783 mips*-dec-bsd*)
35cb2108 784 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1
ILT
785 ;;
786 mips*-*-bsd*)
35cb2108 787 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1 788 ;;
b57c473d
JM
789 mipstx39-*-*)
790 noconfigdirs="$noconfigdirs gprof" # same as generic mips
791 target_configdirs="${target_configdirs} target-libstub target-cygmon"
792 ;;
04b9315f 793 mips*-*-*)
52e3ad87 794 noconfigdirs="$noconfigdirs gprof"
fcf4d286 795 ;;
de9117a7 796 romp-*-*)
35cb2108 797 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss"
de9117a7 798 ;;
817382d1 799 sh-*-*)
719cb03f 800 case "${host}" in
f7954d86 801 i[3456]86-*-vsta) ;; # don't add gprof back in
e087efc1
ILT
802 i[3456]86-*-go32*) ;; # don't add gprof back in
803 i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
ca2ce3b3 804 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
719cb03f 805 esac
35cb2108 806 noconfigdirs="$noconfigdirs target-libgloss"
719cb03f 807 ;;
664298e6
BM
808 sparc-*-elf*)
809 if [ x${is_cross_compiler} != xno ] ; then
f4434c50 810 target_configdirs="${target_configdirs} target-libstub target-cygmon"
664298e6
BM
811 fi
812 ;;
ddfa23cb
BM
813 sparc64-*-elf*)
814 if [ x${is_cross_compiler} != xno ] ; then
f4434c50 815 target_configdirs="${target_configdirs} target-libstub target-cygmon"
ddfa23cb
BM
816 fi
817 ;;
664298e6
BM
818 sparclite-*-aout*)
819 if [ x${is_cross_compiler} != xno ] ; then
f4434c50 820 target_configdirs="${target_configdirs} target-libstub target-cygmon"
664298e6
BM
821 fi
822 ;;
719cb03f 823 sparc-*-sunos4*)
2a38983c 824 if [ x${is_cross_compiler} != xno ] ; then
35cb2108 825 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
2a38983c
DHW
826 else
827 use_gnu_ld=no
828 fi
1f69e88d 829 ;;
69f273d8 830# start-sanitize-sky
e086cc6c 831 dvp-*-elf*)
587c41ae 832 noconfigdirs="$noconfigdirs gcc gdb sim"
83f35963 833 noconfigdirs="$noconfigdirs itcl libgui tk tix"
e086cc6c
DE
834 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty"
835 noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio"
836 ;;
69f273d8 837# end-sanitize-sky
486e0f0a 838 v810-*-*)
35cb2108 839 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss"
486e0f0a 840 ;;
3f5d1c2c 841 v850-*-*)
d77852a4 842 noconfigdirs="$noconfigdirs target-libgloss"
3f5d1c2c 843 ;;
492c2670
NC
844# start-sanitize-v850e
845 v850e-*-*)
846 noconfigdirs="$noconfigdirs target-libgloss"
847 ;;
67a46fe9 848 v850ea-*-*)
492c2670
NC
849 noconfigdirs="$noconfigdirs target-libgloss"
850 ;;
092859e8 851# end-sanitize-v850e
de9117a7 852 vax-*-vms)
35cb2108 853 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
de9117a7
KR
854 ;;
855 vax-*-*)
35cb2108 856 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
8388b9df 857 ;;
de9117a7 858 *-*-lynxos*)
19b1d034 859 # Newlib makes problems for libg++ in crosses.
35cb2108 860 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
19b1d034
SS
861 ;;
862 *-*-macos* | \
863 *-*-mpw*)
864 # Macs want a resource compiler.
865 configdirs="$configdirs grez"
866 ;;
05cd8d98
HS
867esac
868
9a8629d5
ILT
869# If we aren't building newlib, then don't build libgloss, since libgloss
870# depends upon some newlib header files.
871case "${noconfigdirs}" in
872 *target-libgloss*) ;;
873 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
874esac
875
5ea0771f
DE
876# start-sanitize-cygnus
877# Only configure cgen if --enable-cgen-maint.
878if [ x$"enable_cgen_maint" != xyes ] ; then
879 noconfigdirs="$noconfigdirs cgen"
880fi
881
882# end-sanitize-cygnus
d4cf72b3
BK
883# Make sure we don't let GNU ld be added if we didn't want it.
884if [ x$with_gnu_ld = xno ]; then
885 use_gnu_ld=no
886 noconfigdirs="$noconfigdirs ld"
0b0124c6
BK
887fi
888
d4cf72b3
BK
889# Make sure we don't let GNU as be added if we didn't want it.
890if [ x$with_gnu_as = xno ]; then
891 use_gnu_as=no
892 noconfigdirs="$noconfigdirs gas"
0b0124c6
BK
893fi
894
ca2ce3b3
ILT
895# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
896# $target_configdirs.
897# If we have the source for $noconfigdirs entries, add them to $notsupp.
efd7b806 898
52e3ad87 899notsupp=""
ca2ce3b3 900for dir in . $skipdirs $noconfigdirs ; do
b58d9e5d 901 dirname=`echo $dir | sed -e s/target-//g`
1c15a33d 902 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 903 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
904 if [ -r $srcdir/$dirname/configure ] \
905 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
906 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
907 true
908 else
909 notsupp="$notsupp $dir"
910 fi
911 fi
912 fi
913 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
914 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
915 if [ -r $srcdir/$dirname/configure ] \
916 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
917 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
918 true
919 else
920 notsupp="$notsupp $dir"
921 fi
52e3ad87
KR
922 fi
923 fi
924done
925
fba66802
ILT
926# Sometimes the tools are distributed with libiberty but with no other
927# libraries. In that case, we don't want to build target-libiberty.
928if [ -n "${target_configdirs}" ]; then
929 others=
b58d9e5d 930 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
fba66802
ILT
931 if [ "$i" != "libiberty" ]; then
932 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
933 others=yes;
934 break;
935 fi
936 fi
937 done
938 if [ -z "${others}" ]; then
939 target_configdirs=
940 fi
941fi
942
ca2ce3b3
ILT
943# Deconfigure all subdirectories, in case we are changing the
944# configuration from one where a subdirectory is supported to one where it
945# is not.
8beb827a 946if [ -z "${norecursion}" ] && [ -n "${configdirs}" ]; then
b58d9e5d 947 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
ca2ce3b3
ILT
948 rm -f $i/Makefile
949 done
950fi
8beb827a 951if [ -z "${norecursion}" ] && [ -n "${target_configdirs}" ]; then
9bbc0d58 952 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
ab1cbc67
PB
953 rm -f ${target_subdir}/$i/Makefile
954 done
955fi
ca2ce3b3 956
52e3ad87
KR
957# Produce a warning message for the subdirs we can't configure.
958# This isn't especially interesting in the Cygnus tree, but in the individual
959# FSF releases, it's important to let people know when their machine isn't
960# supported by the one or two programs in a package.
961
9fe444b5 962if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
963 # If $appdirs is non-empty, at least one of those directories must still
964 # be configured, or we error out. (E.g., if the gas release supports a
965 # specified target in some subdirs but not the gas subdir, we shouldn't
966 # pretend that all is well.)
967 if [ -n "$appdirs" ]; then
968 for dir in $appdirs ; do
ca2ce3b3
ILT
969 if [ -r $dir/Makefile.in ]; then
970 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
971 appdirs=""
972 break
973 fi
974 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
975 appdirs=""
976 break
977 fi
af9fa3c1
ILT
978 fi
979 done
980 if [ -n "$appdirs" ]; then
981 echo "*** This configuration is not supported by this package." 1>&2
982 exit 1
983 fi
984 fi
985 # Okay, some application will build, or we don't care to check. Still
986 # notify of subdirs not getting built.
52e3ad87
KR
987 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
988 echo " ${notsupp}" 1>&2
989 echo " (Any other directories should still work fine.)" 1>&2
990fi
991
d4cf72b3
BK
992# Set with_gnu_as and with_gnu_ld as appropriate.
993#
994# This is done by determining whether or not the appropriate directory
995# is available, and by checking whether or not specific configurations
996# have requested that this magic not happen.
997#
998# The command line options always override the explicit settings in
999# configure.in, and the settings in configure.in override this magic.
1000#
1001# If the default for a toolchain is to use GNU as and ld, and you don't
1002# want to do that, then you should use the --without-gnu-as and
1003# --without-gnu-ld options for the configure script.
1004
1005if [ x${use_gnu_as} = x ] ; then
1006 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
1007 with_gnu_as=yes
1008 withoptions="$withoptions --with-gnu-as"
1009 fi
1010fi
1011
1012if [ x${use_gnu_ld} = x ] ; then
1013 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
1014 with_gnu_ld=yes
1015 withoptions="$withoptions --with-gnu-ld"
1016 fi
1017fi
1018
d5a8bfde
ILT
1019# If using newlib, add --with-newlib to the withoptions so that gcc/configure
1020# can detect this case.
1021
1022if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1023 with_newlib=yes
1024 withoptions="$withoptions --with-newlib"
1025fi
1026
d4be7765 1027if [ x${shared} = xyes ]; then
45329a2c 1028 case "${target}" in
9cfb301e
JL
1029 hppa*)
1030 target_makefile_frag="${target_makefile_frag} config/mt-papic"
1031 ;;
1032 i[3456]86-*)
1033 target_makefile_frag="${target_makefile_frag} config/mt-x86pic"
1034 ;;
1035 powerpc*-*)
1036 target_makefile_frag="${target_makefile_frag} config/mt-ppcpic"
1037 ;;
bf31116d 1038 alpha*-*-linux*)
9cfb301e
JL
1039 target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic"
1040 ;;
1041 *)
5a67071d 1042 if test -f ${srcdir}/config/mt-${target_cpu}pic; then
8e123593
JL
1043 target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic"
1044 fi
9cfb301e 1045 ;;
45329a2c
JM
1046 esac
1047fi
1048
9cfb301e
JL
1049rm -f mt-frag
1050if [ -n "${target_makefile_frag}" ] ; then
1051 for f in ${target_makefile_frag}
1052 do
1053 cat ${srcdir}/$f >> mt-frag
1054 done
1055 target_makefile_frag=mt-frag
1056fi
1057
ca2ce3b3
ILT
1058# post-target:
1059
b5ae8419
ILT
1060# Make sure that the compiler is able to generate an executable. If it
1061# can't, we are probably in trouble. We don't care whether we can run the
1062# executable--we might be using a cross compiler--we only care whether it
1063# can be created. At this point the main configure script has set CC.
1064echo "int main () { return 0; }" > conftest.c
1065${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
51654893 1066if [ $? = 0 ] && [ -s conftest -o -s conftest.exe ]; then
b5ae8419
ILT
1067 :
1068else
1069 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1070 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1071 rm -f conftest*
1072 exit 1
1073fi
1074rm -f conftest*
1075
0e47ce97
ILT
1076# The Solaris /usr/ucb/cc compiler does not appear to work.
1077case "${host}" in
1078 sparc-sun-solaris2*)
e94c0e40
JM
1079 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1080 if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
0e47ce97
ILT
1081 could_use=
1082 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
1083 if [ -d /opt/cygnus/bin ] ; then
1084 if [ "$could_use" = "" ] ; then
1085 could_use="/opt/cygnus/bin"
1086 else
1087 could_use="$could_use or /opt/cygnus/bin"
1088 fi
1089 fi
1090 if [ "$could_use" = "" ] ; then
1091 echo "Warning: compilation may fail because you're using"
1092 echo "/usr/ucb/cc. You should change your PATH or CC "
1093 echo "variable and rerun configure."
1094 else
1095 echo "Warning: compilation may fail because you're using"
1096 echo "/usr/ucb/cc, when you should use the C compiler from"
1097 echo "$could_use. You should change your"
1098 echo "PATH or CC variable and rerun configure."
1099 fi
1100 fi
1101 ;;
1102esac
1103
294fde1f
ILT
1104# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1105# binutils tools will find libbfd.so.
d4be7765 1106if [ "${shared}" = "yes" ]; then
294fde1f
ILT
1107 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
1108 Makefile > Makefile.tem
1109 rm -f Makefile
1110 mv -f Makefile.tem Makefile
f2693093
ILT
1111
1112 case "${host}" in
1113 *-*-hpux*)
2ac94d51 1114 sed -e 's/^RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
f2693093
ILT
1115 Makefile > Makefile.tem
1116 rm -f Makefile
1117 mv -f Makefile.tem Makefile
1118 ;;
1119 esac
294fde1f
ILT
1120fi
1121
0b0bd98b 1122# If we are building for a win32 host, then set INSTALL_PROGRAM_ARGS to
8270cd76
ILT
1123# -x. This will cause programs to be installed with .exe extensions.
1124case "${host}" in
0b0bd98b 1125*-*-cygwin32* | i[3456]86-*-mingw32)
8270cd76
ILT
1126 sed -e 's/^INSTALL_PROGRAM_ARGS[ ]*=.*$/INSTALL_PROGRAM_ARGS = -x/' \
1127 Makefile > Makefile.tem
1128 rm -f Makefile
1129 mv -f Makefile.tem Makefile
1130 ;;
1131esac
1132
ca2ce3b3 1133# Record target_configdirs and the configure arguments in Makefile.
ab1cbc67 1134target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
ca2ce3b3 1135targargs=`echo "${arguments}" | \
7fc36fda
ILT
1136 sed -e 's/--norecursion//' \
1137 -e 's/--cache[a-z-]*=[^ ]*//' \
1138 -e 's/--ho[a-z-]*=[^ ]*//' \
41547e90 1139 -e 's/--bu[a-z-]*=[^ ]*//' \
7fc36fda
ILT
1140 -e 's/--ta[a-z-]*=[^ ]*//'`
1141
1142# Passing a --with-cross-host argument lets the target libraries know
1143# whether they are being built with a cross-compiler or being built
1144# native. However, it would be better to use other mechanisms to make the
1145# sorts of decisions they want to make on this basis. Please consider
1146# this option to be deprecated. FIXME.
1147if [ x${is_cross_compiler} = xyes ]; then
41547e90 1148 targargs="--with-cross-host=${host_alias} ${targargs}"
7fc36fda
ILT
1149fi
1150
07057350
JM
1151# Default to --enable-multilib.
1152if [ x${enable_multilib} = x ]; then
1153 targargs="--enable-multilib ${targargs}"
1154fi
1155
ff2664fc
ILT
1156# Pass --with-newlib if appropriate. Note that target_configdirs has
1157# changed from the earlier setting of with_newlib.
1158if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1159 targargs="--with-newlib ${targargs}"
1160fi
1161
41547e90 1162targargs="--host=${target_alias} --build=${build_alias} ${targargs}"
ca2ce3b3
ILT
1163sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
1164 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
ab1cbc67 1165 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
ca2ce3b3
ILT
1166 Makefile > Makefile.tem
1167rm -f Makefile
1168mv -f Makefile.tem Makefile
1169
bc58b41d
RP
1170#
1171# Local Variables:
1172# fill-column: 131
1173# End:
1174#
This page took 0.609776 seconds and 4 git commands to generate.