* compile.c (sim_resume): Correctly handle divu.
[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
ed21219c 39 recode release sed utils guile perl apache inet"
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
ed21219c 69 uudecode wdiff gprof target-groff guile perl apache inet"
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)
ed21219c 350 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet"
8a3871bb 351 ;;
a73fc881 352 i[345]86-*-go32)
ed21219c 353 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet"
8c7fd353 354 ;;
9daacfc4 355 *-*-cygwin32)
bc68eff4 356 noconfigdirs="patch diff tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs guile perl apache inet"
9f579565 357 ;;
a51794f1 358 ppc*-*-pe)
bc68eff4 359 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs guile perl apache inet"
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 417 *-*-cygwin32)
77cd090a 418 target_configdirs="$target_configdirs target-winsup"
bc68eff4 419 noconfigdirs="$noconfigdirs tcl tk expect target-libgloss"
e1a1ddc6 420 # always build newlib.
ab1cbc67 421 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
9daacfc4
SC
422
423 # Can't build gdb for cygwin32 if not native.
44ccfc3c
MM
424 case "${host}:${build}" in
425 *-*-cygwin32 | *-*-cygwin32:*-*-cygwin32) ;; # keep gdb
9daacfc4
SC
426 *) noconfigdirs="$noconfigdirs gdb"
427 esac
a220ba0f 428 ;;
8c7fd353 429 i[345]86-*-pe)
35cb2108 430 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
8c7fd353 431 ;;
a48876fc
SS
432 i[345]86-*-sco3.2v5*)
433 # The linker does not yet know about weak symbols in COFF,
434 # and is not configured to handle mixed ELF and COFF.
35cb2108 435 noconfigdirs="$noconfigdirs gprof ld target-libgloss"
a48876fc 436 ;;
a73fc881 437 i[345]86-*-sco*)
35cb2108 438 noconfigdirs="$noconfigdirs gprof target-libgloss"
de9117a7 439 ;;
a73fc881 440 i[345]86-*-solaris2*)
320c9fff
KR
441 # The linker does static linking correctly, but the Solaris C library
442 # has bugs such that some important functions won't work when statically
443 # linked. (See man pages for getpwuid, for example.)
35cb2108 444 noconfigdirs="$noconfigdirs ld target-libgloss"
320c9fff 445 ;;
a73fc881 446 i[345]86-*-sysv4*)
8b5405d2
DZ
447 # The SYSV4 C compiler doesn't handle Emacs correctly
448 case "${CC}" in
e37bb3c7 449 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
450 *) ;;
451 esac
452 # but that's okay since emacs doesn't work anyway
35cb2108 453 noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss"
8b5405d2 454 ;;
3e1e245d
ILT
455 powerpc-*-aix*)
456 # copied from rs6000-*-* entry
35cb2108 457 noconfigdirs="$noconfigdirs gprof cvs target-libgloss"
3d40ace0
ILT
458 # This is needed until gcc and ld are fixed to work together.
459 use_gnu_ld=no
3e1e245d 460 ;;
a51794f1
JM
461 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
462 target_configdirs="$target_configdirs target-winsup"
35cb2108 463 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss"
a51794f1
JM
464 # always build newlib.
465 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
81d08d0c 466 ;;
8970d123
MM
467 # This is temporary until we finish the gdb port.
468 powerpcle-*-solaris*)
2f14f781 469 noconfigdirs="$noconfigdirs gdb tk tcl"
8970d123 470 ;;
2a38983c 471 rs6000-*-lynxos*)
2a38983c
DHW
472 # The CVS server code doesn't work on the RS/6000
473 # Newlib makes problems for libg++ in crosses.
92caaa6a 474 noconfigdirs="$noconfigdirs target-newlib gprof cvs"
2a38983c 475 ;;
3d40ace0
ILT
476 rs6000-*-aix*)
477 noconfigdirs="$noconfigdirs gprof"
478 # This is needed until gcc and ld are fixed to work together.
479 use_gnu_ld=no
480 ;;
8388b9df 481 rs6000-*-*)
92caaa6a 482 noconfigdirs="$noconfigdirs gprof"
fcf4d286 483 ;;
becf2d8a 484 m68k-apollo-*)
35cb2108 485 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
becf2d8a 486 ;;
04b9315f
ILT
487 mips*-*-irix5*)
488 # The GNU linker does not support shared libraries.
82633710 489 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
35cb2108 490 noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
04b9315f 491 ;;
af9fa3c1 492 mips*-dec-bsd*)
35cb2108 493 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1
ILT
494 ;;
495 mips*-*-bsd*)
35cb2108 496 noconfigdirs="$noconfigdirs gprof target-libgloss"
af9fa3c1 497 ;;
04b9315f 498 mips*-*-*)
52e3ad87 499 noconfigdirs="$noconfigdirs gprof"
fcf4d286 500 ;;
de9117a7 501 romp-*-*)
35cb2108 502 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss"
de9117a7 503 ;;
817382d1 504 sh-*-*)
719cb03f 505 case "${host}" in
a73fc881 506 i[345]86-*-vsta) ;; # don't add gprof back in
a73fc881 507 i[345]86-*-go32) ;; # don't add gprof back in
ca2ce3b3 508 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
719cb03f 509 esac
35cb2108 510 noconfigdirs="$noconfigdirs target-libgloss"
719cb03f
DZ
511 ;;
512 sparc-*-sunos4*)
2a38983c 513 if [ x${is_cross_compiler} != xno ] ; then
35cb2108 514 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
2a38983c
DHW
515 else
516 use_gnu_ld=no
517 fi
1f69e88d 518 ;;
486e0f0a 519 v810-*-*)
35cb2108 520 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss"
486e0f0a 521 ;;
de9117a7 522 vax-*-vms)
35cb2108 523 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
de9117a7
KR
524 ;;
525 vax-*-*)
35cb2108 526 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
8388b9df 527 ;;
de9117a7 528 *-*-lynxos*)
19b1d034 529 # Newlib makes problems for libg++ in crosses.
35cb2108 530 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
19b1d034
SS
531 ;;
532 *-*-macos* | \
533 *-*-mpw*)
534 # Macs want a resource compiler.
535 configdirs="$configdirs grez"
536 ;;
05cd8d98
HS
537esac
538
fcfcbf27 539# targets that need a second pass
0807a8af
GN
540case "${target}" in
541 *-gm-magic*)
35cb2108 542 noconfigdirs="$noconfigdirs target-libgloss"
0807a8af
GN
543 ;;
544esac
545
9a8629d5
ILT
546# If we aren't building newlib, then don't build libgloss, since libgloss
547# depends upon some newlib header files.
548case "${noconfigdirs}" in
549 *target-libgloss*) ;;
550 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
551esac
552
bfe725ec
ILT
553# If we are building a Canadian Cross, discard tools that can not be built
554# using a cross compiler. FIXME: These tools should be fixed.
555if [ "${build}" != "${host}" ]; then
556 noconfigdirs="$noconfigdirs expect dejagnu make texinfo diff"
557fi
558
d4cf72b3
BK
559# Make sure we don't let GNU ld be added if we didn't want it.
560if [ x$with_gnu_ld = xno ]; then
561 use_gnu_ld=no
562 noconfigdirs="$noconfigdirs ld"
0b0124c6
BK
563fi
564
d4cf72b3
BK
565# Make sure we don't let GNU as be added if we didn't want it.
566if [ x$with_gnu_as = xno ]; then
567 use_gnu_as=no
568 noconfigdirs="$noconfigdirs gas"
0b0124c6
BK
569fi
570
ca2ce3b3
ILT
571# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
572# $target_configdirs.
573# If we have the source for $noconfigdirs entries, add them to $notsupp.
efd7b806 574
52e3ad87 575notsupp=""
ca2ce3b3 576for dir in . $skipdirs $noconfigdirs ; do
b58d9e5d 577 dirname=`echo $dir | sed -e s/target-//g`
1c15a33d 578 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 579 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
580 if [ -r $srcdir/$dirname/configure ] \
581 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
582 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
583 true
584 else
585 notsupp="$notsupp $dir"
586 fi
587 fi
588 fi
589 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
590 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
591 if [ -r $srcdir/$dirname/configure ] \
592 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
593 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
594 true
595 else
596 notsupp="$notsupp $dir"
597 fi
52e3ad87
KR
598 fi
599 fi
600done
601
fba66802
ILT
602# Sometimes the tools are distributed with libiberty but with no other
603# libraries. In that case, we don't want to build target-libiberty.
604if [ -n "${target_configdirs}" ]; then
605 others=
b58d9e5d 606 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
fba66802
ILT
607 if [ "$i" != "libiberty" ]; then
608 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
609 others=yes;
610 break;
611 fi
612 fi
613 done
614 if [ -z "${others}" ]; then
615 target_configdirs=
616 fi
617fi
618
ca2ce3b3
ILT
619# Deconfigure all subdirectories, in case we are changing the
620# configuration from one where a subdirectory is supported to one where it
621# is not.
ab1cbc67 622if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
b58d9e5d 623 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
ca2ce3b3
ILT
624 rm -f $i/Makefile
625 done
626fi
ab1cbc67 627if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
9bbc0d58 628 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
ab1cbc67
PB
629 rm -f ${target_subdir}/$i/Makefile
630 done
631fi
ca2ce3b3 632
52e3ad87
KR
633# Produce a warning message for the subdirs we can't configure.
634# This isn't especially interesting in the Cygnus tree, but in the individual
635# FSF releases, it's important to let people know when their machine isn't
636# supported by the one or two programs in a package.
637
9fe444b5 638if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
639 # If $appdirs is non-empty, at least one of those directories must still
640 # be configured, or we error out. (E.g., if the gas release supports a
641 # specified target in some subdirs but not the gas subdir, we shouldn't
642 # pretend that all is well.)
643 if [ -n "$appdirs" ]; then
644 for dir in $appdirs ; do
ca2ce3b3
ILT
645 if [ -r $dir/Makefile.in ]; then
646 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
647 appdirs=""
648 break
649 fi
650 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
651 appdirs=""
652 break
653 fi
af9fa3c1
ILT
654 fi
655 done
656 if [ -n "$appdirs" ]; then
657 echo "*** This configuration is not supported by this package." 1>&2
658 exit 1
659 fi
660 fi
661 # Okay, some application will build, or we don't care to check. Still
662 # notify of subdirs not getting built.
52e3ad87
KR
663 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
664 echo " ${notsupp}" 1>&2
665 echo " (Any other directories should still work fine.)" 1>&2
666fi
667
d4cf72b3
BK
668# Set with_gnu_as and with_gnu_ld as appropriate.
669#
670# This is done by determining whether or not the appropriate directory
671# is available, and by checking whether or not specific configurations
672# have requested that this magic not happen.
673#
674# The command line options always override the explicit settings in
675# configure.in, and the settings in configure.in override this magic.
676#
677# If the default for a toolchain is to use GNU as and ld, and you don't
678# want to do that, then you should use the --without-gnu-as and
679# --without-gnu-ld options for the configure script.
680
681if [ x${use_gnu_as} = x ] ; then
682 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
683 with_gnu_as=yes
684 withoptions="$withoptions --with-gnu-as"
685 fi
686fi
687
688if [ x${use_gnu_ld} = x ] ; then
689 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
690 with_gnu_ld=yes
691 withoptions="$withoptions --with-gnu-ld"
692 fi
693fi
694
d4be7765 695if [ x${shared} = xyes ]; then
45329a2c 696 case "${target}" in
c9e55665
JM
697 hppa*) target_makefile_frag=config/mt-papic ;;
698 i[345]86-*) target_makefile_frag=config/mt-x86pic ;;
699 *) target_makefile_frag=config/mt-${target_cpu}pic ;;
45329a2c
JM
700 esac
701fi
702
ca2ce3b3
ILT
703# post-target:
704
b5ae8419
ILT
705# Make sure that the compiler is able to generate an executable. If it
706# can't, we are probably in trouble. We don't care whether we can run the
707# executable--we might be using a cross compiler--we only care whether it
708# can be created. At this point the main configure script has set CC.
709echo "int main () { return 0; }" > conftest.c
710${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
711if [ $? = 0 ] && [ -s conftest ]; then
712 :
713else
714 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
715 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
716 rm -f conftest*
717 exit 1
718fi
719rm -f conftest*
720
0e47ce97
ILT
721# The Solaris /usr/ucb/cc compiler does not appear to work.
722case "${host}" in
723 sparc-sun-solaris2*)
e94c0e40
JM
724 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
725 if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
0e47ce97
ILT
726 could_use=
727 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
728 if [ -d /opt/cygnus/bin ] ; then
729 if [ "$could_use" = "" ] ; then
730 could_use="/opt/cygnus/bin"
731 else
732 could_use="$could_use or /opt/cygnus/bin"
733 fi
734 fi
735 if [ "$could_use" = "" ] ; then
736 echo "Warning: compilation may fail because you're using"
737 echo "/usr/ucb/cc. You should change your PATH or CC "
738 echo "variable and rerun configure."
739 else
740 echo "Warning: compilation may fail because you're using"
741 echo "/usr/ucb/cc, when you should use the C compiler from"
742 echo "$could_use. You should change your"
743 echo "PATH or CC variable and rerun configure."
744 fi
745 fi
746 ;;
747esac
748
294fde1f
ILT
749# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
750# binutils tools will find libbfd.so.
d4be7765 751if [ "${shared}" = "yes" ]; then
294fde1f
ILT
752 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
753 Makefile > Makefile.tem
754 rm -f Makefile
755 mv -f Makefile.tem Makefile
f2693093
ILT
756
757 case "${host}" in
758 *-*-hpux*)
759 sed -e 's/RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
760 Makefile > Makefile.tem
761 rm -f Makefile
762 mv -f Makefile.tem Makefile
763 ;;
764 esac
294fde1f
ILT
765fi
766
ca2ce3b3 767# Record target_configdirs and the configure arguments in Makefile.
ab1cbc67 768target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
ca2ce3b3 769targargs=`echo "${arguments}" | \
7fc36fda
ILT
770 sed -e 's/--norecursion//' \
771 -e 's/--cache[a-z-]*=[^ ]*//' \
772 -e 's/--ho[a-z-]*=[^ ]*//' \
773 -e 's/--ta[a-z-]*=[^ ]*//'`
774
775# Passing a --with-cross-host argument lets the target libraries know
776# whether they are being built with a cross-compiler or being built
777# native. However, it would be better to use other mechanisms to make the
778# sorts of decisions they want to make on this basis. Please consider
779# this option to be deprecated. FIXME.
780if [ x${is_cross_compiler} = xyes ]; then
90bdf864 781 targargs="--with-cross-host=${host_alias} ${targargs}"
7fc36fda
ILT
782fi
783
784targargs="--host=${target_alias} ${targargs}"
ca2ce3b3
ILT
785sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
786 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
ab1cbc67 787 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
ca2ce3b3
ILT
788 Makefile > Makefile.tem
789rm -f Makefile
790mv -f Makefile.tem Makefile
791
bc58b41d
RP
792#
793# Local Variables:
794# fill-column: 131
795# End:
796#
This page took 0.207991 seconds and 4 git commands to generate.