* os9kread.c (os9k_process_one_symbol): Note nonportable
[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
bb9ae458 39 recode release sed utils"
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
b58d9e5d 69 uudecode wdiff gprof target-groff"
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
164if [ x${enable_shared} = xyes ]; then
165 waugh=
166 case "${host}" in
c9e55665
JM
167 hppa*) waugh=config/mh-papic ;;
168 i[345]86-*) waugh=config/mh-x86pic ;;
be317b06 169 sparc64-*) waugh=config/mh-sparcpic ;;
c9e55665 170 *) waugh=config/mh-${host_cpu}pic ;;
45329a2c 171 esac
4350753e
JM
172 if [ -f ${srcdir}/${waugh} ]; then
173 if [ -n "${host_makefile_frag}" ] ; then
174 cat ${srcdir}/${host_makefile_frag} > mh-frag
175 cat ${srcdir}/${waugh} >> mh-frag
176 host_makefile_frag=mh-frag
c9e55665
JM
177 else
178 host_makefile_frag=${waugh}
4350753e 179 fi
45329a2c
JM
180 fi
181fi
182
0df06ca0 183# per-target:
bc58b41d 184
9ab10a5b
SEF
185case "${target}" in
186 v810*) target_makefile_frag=config/mt-v810 ;;
138e8532
JM
187 i[345]86-*-netware*) target_makefile_frag=config/mt-netware ;;
188 powerpc-*-netware*) target_makefile_frag=config/mt-netware ;;
9ab10a5b
SEF
189esac
190
ca2ce3b3 191skipdirs=
719cb03f
DZ
192gasdir=gas
193use_gnu_ld=
194use_gnu_as=
195
9f579565
DZ
196# some tools are so dependent upon X11 that if we're not building with X,
197# it's not even worth trying to configure, much less build, that tool.
198
199case ${with_x} in
e13fa011 200 yes | "") # the default value for this tree is that X11 is available
6a42d184 201 ;;
e13fa011 202 no)
ca2ce3b3 203 skipdirs="${skipdirs} tk gash"
9f579565
DZ
204 ;;
205 *)
206 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
207 ;;
208esac
209
5357f128 210# Some tools are only suitable for building in a "native" situation.
ba4513e7
DZ
211# Those are added when we have a host==target configuration. For cross
212# toolchains, we add some directories that should only be useful in a
213# cross-compiler.
43557c0a 214
2a38983c
DHW
215is_cross_compiler=
216
94028943 217if [ x"${host}" = x"${target}" ] ; then
041164e4
DZ
218 # when doing a native toolchain, don't build the targets
219 # that are in the 'cross only' list
ca2ce3b3 220 skipdirs="${skipdirs} ${cross_only}"
2a38983c 221 is_cross_compiler=no
ab1cbc67 222 target_subdir=.
43557c0a 223else
041164e4
DZ
224 # similarly, don't build the targets in the 'native only'
225 # list when building a cross compiler
ca2ce3b3 226 skipdirs="${skipdirs} ${native_only}"
2a38983c 227 is_cross_compiler=yes
ab1cbc67
PB
228 target_subdir=${target_alias}
229 if [ ! -d ${target_subdir} ] ; then
230 if mkdir ${target_subdir} ; then true
231 else
232 echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
233 exit 1
234 fi
235 fi
43557c0a
DZ
236fi
237
055cca84
ILT
238copy_dirs=
239
240# Handle --with-headers=XXX. The contents of the named directory are
52b5deb9 241# copied to $(tooldir)/sys-include.
055cca84
ILT
242if [ x"${with_headers}" != x ]; then
243 if [ x${is_cross_compiler} = xno ]; then
244 echo 1>&2 '***' --with-headers is only supported when cross compiling
245 exit 1
246 fi
247 case "${exec_prefixoption}" in
248 "") x=${prefix} ;;
249 *) x=${exec_prefix} ;;
250 esac
52b5deb9 251 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
055cca84
ILT
252fi
253
254# Handle --with-libs=XXX. Multiple directories are permitted. The
255# contents are copied to $(tooldir)/lib.
256if [ x"${with_libs}" != x ]; then
257 if [ x${is_cross_compiler} = xno ]; then
258 echo 1>&2 '***' --with-libs is only supported when cross compiling
259 exit 1
260 fi
261 # Copy the libraries in reverse order, so that files in the first named
262 # library override files in subsequent libraries.
263 case "${exec_prefixoption}" in
264 "") x=${prefix} ;;
265 *) x=${exec_prefix} ;;
266 esac
267 for l in ${with_libs}; do
268 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
269 done
270fi
271
272# If both --with-headers and --with-libs are specified, default to
273# --without-newlib.
274if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
275 if [ x"${with_newlib}" = x ]; then
276 with_newlib=no
277 fi
278fi
279
99dff294 280# Recognize --with-newlib/--without-newlib.
055cca84 281if [ x${with_newlib} = xno ]; then
ab1cbc67 282 skipdirs="${skipdirs} target-newlib"
99dff294 283elif [ x${with_newlib} = xyes ]; then
ab1cbc67 284 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
055cca84
ILT
285fi
286
4f0ad91b
ILT
287# Default to using --with-stabs for certain targets.
288if [ x${with_stabs} = x ]; then
289 case "${target}" in
290 mips*-*-* | alpha*-*-osf* | i[345]86*-*-sysv4* | i[345]86*-*-unixware*)
291 with_stabs=yes;
292 withoptions="${withoptions} --with-stabs"
293 ;;
294 esac
295fi
296
055cca84
ILT
297# Handle ${copy_dirs}
298set fnord ${copy_dirs}
299shift
300while [ $# != 0 ]; do
301 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
302 :
303 else
304 echo Copying $1 to $2
305
306 # Use the install script to create the directory and all required
307 # parent directories.
308 if [ -d $2 ]; then
309 :
310 else
311 echo >config.temp
312 ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
313 fi
314
315 # Copy the directory, assuming we have tar.
316 # FIXME: Should we use B in the second tar? Not all systems support it.
317 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
318
319 # It is the responsibility of the user to correctly adjust all
320 # symlinks. If somebody can figure out how to handle them correctly
321 # here, feel free to add the code.
322
323 echo $1 > $2/COPIED
324 fi
325 shift; shift
326done
327
eebd76cb
SC
328# Configure extra directories which are host specific
329
330case "${host}" in
9daacfc4 331 i[345]86-*-go32*)
a220ba0f 332 configdirs="$configdirs dosrel" ;;
eebd76cb
SC
333esac
334
5357f128 335# Remove more programs from consideration, based on the host or
dfa891fc 336# target this usually means that a port of the program doesn't
8ae559b7 337# exist yet.
dfa891fc 338
52e3ad87
KR
339noconfigdirs=""
340
9f579565 341case "${host}" in
a73fc881 342 i[345]86-*-vsta)
8a3871bb
RS
343 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
344 ;;
a73fc881 345 i[345]86-*-go32)
795f1885 346 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
8c7fd353 347 ;;
9daacfc4
SC
348 *-*-cygwin32)
349 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
9f579565 350 ;;
a51794f1 351 ppc*-*-pe)
9daacfc4 352 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
a51794f1 353 ;;
9f579565 354esac
dfa891fc 355
eebd76cb 356
43557c0a 357case "${target}" in
0f45fbc1 358 *-*-netware)
ab1cbc67 359 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty"
0f45fbc1 360 ;;
406477a6 361 *-*-vxworks*)
ab1cbc67 362 noconfigdirs="$noconfigdirs target-newlib"
849367a2 363 ;;
6bd3f765
ILT
364 alpha-dec-osf*)
365 # ld works, but does not support shared libraries. emacs doesn't
f4791d95 366 # work. newlib is not 64 bit ready. I'm not sure about fileutils or grep.
2a3486d2
ILT
367 # gas doesn't generate exception information.
368 noconfigdirs="$noconfigdirs gas ld emacs fileutils grep target-newlib"
0f45fbc1 369 ;;
04b9315f 370 alpha*-*-*)
6bd3f765 371 # newlib is not 64 bit ready
ab1cbc67 372 noconfigdirs="$noconfigdirs target-newlib"
0f45fbc1 373 ;;
7c71fc39
DE
374# start-sanitize-arc
375 arc-*-*)
7c71fc39
DE
376 ;;
377# end-sanitize-arc
bf150019 378 arm-*-pe*)
bf150019 379 ;;
ff15324f 380 arm-*-riscix*)
318b02b6
KR
381 noconfigdirs="$noconfigdirs ld"
382 ;;
52e3ad87 383 h8300*-*-* | \
8388b9df 384 h8500-*-*)
ab1cbc67 385 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
15ae586e 386 ;;
8a71f0f3 387 hppa*-*-*elf* | \
55ac59da 388 hppa*-*-lites*)
8c92a7d1 389 # Do configure ld/binutils/gas for this case.
99a5da15 390 ;;
15ae586e 391 hppa*-*-*)
408f64bc
JK
392 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
393 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 394 # whatever they want. FIXME, emacs emacs19).
8b5405d2 395 case "${CC}" in
e37bb3c7 396 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 397 *) ;;
8b5405d2 398 esac
d9f1d487 399 noconfigdirs="$noconfigdirs ld shellutils"
15ae586e 400 ;;
a73fc881 401 i[345]86-*-go32)
632ee4a1 402 # but don't build gdb
ab1cbc67 403 noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
8c92a7d1 404 ;;
9daacfc4
SC
405 *-*-cygwin32)
406
600b2f21 407 # make/glob's configure uses some AC_TRY_RUN type tests
77cd090a 408 target_configdirs="$target_configdirs target-winsup"
9daacfc4 409 noconfigdirs="$noconfigdirs tcl tk expect make"
e1a1ddc6 410 # always build newlib.
ab1cbc67 411 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
9daacfc4
SC
412
413 # Can't build gdb for cygwin32 if not native.
44ccfc3c
MM
414 case "${host}:${build}" in
415 *-*-cygwin32 | *-*-cygwin32:*-*-cygwin32) ;; # keep gdb
9daacfc4
SC
416 *) noconfigdirs="$noconfigdirs gdb"
417 esac
418
a220ba0f 419 ;;
8c7fd353 420 i[345]86-*-pe)
ab1cbc67 421 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
8c7fd353 422 ;;
a48876fc
SS
423 i[345]86-*-sco3.2v5*)
424 # The linker does not yet know about weak symbols in COFF,
425 # and is not configured to handle mixed ELF and COFF.
426 noconfigdirs="$noconfigdirs gprof ld"
427 ;;
a73fc881 428 i[345]86-*-sco*)
de9117a7
KR
429 noconfigdirs="$noconfigdirs gprof"
430 ;;
a73fc881 431 i[345]86-*-solaris2*)
320c9fff
KR
432 # The linker does static linking correctly, but the Solaris C library
433 # has bugs such that some important functions won't work when statically
434 # linked. (See man pages for getpwuid, for example.)
435 noconfigdirs="$noconfigdirs ld"
436 ;;
a73fc881 437 i[345]86-*-sysv4*)
8b5405d2
DZ
438 # The SYSV4 C compiler doesn't handle Emacs correctly
439 case "${CC}" in
e37bb3c7 440 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
441 *) ;;
442 esac
443 # but that's okay since emacs doesn't work anyway
e37bb3c7 444 noconfigdirs="$noconfigdirs emacs emacs19"
8b5405d2 445 ;;
3e1e245d
ILT
446 powerpc-*-aix*)
447 # copied from rs6000-*-* entry
92caaa6a 448 noconfigdirs="$noconfigdirs gprof cvs"
3e1e245d 449 ;;
a51794f1
JM
450 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
451 target_configdirs="$target_configdirs target-winsup"
452 noconfigdirs="$noconfigdirs gdb tcl tk make expect"
453 # always build newlib.
454 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
81d08d0c 455 ;;
2a38983c 456 rs6000-*-lynxos*)
2a38983c
DHW
457 # The CVS server code doesn't work on the RS/6000
458 # Newlib makes problems for libg++ in crosses.
92caaa6a 459 noconfigdirs="$noconfigdirs target-newlib gprof cvs"
2a38983c 460 ;;
8388b9df 461 rs6000-*-*)
92caaa6a 462 noconfigdirs="$noconfigdirs gprof"
fcf4d286 463 ;;
becf2d8a
JK
464 m68k-apollo-*)
465 noconfigdirs="$noconfigdirs ld binutils gprof"
466 ;;
04b9315f
ILT
467 mips*-*-irix5*)
468 # The GNU linker does not support shared libraries.
82633710
ILT
469 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
470 noconfigdirs="$noconfigdirs ld gprof emacs"
04b9315f 471 ;;
af9fa3c1
ILT
472 mips*-dec-bsd*)
473 noconfigdirs="$noconfigdirs gprof"
474 ;;
475 mips*-*-bsd*)
ffb8885b 476 noconfigdirs="$noconfigdirs gprof"
af9fa3c1 477 ;;
04b9315f 478 mips*-*-*)
52e3ad87 479 noconfigdirs="$noconfigdirs gprof"
fcf4d286 480 ;;
de9117a7 481 romp-*-*)
ca2ce3b3 482 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes"
de9117a7 483 ;;
817382d1 484 sh-*-*)
719cb03f 485 case "${host}" in
a73fc881 486 i[345]86-*-vsta) ;; # don't add gprof back in
a73fc881 487 i[345]86-*-go32) ;; # don't add gprof back in
ca2ce3b3 488 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
719cb03f
DZ
489 esac
490 ;;
491 sparc-*-sunos4*)
2a38983c 492 if [ x${is_cross_compiler} != xno ] ; then
ab1cbc67 493 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib"
2a38983c
DHW
494 else
495 use_gnu_ld=no
496 fi
1f69e88d 497 ;;
486e0f0a 498 v810-*-*)
d25fd70d 499 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes"
486e0f0a 500 ;;
de9117a7 501 vax-*-vms)
ab1cbc67 502 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes"
de9117a7
KR
503 ;;
504 vax-*-*)
ab1cbc67 505 noconfigdirs="$noconfigdirs target-newlib"
8388b9df 506 ;;
de9117a7 507 *-*-lynxos*)
19b1d034
SS
508 # Newlib makes problems for libg++ in crosses.
509 noconfigdirs="$noconfigdirs target-newlib"
510 ;;
511 *-*-macos* | \
512 *-*-mpw*)
513 # Macs want a resource compiler.
514 configdirs="$configdirs grez"
515 ;;
05cd8d98
HS
516esac
517
fcfcbf27 518# targets that need a second pass
0807a8af
GN
519case "${target}" in
520 *-gm-magic*)
521 noconfigdirs="$noconfigdirs libgloss"
522 ;;
523esac
524
bfe725ec
ILT
525# If we are building a Canadian Cross, discard tools that can not be built
526# using a cross compiler. FIXME: These tools should be fixed.
527if [ "${build}" != "${host}" ]; then
528 noconfigdirs="$noconfigdirs expect dejagnu make texinfo diff"
529fi
530
d4cf72b3
BK
531# Make sure we don't let GNU ld be added if we didn't want it.
532if [ x$with_gnu_ld = xno ]; then
533 use_gnu_ld=no
534 noconfigdirs="$noconfigdirs ld"
0b0124c6
BK
535fi
536
d4cf72b3
BK
537# Make sure we don't let GNU as be added if we didn't want it.
538if [ x$with_gnu_as = xno ]; then
539 use_gnu_as=no
540 noconfigdirs="$noconfigdirs gas"
0b0124c6
BK
541fi
542
ca2ce3b3
ILT
543# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
544# $target_configdirs.
545# If we have the source for $noconfigdirs entries, add them to $notsupp.
efd7b806 546
52e3ad87 547notsupp=""
ca2ce3b3 548for dir in . $skipdirs $noconfigdirs ; do
b58d9e5d 549 dirname=`echo $dir | sed -e s/target-//g`
1c15a33d 550 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 551 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
552 if [ -r $srcdir/$dirname/configure ] \
553 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
554 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
555 true
556 else
557 notsupp="$notsupp $dir"
558 fi
559 fi
560 fi
561 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
562 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
b58d9e5d
PB
563 if [ -r $srcdir/$dirname/configure ] \
564 || [ -r $srcdir/$dirname/configure.in ]; then
ca2ce3b3
ILT
565 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
566 true
567 else
568 notsupp="$notsupp $dir"
569 fi
52e3ad87
KR
570 fi
571 fi
572done
573
fba66802
ILT
574# Sometimes the tools are distributed with libiberty but with no other
575# libraries. In that case, we don't want to build target-libiberty.
576if [ -n "${target_configdirs}" ]; then
577 others=
b58d9e5d 578 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
fba66802
ILT
579 if [ "$i" != "libiberty" ]; then
580 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
581 others=yes;
582 break;
583 fi
584 fi
585 done
586 if [ -z "${others}" ]; then
587 target_configdirs=
588 fi
589fi
590
ca2ce3b3
ILT
591# Deconfigure all subdirectories, in case we are changing the
592# configuration from one where a subdirectory is supported to one where it
593# is not.
ab1cbc67 594if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
b58d9e5d 595 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
ca2ce3b3
ILT
596 rm -f $i/Makefile
597 done
598fi
ab1cbc67 599if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
9bbc0d58 600 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
ab1cbc67
PB
601 rm -f ${target_subdir}/$i/Makefile
602 done
603fi
ca2ce3b3 604
52e3ad87
KR
605# Produce a warning message for the subdirs we can't configure.
606# This isn't especially interesting in the Cygnus tree, but in the individual
607# FSF releases, it's important to let people know when their machine isn't
608# supported by the one or two programs in a package.
609
9fe444b5 610if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
611 # If $appdirs is non-empty, at least one of those directories must still
612 # be configured, or we error out. (E.g., if the gas release supports a
613 # specified target in some subdirs but not the gas subdir, we shouldn't
614 # pretend that all is well.)
615 if [ -n "$appdirs" ]; then
616 for dir in $appdirs ; do
ca2ce3b3
ILT
617 if [ -r $dir/Makefile.in ]; then
618 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
619 appdirs=""
620 break
621 fi
622 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
623 appdirs=""
624 break
625 fi
af9fa3c1
ILT
626 fi
627 done
628 if [ -n "$appdirs" ]; then
629 echo "*** This configuration is not supported by this package." 1>&2
630 exit 1
631 fi
632 fi
633 # Okay, some application will build, or we don't care to check. Still
634 # notify of subdirs not getting built.
52e3ad87
KR
635 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
636 echo " ${notsupp}" 1>&2
637 echo " (Any other directories should still work fine.)" 1>&2
638fi
639
d4cf72b3
BK
640# Set with_gnu_as and with_gnu_ld as appropriate.
641#
642# This is done by determining whether or not the appropriate directory
643# is available, and by checking whether or not specific configurations
644# have requested that this magic not happen.
645#
646# The command line options always override the explicit settings in
647# configure.in, and the settings in configure.in override this magic.
648#
649# If the default for a toolchain is to use GNU as and ld, and you don't
650# want to do that, then you should use the --without-gnu-as and
651# --without-gnu-ld options for the configure script.
652
653if [ x${use_gnu_as} = x ] ; then
654 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
655 with_gnu_as=yes
656 withoptions="$withoptions --with-gnu-as"
657 fi
658fi
659
660if [ x${use_gnu_ld} = x ] ; then
661 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
662 with_gnu_ld=yes
663 withoptions="$withoptions --with-gnu-ld"
664 fi
665fi
666
45329a2c
JM
667if [ x${enable_shared} = xyes ]; then
668 case "${target}" in
c9e55665
JM
669 hppa*) target_makefile_frag=config/mt-papic ;;
670 i[345]86-*) target_makefile_frag=config/mt-x86pic ;;
671 *) target_makefile_frag=config/mt-${target_cpu}pic ;;
45329a2c
JM
672 esac
673fi
674
ca2ce3b3
ILT
675# post-target:
676
b5ae8419
ILT
677# Make sure that the compiler is able to generate an executable. If it
678# can't, we are probably in trouble. We don't care whether we can run the
679# executable--we might be using a cross compiler--we only care whether it
680# can be created. At this point the main configure script has set CC.
681echo "int main () { return 0; }" > conftest.c
682${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
683if [ $? = 0 ] && [ -s conftest ]; then
684 :
685else
686 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
687 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
688 rm -f conftest*
689 exit 1
690fi
691rm -f conftest*
692
0e47ce97
ILT
693# The Solaris /usr/ucb/cc compiler does not appear to work.
694case "${host}" in
695 sparc-sun-solaris2*)
696 if [ "`/usr/bin/which ${CC-cc}`" = "/usr/ucb/cc" ] ; then
697 could_use=
698 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
699 if [ -d /opt/cygnus/bin ] ; then
700 if [ "$could_use" = "" ] ; then
701 could_use="/opt/cygnus/bin"
702 else
703 could_use="$could_use or /opt/cygnus/bin"
704 fi
705 fi
706 if [ "$could_use" = "" ] ; then
707 echo "Warning: compilation may fail because you're using"
708 echo "/usr/ucb/cc. You should change your PATH or CC "
709 echo "variable and rerun configure."
710 else
711 echo "Warning: compilation may fail because you're using"
712 echo "/usr/ucb/cc, when you should use the C compiler from"
713 echo "$could_use. You should change your"
714 echo "PATH or CC variable and rerun configure."
715 fi
716 fi
717 ;;
718esac
719
294fde1f
ILT
720# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
721# binutils tools will find libbfd.so.
722if [ "${enable_shared}" = "yes" ]; then
723 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
724 Makefile > Makefile.tem
725 rm -f Makefile
726 mv -f Makefile.tem Makefile
f2693093
ILT
727
728 case "${host}" in
729 *-*-hpux*)
730 sed -e 's/RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
731 Makefile > Makefile.tem
732 rm -f Makefile
733 mv -f Makefile.tem Makefile
734 ;;
735 esac
294fde1f
ILT
736fi
737
ca2ce3b3 738# Record target_configdirs and the configure arguments in Makefile.
ab1cbc67 739target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
ca2ce3b3 740targargs=`echo "${arguments}" | \
7fc36fda
ILT
741 sed -e 's/--norecursion//' \
742 -e 's/--cache[a-z-]*=[^ ]*//' \
743 -e 's/--ho[a-z-]*=[^ ]*//' \
744 -e 's/--ta[a-z-]*=[^ ]*//'`
745
746# Passing a --with-cross-host argument lets the target libraries know
747# whether they are being built with a cross-compiler or being built
748# native. However, it would be better to use other mechanisms to make the
749# sorts of decisions they want to make on this basis. Please consider
750# this option to be deprecated. FIXME.
751if [ x${is_cross_compiler} = xyes ]; then
90bdf864 752 targargs="--with-cross-host=${host_alias} ${targargs}"
7fc36fda
ILT
753fi
754
755targargs="--host=${target_alias} ${targargs}"
ca2ce3b3
ILT
756sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
757 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
ab1cbc67 758 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
ca2ce3b3
ILT
759 Makefile > Makefile.tem
760rm -f Makefile
761mv -f Makefile.tem Makefile
762
bc58b41d
RP
763#
764# Local Variables:
765# fill-column: 131
766# End:
767#
This page took 0.215484 seconds and 4 git commands to generate.