* elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix spelling of
[deliverable/binutils-gdb.git] / configure.in
CommitLineData
9bdd52dd 1##############################################################################
eb02fd64 2
041164e4
DZ
3## This file is a shell script fragment that supplies the information
4## necessary to tailor a template configure script into the configure
5## script appropriate for this directory. For more information, check
6## any existing configure script.
ba4513e7 7
041164e4
DZ
8## Be warned, there are two types of configure.in files. There are those
9## used by Autoconf, which are macros which are expanded into a configure
10## script by autoconf. The other sort, of which this is one, is executed
11## by Cygnus configure.
ba4513e7 12
041164e4
DZ
13## For more information on these two systems, check out the documentation
14## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
ba4513e7 15
9bdd52dd 16##############################################################################
041164e4
DZ
17
18### To add a new directory to the tree, first choose whether it is a target
19### or a host dependent tool. Then put it into the appropriate list
20### (library or tools, host or target), doing a dependency sort. For
21### example, gdb requires that byacc (or bison) be built first, so it is in
22### the ${host_tools} list after byacc and bison.
23
24
25# these libraries are used by various programs built for the host environment
26#
6d3055cb 27host_libs="mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
041164e4 28
f4a7dca7
TL
29if [ "${enable_gdbgui}" = "yes" ] ; then
30 host_libs="${host_libs} libgui"
31fi
32
041164e4
DZ
33# these tools are built for the host environment
34#
35host_tools="texinfo byacc flex bison binutils ld gas gcc gdb make patch
d6c8b354 36 prms send-pr gprof gdbtest tgas etc expect dejagnu sim
e718498b 37 m4 autoconf ispell grep diff rcs cvs fileutils shellutils
e37bb3c7 38 textutils wdiff find emacs emacs19 uudecode hello tar gzip indent
53c403df 39 recode release sed utils guile perl apache"
041164e4
DZ
40
41
9bdd52dd
DZ
42# these libraries are built for the target environment, and are built after
43# the host libraries and the host tools (which may be a cross compiler)
041164e4 44#
77cd090a 45target_libs="target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
6218894f 46
041164e4 47
9bdd52dd 48# these tools are built using the target libs, and are intended to run only
9623e828 49# in the target environment
83a47678 50#
9bdd52dd
DZ
51# note: any program that *uses* libraries that are in the "target_libs"
52# list belongs in this list. those programs are also very likely
53# candidates for the "native_only" list which follows
041164e4 54#
b58d9e5d 55target_tools="target-examples target-groff"
041164e4
DZ
56
57################################################################################
58
59## These two lists are of directories that are to be removed from the
60## ${configdirs} list for either cross-compilations or for native-
61## compilations. For example, it doesn't make that much sense to
ab1cbc67 62## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
041164e4
DZ
63## a native environment.
64
65# directories to be built in the native environment only
66#
b58d9e5d 67native_only="autoconf cvs emacs emacs19 fileutils find grep gzip hello
86c3abaa 68 indent ispell m4 rcs recode sed shellutils tar textutils gash
53c403df 69 uudecode wdiff gprof target-groff guile perl apache"
041164e4 70
9bdd52dd 71# directories to be built in a cross environment only
041164e4 72#
ab1cbc67 73cross_only="target-libiberty target-libgloss target-newlib"
041164e4
DZ
74
75## All tools belong in one of the four categories, and are assigned above
8f30a41e
DE
76## We assign ${configdirs} this way to remove all embedded newlines. This
77## is important because configure will choke if they ever get through.
ca2ce3b3
ILT
78## ${configdirs} is directories we build using the host tools.
79## ${target_configdirs} is directories we build using the target tools.
041164e4 80#
ca2ce3b3
ILT
81configdirs=`echo ${host_libs} ${host_tools}`
82target_configdirs=`echo ${target_libs} ${target_tools}`
041164e4
DZ
83
84################################################################################
ba4513e7 85
378fd382 86srctrigger=move-if-change
eb02fd64 87srcname="gnu development package"
0df06ca0 88
af9fa3c1
ILT
89# This gets set non-empty for some net releases of packages.
90appdirs=""
91
0df06ca0
RP
92# per-host:
93
594c548a
DM
94# Work in distributions that contain no compiler tools, like Autoconf.
95if [ -d ${srcdir}/config ]; then
cec673a2 96case "${host}" in
c71350fc 97 m68k-hp-hpux*) host_makefile_frag=config/mh-hp300 ;;
cec673a2
DZ
98 m68k-apollo-sysv*) host_makefile_frag=config/mh-apollo68 ;;
99 m68k-apollo-bsd*) host_makefile_frag=config/mh-a68bsd ;;
769e064d 100 m68k-*-linux*) host_makefile_frag=config/mh-linux ;;
cec673a2 101 m88k-dg-dgux*) host_makefile_frag=config/mh-dgux ;;
48de3495
SS
102 m88k-harris-cxux*) host_makefile_frag=config/mh-cxux ;;
103 m88k-motorola-sysv*) host_makefile_frag=config/mh-delta88;;
e718498b 104 mips*-dec-ultrix*) host_makefile_frag=config/mh-decstation ;;
a527d9d7 105 mips*-nec-sysv4*) host_makefile_frag=config/mh-necv4 ;;
031eff55 106 mips*-sgi-irix[56]*) host_makefile_frag=config/mh-irix5 ;;
e718498b
DZ
107 mips*-sgi-irix4*) host_makefile_frag=config/mh-irix4 ;;
108 mips*-sgi-irix3*) host_makefile_frag=config/mh-sysv ;;
49ad26c2 109 mips*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
e718498b 110 mips*-*-sysv*) host_makefile_frag=config/mh-riscos ;;
7e290a5d 111 i[345]86-ncr-sysv4.3) host_makefile_frag=config/mh-ncrsvr43 ;;
a73fc881 112 i[345]86-ncr-sysv4*) host_makefile_frag=config/mh-ncr3000 ;;
a48876fc 113 i[345]86-*-sco3.2v5*) host_makefile_frag=config/mh-sysv ;;
a73fc881
ILT
114 i[345]86-*-sco*) host_makefile_frag=config/mh-sco ;;
115 i[345]86-*-isc*) host_makefile_frag=config/mh-sysv ;;
116 i[345]86-*-linux*) host_makefile_frag=config/mh-linux ;;
117 i[345]86-*-solaris2*) host_makefile_frag=config/mh-sysv4 ;;
118 i[345]86-*-aix*) host_makefile_frag=config/mh-aix386 ;;
119 i[345]86-*-go32*) host_makefile_frag=config/mh-go32 ;;
d3c06c91 120 vax-*-ultrix2*) host_makefile_frag=config/mh-vaxult2 ;;
54fdaa7b 121 *-*-solaris2*) host_makefile_frag=config/mh-solaris ;;
39772dd8 122 m68k-sun-sunos*) host_makefile_frag=config/mh-sun3 ;;
0259fc73 123 *-hp-hpux[78]*) host_makefile_frag=config/mh-hpux8 ;;
c71350fc 124 *-hp-hpux*) host_makefile_frag=config/mh-hpux ;;
9117f609 125 *-*-hiux*) host_makefile_frag=config/mh-hpux ;;
af9fa3c1 126 rs6000-*-lynxos*) host_makefile_frag=config/mh-lynxrs6k ;;
89c27486 127 *-*-lynxos*) host_makefile_frag=config/mh-lynxos ;;
fab5d4e3
DZ
128 *-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
129 *-*-sysv*) host_makefile_frag=config/mh-sysv ;;
f4bda0ff 130esac
594c548a 131fi
f4bda0ff 132
0e47ce97
ILT
133# If we aren't going to be using gcc, see if we can extract a definition
134# of CC from the fragment.
135if [ -z "${CC}" -a "${build}" = "${host}" ]; then
136 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
137 found=
138 for dir in $PATH; do
139 test -z "$dir" && dir=.
140 if test -f $dir/gcc; then
141 found=yes
142 break
143 fi
144 done
145 IFS="$save_ifs"
146 if [ -z "${found}" -a -n "${host_makefile_frag}" -a -f "${srcdir}/${host_makefile_frag}" ]; then
2f9bfdfa
SG
147 xx=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
148 if [ -n "${xx}" ] ; then
149 CC=$xx
150 fi
ca2ce3b3
ILT
151 fi
152fi
153
45329a2c
JM
154# We default to --with-shared on platforms where -fpic is meaningless.
155# Well, we don't yet, but we will.
156if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
157 case "${target}" in
158 alpha-dec-osf*) enable_shared=yes ;;
159 mips-sgi-irix5*) enable_shared=yes ;;
160 *) enable_shared=no ;;
161 esac
162fi
163
d4be7765
ILT
164case "${enable_shared}" in
165 yes) shared=yes ;;
166 no) shared=no ;;
feb522ad 167 "") shared=no ;;
d4be7765
ILT
168 *) shared=yes ;;
169esac
170
171if [ x${shared} = xyes ]; then
45329a2c
JM
172 waugh=
173 case "${host}" in
c9e55665
JM
174 hppa*) waugh=config/mh-papic ;;
175 i[345]86-*) waugh=config/mh-x86pic ;;
be317b06 176 sparc64-*) waugh=config/mh-sparcpic ;;
c9e55665 177 *) waugh=config/mh-${host_cpu}pic ;;
45329a2c 178 esac
4350753e
JM
179 if [ -f ${srcdir}/${waugh} ]; then
180 if [ -n "${host_makefile_frag}" ] ; then
181 cat ${srcdir}/${host_makefile_frag} > mh-frag
182 cat ${srcdir}/${waugh} >> mh-frag
183 host_makefile_frag=mh-frag
c9e55665
JM
184 else
185 host_makefile_frag=${waugh}
4350753e 186 fi
45329a2c
JM
187 fi
188fi
189
0df06ca0 190# per-target:
bc58b41d 191
9ab10a5b
SEF
192case "${target}" in
193 v810*) target_makefile_frag=config/mt-v810 ;;
138e8532
JM
194 i[345]86-*-netware*) target_makefile_frag=config/mt-netware ;;
195 powerpc-*-netware*) target_makefile_frag=config/mt-netware ;;
9ab10a5b
SEF
196esac
197
ca2ce3b3 198skipdirs=
719cb03f
DZ
199gasdir=gas
200use_gnu_ld=
201use_gnu_as=
202
9f579565
DZ
203# some tools are so dependent upon X11 that if we're not building with X,
204# it's not even worth trying to configure, much less build, that tool.
205
206case ${with_x} in
e13fa011 207 yes | "") # the default value for this tree is that X11 is available
6a42d184 208 ;;
e13fa011 209 no)
ca2ce3b3 210 skipdirs="${skipdirs} tk gash"
9f579565
DZ
211 ;;
212 *)
213 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
214 ;;
215esac
216
5357f128 217# Some tools are only suitable for building in a "native" situation.
ba4513e7
DZ
218# Those are added when we have a host==target configuration. For cross
219# toolchains, we add some directories that should only be useful in a
220# cross-compiler.
43557c0a 221
2a38983c
DHW
222is_cross_compiler=
223
94028943 224if [ x"${host}" = x"${target}" ] ; then
041164e4
DZ
225 # when doing a native toolchain, don't build the targets
226 # that are in the 'cross only' list
ca2ce3b3 227 skipdirs="${skipdirs} ${cross_only}"
2a38983c 228 is_cross_compiler=no
ab1cbc67 229 target_subdir=.
43557c0a 230else
041164e4
DZ
231 # similarly, don't build the targets in the 'native only'
232 # list when building a cross compiler
ca2ce3b3 233 skipdirs="${skipdirs} ${native_only}"
2a38983c 234 is_cross_compiler=yes
ab1cbc67
PB
235 target_subdir=${target_alias}
236 if [ ! -d ${target_subdir} ] ; then
237 if mkdir ${target_subdir} ; then true
238 else
239 echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
240 exit 1
241 fi
242 fi
43557c0a
DZ
243fi
244
055cca84
ILT
245copy_dirs=
246
247# Handle --with-headers=XXX. The contents of the named directory are
52b5deb9 248# copied to $(tooldir)/sys-include.
055cca84
ILT
249if [ x"${with_headers}" != x ]; then
250 if [ x${is_cross_compiler} = xno ]; then
251 echo 1>&2 '***' --with-headers is only supported when cross compiling
252 exit 1
253 fi
254 case "${exec_prefixoption}" in
255 "") x=${prefix} ;;
256 *) x=${exec_prefix} ;;
257 esac
52b5deb9 258 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
055cca84
ILT
259fi
260
261# Handle --with-libs=XXX. Multiple directories are permitted. The
262# contents are copied to $(tooldir)/lib.
263if [ x"${with_libs}" != x ]; then
264 if [ x${is_cross_compiler} = xno ]; then
265 echo 1>&2 '***' --with-libs is only supported when cross compiling
266 exit 1
267 fi
268 # Copy the libraries in reverse order, so that files in the first named
269 # library override files in subsequent libraries.
270 case "${exec_prefixoption}" in
271 "") x=${prefix} ;;
272 *) x=${exec_prefix} ;;
273 esac
274 for l in ${with_libs}; do
275 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
276 done
277fi
278
279# If both --with-headers and --with-libs are specified, default to
280# --without-newlib.
281if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
282 if [ x"${with_newlib}" = x ]; then
283 with_newlib=no
284 fi
285fi
286
99dff294 287# Recognize --with-newlib/--without-newlib.
055cca84 288if [ x${with_newlib} = xno ]; then
ab1cbc67 289 skipdirs="${skipdirs} target-newlib"
99dff294 290elif [ x${with_newlib} = xyes ]; then
ab1cbc67 291 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
055cca84
ILT
292fi
293
4f0ad91b
ILT
294# Default to using --with-stabs for certain targets.
295if [ x${with_stabs} = x ]; then
296 case "${target}" in
297 mips*-*-* | alpha*-*-osf* | i[345]86*-*-sysv4* | i[345]86*-*-unixware*)
298 with_stabs=yes;
299 withoptions="${withoptions} --with-stabs"
300 ;;
301 esac
302fi
303
055cca84
ILT
304# Handle ${copy_dirs}
305set fnord ${copy_dirs}
306shift
307while [ $# != 0 ]; do
308 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
309 :
310 else
311 echo Copying $1 to $2
312
313 # Use the install script to create the directory and all required
314 # parent directories.
315 if [ -d $2 ]; then
316 :
317 else
318 echo >config.temp
319 ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
320 fi
321
322 # Copy the directory, assuming we have tar.
323 # FIXME: Should we use B in the second tar? Not all systems support it.
324 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
325
326 # It is the responsibility of the user to correctly adjust all
327 # symlinks. If somebody can figure out how to handle them correctly
328 # here, feel free to add the code.
329
330 echo $1 > $2/COPIED
331 fi
332 shift; shift
333done
334
eebd76cb
SC
335# Configure extra directories which are host specific
336
337case "${host}" in
9daacfc4 338 i[345]86-*-go32*)
a220ba0f 339 configdirs="$configdirs dosrel" ;;
eebd76cb
SC
340esac
341
5357f128 342# Remove more programs from consideration, based on the host or
dfa891fc 343# target this usually means that a port of the program doesn't
8ae559b7 344# exist yet.
dfa891fc 345
52e3ad87
KR
346noconfigdirs=""
347
9f579565 348case "${host}" in
a73fc881 349 i[345]86-*-vsta)
53c403df 350 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache"
8a3871bb 351 ;;
a73fc881 352 i[345]86-*-go32)
53c403df 353 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache"
8c7fd353 354 ;;
9daacfc4 355 *-*-cygwin32)
53c403df 356 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs guile perl apache"
9f579565 357 ;;
a51794f1 358 ppc*-*-pe)
53c403df 359 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs guile perl apache"
a51794f1 360 ;;
9f579565 361esac
dfa891fc 362
eebd76cb 363
43557c0a 364case "${target}" in
0f45fbc1 365 *-*-netware)
35cb2108 366 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty target-libgloss"
0f45fbc1 367 ;;
406477a6 368 *-*-vxworks*)
35cb2108 369 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
849367a2 370 ;;
8e85fd5f
MS
371 *-*-ose)
372 noconfigdirs="$noconfigdirs target-libgloss"
373 ;;
6bd3f765
ILT
374 alpha-dec-osf*)
375 # ld works, but does not support shared libraries. emacs doesn't
f4791d95 376 # work. newlib is not 64 bit ready. I'm not sure about fileutils or grep.
2a3486d2 377 # gas doesn't generate exception information.
35cb2108 378 noconfigdirs="$noconfigdirs gas ld emacs fileutils grep target-newlib target-libgloss"
0f45fbc1 379 ;;
04b9315f 380 alpha*-*-*)
6bd3f765 381 # newlib is not 64 bit ready
35cb2108 382 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
0f45fbc1 383 ;;
7c71fc39
DE
384# start-sanitize-arc
385 arc-*-*)
35cb2108 386 noconfigdirs="$noconfigdirs target-libgloss"
7c71fc39
DE
387 ;;
388# end-sanitize-arc
bf150019 389 arm-*-pe*)
35cb2108 390 noconfigdirs="$noconfigdirs target-libgloss"
bf150019 391 ;;
ff15324f 392 arm-*-riscix*)
35cb2108 393 noconfigdirs="$noconfigdirs ld target-libgloss"
318b02b6 394 ;;
52e3ad87 395 h8300*-*-* | \
8388b9df 396 h8500-*-*)
35cb2108 397 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
15ae586e 398 ;;
8a71f0f3 399 hppa*-*-*elf* | \
55ac59da 400 hppa*-*-lites*)
8c92a7d1 401 # Do configure ld/binutils/gas for this case.
99a5da15 402 ;;
15ae586e 403 hppa*-*-*)
408f64bc
JK
404 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
405 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 406 # whatever they want. FIXME, emacs emacs19).
8b5405d2 407 case "${CC}" in
e37bb3c7 408 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 409 *) ;;
8b5405d2 410 esac
d9f1d487 411 noconfigdirs="$noconfigdirs ld shellutils"
15ae586e 412 ;;
a73fc881 413 i[345]86-*-go32)
632ee4a1 414 # but don't build gdb
ab1cbc67 415 noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
8c92a7d1 416 ;;
9daacfc4
SC
417 *-*-cygwin32)
418
600b2f21 419 # make/glob's configure uses some AC_TRY_RUN type tests
77cd090a 420 target_configdirs="$target_configdirs target-winsup"
35cb2108 421 noconfigdirs="$noconfigdirs tcl tk expect make target-libgloss"
e1a1ddc6 422 # always build newlib.
ab1cbc67 423 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
9daacfc4
SC
424
425 # Can't build gdb for cygwin32 if not native.
44ccfc3c
MM
426 case "${host}:${build}" in
427 *-*-cygwin32 | *-*-cygwin32:*-*-cygwin32) ;; # keep gdb
9daacfc4
SC
428 *) noconfigdirs="$noconfigdirs gdb"
429 esac
430
a220ba0f 431 ;;
8c7fd353 432 i[345]86-*-pe)
35cb2108 433 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
8c7fd353 434 ;;
a48876fc
SS
435 i[345]86-*-sco3.2v5*)
436 # The linker does not yet know about weak symbols in COFF,
437 # and is not configured to handle mixed ELF and COFF.
35cb2108 438 noconfigdirs="$noconfigdirs gprof ld target-libgloss"
a48876fc 439 ;;
a73fc881 440 i[345]86-*-sco*)
35cb2108 441 noconfigdirs="$noconfigdirs gprof target-libgloss"
de9117a7 442 ;;
a73fc881 443 i[345]86-*-solaris2*)
320c9fff
KR
444 # The linker does static linking correctly, but the Solaris C library
445 # has bugs such that some important functions won't work when statically
446 # linked. (See man pages for getpwuid, for example.)
35cb2108 447 noconfigdirs="$noconfigdirs ld target-libgloss"
320c9fff 448 ;;
a73fc881 449 i[345]86-*-sysv4*)
8b5405d2
DZ
450 # The SYSV4 C compiler doesn't handle Emacs correctly
451 case "${CC}" in
e37bb3c7 452 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
453 *) ;;
454 esac
455 # but that's okay since emacs doesn't work anyway
35cb2108 456 noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss"
8b5405d2 457 ;;
3e1e245d
ILT
458 powerpc-*-aix*)
459 # copied from rs6000-*-* entry
35cb2108 460 noconfigdirs="$noconfigdirs gprof cvs target-libgloss"
3e1e245d 461 ;;
a51794f1
JM
462 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
463 target_configdirs="$target_configdirs target-winsup"
35cb2108 464 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss"
a51794f1
JM
465 # always build newlib.
466 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
81d08d0c 467 ;;
2a38983c 468 rs6000-*-lynxos*)
2a38983c
DHW
469 # The CVS server code doesn't work on the RS/6000
470 # Newlib makes problems for libg++ in crosses.
92caaa6a 471 noconfigdirs="$noconfigdirs target-newlib gprof cvs"
2a38983c 472 ;;
8388b9df 473 rs6000-*-*)
92caaa6a 474 noconfigdirs="$noconfigdirs gprof"
fcf4d286 475 ;;
becf2d8a 476 m68k-apollo-*)
35cb2108 477 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
becf2d8a 478 ;;
04b9315f
ILT
479 mips*-*-irix5*)
480 # The GNU linker does not support shared libraries.
82633710 481 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
35cb2108 482 noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
04b9315f 483 ;;
af9fa3c1 484 mips*-dec-bsd*)
35cb2108 485 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1
ILT
486 ;;
487 mips*-*-bsd*)
35cb2108 488 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1 489 ;;
04b9315f 490 mips*-*-*)
52e3ad87 491 noconfigdirs="$noconfigdirs gprof"
fcf4d286 492 ;;
de9117a7 493 romp-*-*)
35cb2108 494 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss"
de9117a7 495 ;;
817382d1 496 sh-*-*)
719cb03f 497 case "${host}" in
a73fc881 498 i[345]86-*-vsta) ;; # don't add gprof back in
a73fc881 499 i[345]86-*-go32) ;; # don't add gprof back in
ca2ce3b3 500 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
719cb03f 501 esac
35cb2108 502 noconfigdirs="$noconfigdirs target-libgloss"
719cb03f
DZ
503 ;;
504 sparc-*-sunos4*)
2a38983c 505 if [ x${is_cross_compiler} != xno ] ; then
35cb2108 506 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
2a38983c
DHW
507 else
508 use_gnu_ld=no
509 fi
1f69e88d 510 ;;
486e0f0a 511 v810-*-*)
35cb2108 512 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss"
486e0f0a 513 ;;
de9117a7 514 vax-*-vms)
35cb2108 515 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
de9117a7
KR
516 ;;
517 vax-*-*)
35cb2108 518 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
8388b9df 519 ;;
de9117a7 520 *-*-lynxos*)
19b1d034 521 # Newlib makes problems for libg++ in crosses.
35cb2108 522 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
19b1d034
SS
523 ;;
524 *-*-macos* | \
525 *-*-mpw*)
526 # Macs want a resource compiler.
527 configdirs="$configdirs grez"
528 ;;
05cd8d98
HS
529esac
530
fcfcbf27 531# targets that need a second pass
0807a8af
GN
532case "${target}" in
533 *-gm-magic*)
35cb2108 534 noconfigdirs="$noconfigdirs target-libgloss"
0807a8af
GN
535 ;;
536esac
537
9a8629d5
ILT
538# If we aren't building newlib, then don't build libgloss, since libgloss
539# depends upon some newlib header files.
540case "${noconfigdirs}" in
541 *target-libgloss*) ;;
542 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
543esac
544
bfe725ec
ILT
545# If we are building a Canadian Cross, discard tools that can not be built
546# using a cross compiler. FIXME: These tools should be fixed.
547if [ "${build}" != "${host}" ]; then
548 noconfigdirs="$noconfigdirs expect dejagnu make texinfo diff"
549fi
550
d4cf72b3
BK
551# Make sure we don't let GNU ld be added if we didn't want it.
552if [ x$with_gnu_ld = xno ]; then
553 use_gnu_ld=no
554 noconfigdirs="$noconfigdirs ld"
0b0124c6
BK
555fi
556
d4cf72b3
BK
557# Make sure we don't let GNU as be added if we didn't want it.
558if [ x$with_gnu_as = xno ]; then
559 use_gnu_as=no
560 noconfigdirs="$noconfigdirs gas"
0b0124c6
BK
561fi
562
ca2ce3b3
ILT
563# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
564# $target_configdirs.
565# If we have the source for $noconfigdirs entries, add them to $notsupp.
efd7b806 566
52e3ad87 567notsupp=""
ca2ce3b3 568for dir in . $skipdirs $noconfigdirs ; do
b58d9e5d 569 dirname=`echo $dir | sed -e s/target-//g`
1c15a33d 570 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 571 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
572 if [ -r $srcdir/$dirname/configure ] \
573 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
574 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
575 true
576 else
577 notsupp="$notsupp $dir"
578 fi
579 fi
580 fi
581 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
582 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
583 if [ -r $srcdir/$dirname/configure ] \
584 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
585 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
586 true
587 else
588 notsupp="$notsupp $dir"
589 fi
52e3ad87
KR
590 fi
591 fi
592done
593
fba66802
ILT
594# Sometimes the tools are distributed with libiberty but with no other
595# libraries. In that case, we don't want to build target-libiberty.
596if [ -n "${target_configdirs}" ]; then
597 others=
b58d9e5d 598 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
fba66802
ILT
599 if [ "$i" != "libiberty" ]; then
600 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
601 others=yes;
602 break;
603 fi
604 fi
605 done
606 if [ -z "${others}" ]; then
607 target_configdirs=
608 fi
609fi
610
ca2ce3b3
ILT
611# Deconfigure all subdirectories, in case we are changing the
612# configuration from one where a subdirectory is supported to one where it
613# is not.
ab1cbc67 614if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
b58d9e5d 615 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
ca2ce3b3
ILT
616 rm -f $i/Makefile
617 done
618fi
ab1cbc67 619if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
9bbc0d58 620 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
ab1cbc67
PB
621 rm -f ${target_subdir}/$i/Makefile
622 done
623fi
ca2ce3b3 624
52e3ad87
KR
625# Produce a warning message for the subdirs we can't configure.
626# This isn't especially interesting in the Cygnus tree, but in the individual
627# FSF releases, it's important to let people know when their machine isn't
628# supported by the one or two programs in a package.
629
9fe444b5 630if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
631 # If $appdirs is non-empty, at least one of those directories must still
632 # be configured, or we error out. (E.g., if the gas release supports a
633 # specified target in some subdirs but not the gas subdir, we shouldn't
634 # pretend that all is well.)
635 if [ -n "$appdirs" ]; then
636 for dir in $appdirs ; do
ca2ce3b3
ILT
637 if [ -r $dir/Makefile.in ]; then
638 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
639 appdirs=""
640 break
641 fi
642 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
643 appdirs=""
644 break
645 fi
af9fa3c1
ILT
646 fi
647 done
648 if [ -n "$appdirs" ]; then
649 echo "*** This configuration is not supported by this package." 1>&2
650 exit 1
651 fi
652 fi
653 # Okay, some application will build, or we don't care to check. Still
654 # notify of subdirs not getting built.
52e3ad87
KR
655 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
656 echo " ${notsupp}" 1>&2
657 echo " (Any other directories should still work fine.)" 1>&2
658fi
659
d4cf72b3
BK
660# Set with_gnu_as and with_gnu_ld as appropriate.
661#
662# This is done by determining whether or not the appropriate directory
663# is available, and by checking whether or not specific configurations
664# have requested that this magic not happen.
665#
666# The command line options always override the explicit settings in
667# configure.in, and the settings in configure.in override this magic.
668#
669# If the default for a toolchain is to use GNU as and ld, and you don't
670# want to do that, then you should use the --without-gnu-as and
671# --without-gnu-ld options for the configure script.
672
673if [ x${use_gnu_as} = x ] ; then
674 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
675 with_gnu_as=yes
676 withoptions="$withoptions --with-gnu-as"
677 fi
678fi
679
680if [ x${use_gnu_ld} = x ] ; then
681 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
682 with_gnu_ld=yes
683 withoptions="$withoptions --with-gnu-ld"
684 fi
685fi
686
d4be7765 687if [ x${shared} = xyes ]; then
45329a2c 688 case "${target}" in
c9e55665
JM
689 hppa*) target_makefile_frag=config/mt-papic ;;
690 i[345]86-*) target_makefile_frag=config/mt-x86pic ;;
691 *) target_makefile_frag=config/mt-${target_cpu}pic ;;
45329a2c
JM
692 esac
693fi
694
ca2ce3b3
ILT
695# post-target:
696
b5ae8419
ILT
697# Make sure that the compiler is able to generate an executable. If it
698# can't, we are probably in trouble. We don't care whether we can run the
699# executable--we might be using a cross compiler--we only care whether it
700# can be created. At this point the main configure script has set CC.
701echo "int main () { return 0; }" > conftest.c
702${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
703if [ $? = 0 ] && [ -s conftest ]; then
704 :
705else
706 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
707 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
708 rm -f conftest*
709 exit 1
710fi
711rm -f conftest*
712
0e47ce97
ILT
713# The Solaris /usr/ucb/cc compiler does not appear to work.
714case "${host}" in
715 sparc-sun-solaris2*)
e94c0e40
JM
716 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
717 if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
0e47ce97
ILT
718 could_use=
719 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
720 if [ -d /opt/cygnus/bin ] ; then
721 if [ "$could_use" = "" ] ; then
722 could_use="/opt/cygnus/bin"
723 else
724 could_use="$could_use or /opt/cygnus/bin"
725 fi
726 fi
727 if [ "$could_use" = "" ] ; then
728 echo "Warning: compilation may fail because you're using"
729 echo "/usr/ucb/cc. You should change your PATH or CC "
730 echo "variable and rerun configure."
731 else
732 echo "Warning: compilation may fail because you're using"
733 echo "/usr/ucb/cc, when you should use the C compiler from"
734 echo "$could_use. You should change your"
735 echo "PATH or CC variable and rerun configure."
736 fi
737 fi
738 ;;
739esac
740
294fde1f
ILT
741# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
742# binutils tools will find libbfd.so.
d4be7765 743if [ "${shared}" = "yes" ]; then
294fde1f
ILT
744 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
745 Makefile > Makefile.tem
746 rm -f Makefile
747 mv -f Makefile.tem Makefile
f2693093
ILT
748
749 case "${host}" in
750 *-*-hpux*)
751 sed -e 's/RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
752 Makefile > Makefile.tem
753 rm -f Makefile
754 mv -f Makefile.tem Makefile
755 ;;
756 esac
294fde1f
ILT
757fi
758
ca2ce3b3 759# Record target_configdirs and the configure arguments in Makefile.
ab1cbc67 760target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
ca2ce3b3 761targargs=`echo "${arguments}" | \
7fc36fda
ILT
762 sed -e 's/--norecursion//' \
763 -e 's/--cache[a-z-]*=[^ ]*//' \
764 -e 's/--ho[a-z-]*=[^ ]*//' \
765 -e 's/--ta[a-z-]*=[^ ]*//'`
766
767# Passing a --with-cross-host argument lets the target libraries know
768# whether they are being built with a cross-compiler or being built
769# native. However, it would be better to use other mechanisms to make the
770# sorts of decisions they want to make on this basis. Please consider
771# this option to be deprecated. FIXME.
772if [ x${is_cross_compiler} = xyes ]; then
90bdf864 773 targargs="--with-cross-host=${host_alias} ${targargs}"
7fc36fda
ILT
774fi
775
776targargs="--host=${target_alias} ${targargs}"
ca2ce3b3
ILT
777sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
778 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
ab1cbc67 779 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
ca2ce3b3
ILT
780 Makefile > Makefile.tem
781rm -f Makefile
782mv -f Makefile.tem Makefile
783
bc58b41d
RP
784#
785# Local Variables:
786# fill-column: 131
787# End:
788#
This page took 0.231161 seconds and 4 git commands to generate.