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