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