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