* corelow.c, exec.c, inftarg.c, m3-nat.c, op50-rom.c, procfs.c,
[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#
d0b01a5d 27host_libs="mmalloc libiberty opcodes bfd readline glob gash tcl tk tclX"
041164e4 28
f4a7dca7
TL
29if [ "${enable_gdbgui}" = "yes" ] ; then
30 host_libs="${host_libs} libgui"
31fi
32
041164e4
DZ
33# these tools are built for the host environment
34#
35host_tools="texinfo byacc flex bison binutils ld gas gcc gdb make patch
d6c8b354 36 prms send-pr gprof gdbtest tgas etc expect dejagnu sim
e718498b 37 m4 autoconf ispell grep diff rcs cvs fileutils shellutils
e37bb3c7 38 textutils wdiff find emacs emacs19 uudecode hello tar gzip indent
bb9ae458 39 recode release sed utils"
041164e4
DZ
40
41
9bdd52dd
DZ
42# these libraries are built for the target environment, and are built after
43# the host libraries and the host tools (which may be a cross compiler)
041164e4 44#
42fd5795
PB
45target_libs="libm xiberty libgloss newlib libio librx libg++"
46# If you're using gcc-2.6.1, uncomment following line.
47# target_libs="libm xiberty libgloss newlib libio librx libstdc++ libg++"
6218894f 48
041164e4 49
9bdd52dd 50# these tools are built using the target libs, and are intended to run only
9623e828 51# in the target environment
83a47678 52#
9bdd52dd
DZ
53# note: any program that *uses* libraries that are in the "target_libs"
54# list belongs in this list. those programs are also very likely
55# candidates for the "native_only" list which follows
041164e4 56#
9623e828 57target_tools="examples groff"
041164e4
DZ
58
59################################################################################
60
61## These two lists are of directories that are to be removed from the
62## ${configdirs} list for either cross-compilations or for native-
63## compilations. For example, it doesn't make that much sense to
64## cross-compile Emacs, nor is it terribly useful to compile xiberty in
65## a native environment.
66
67# directories to be built in the native environment only
68#
6749ef5a
JM
69native_only="autoconf cvs emacs emacs19 fileutils find grep groff gzip hello
70 indent ispell m4 rcs recode sed shellutils tar textutils gash tk
71 uudecode wdiff gprof"
041164e4 72
9bdd52dd 73# directories to be built in a cross environment only
041164e4 74#
fd5032fd 75cross_only="xiberty libgloss newlib"
041164e4
DZ
76
77## All tools belong in one of the four categories, and are assigned above
8f30a41e
DE
78## We assign ${configdirs} this way to remove all embedded newlines. This
79## is important because configure will choke if they ever get through.
041164e4 80#
8f30a41e 81configdirs=`echo ${host_libs} ${host_tools} ${target_libs} ${target_tools}`
041164e4
DZ
82
83################################################################################
ba4513e7 84
378fd382 85srctrigger=move-if-change
eb02fd64 86srcname="gnu development package"
0df06ca0 87
af9fa3c1
ILT
88# This gets set non-empty for some net releases of packages.
89appdirs=""
90
0df06ca0
RP
91# per-host:
92
594c548a
DM
93# Work in distributions that contain no compiler tools, like Autoconf.
94if [ -d ${srcdir}/config ]; then
cec673a2 95case "${host}" in
c71350fc 96 m68k-hp-hpux*) host_makefile_frag=config/mh-hp300 ;;
cec673a2
DZ
97 m68k-apollo-sysv*) host_makefile_frag=config/mh-apollo68 ;;
98 m68k-apollo-bsd*) host_makefile_frag=config/mh-a68bsd ;;
cec673a2 99 m88k-dg-dgux*) host_makefile_frag=config/mh-dgux ;;
48de3495
SS
100 m88k-harris-cxux*) host_makefile_frag=config/mh-cxux ;;
101 m88k-motorola-sysv*) host_makefile_frag=config/mh-delta88;;
e718498b 102 mips*-dec-ultrix*) host_makefile_frag=config/mh-decstation ;;
616d31f3 103 mips*-sgi-irix5*) host_makefile_frag=config/mh-irix5 ;;
e718498b
DZ
104 mips*-sgi-irix4*) host_makefile_frag=config/mh-irix4 ;;
105 mips*-sgi-irix3*) host_makefile_frag=config/mh-sysv ;;
49ad26c2 106 mips*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
e718498b 107 mips*-*-sysv*) host_makefile_frag=config/mh-riscos ;;
7e290a5d 108 i[345]86-ncr-sysv4.3) host_makefile_frag=config/mh-ncrsvr43 ;;
a73fc881
ILT
109 i[345]86-ncr-sysv4*) host_makefile_frag=config/mh-ncr3000 ;;
110 i[345]86-*-sco*) host_makefile_frag=config/mh-sco ;;
111 i[345]86-*-isc*) host_makefile_frag=config/mh-sysv ;;
112 i[345]86-*-linux*) host_makefile_frag=config/mh-linux ;;
113 i[345]86-*-solaris2*) host_makefile_frag=config/mh-sysv4 ;;
114 i[345]86-*-aix*) host_makefile_frag=config/mh-aix386 ;;
115 i[345]86-*-go32*) host_makefile_frag=config/mh-go32 ;;
d3c06c91 116 vax-*-ultrix2*) host_makefile_frag=config/mh-vaxult2 ;;
cec673a2 117 *-ibm-aix*) host_makefile_frag=config/mh-aix ;;
ba7f177a 118 *-bull-bosx*) host_makefile_frag=config/mh-aix ;;
54fdaa7b 119 *-*-solaris2*) host_makefile_frag=config/mh-solaris ;;
be8966dc 120 m68k-sun-*) host_makefile_frag=config/mh-sun3 ;;
d10f77c1 121 *-sun-*) host_makefile_frag=config/mh-sun ;;
c71350fc 122 *-hp-hpux*) host_makefile_frag=config/mh-hpux ;;
9117f609 123 *-*-hiux*) host_makefile_frag=config/mh-hpux ;;
af9fa3c1 124 rs6000-*-lynxos*) host_makefile_frag=config/mh-lynxrs6k ;;
89c27486 125 *-*-lynxos*) host_makefile_frag=config/mh-lynxos ;;
fab5d4e3
DZ
126 *-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
127 *-*-sysv*) host_makefile_frag=config/mh-sysv ;;
f4bda0ff 128esac
594c548a 129fi
f4bda0ff 130
866cdf6c
ILT
131# The Solaris /usr/ucb/cc compiler does not appear to work.
132case "${host}" in
133 sparc-sun-solaris2*)
134 if [ "`/usr/bin/which ${CC-cc}`" = "/usr/ucb/cc" ] ; then
135 could_use=
136 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
137 if [ -d /opt/cygnus/bin ] ; then
138 if [ "$could_use" == "" ] ; then
139 could_use="/opt/cygnus/bin"
140 else
141 could_use="$could_use or /opt/cygnus/bin"
142 fi
143 fi
144 if [ "$could_use" = "" ] ; then
145 echo "Warning: compilation may fail because you're using"
146 echo "/usr/ucb/cc. You should change your PATH or CC "
147 echo "variable and rerun configure."
148 else
149 echo "Warning: compilation may fail because you're using"
150 echo "/usr/ucb/cc, when you should use the C compiler from"
151 echo "$could_use. You should change your"
152 echo "PATH or CC variable and rerun configure."
153 fi
154 fi
155 ;;
156esac
157
0df06ca0 158# per-target:
bc58b41d 159
9ab10a5b
SEF
160case "${target}" in
161 v810*) target_makefile_frag=config/mt-v810 ;;
162esac
163
719cb03f
DZ
164gasdir=gas
165use_gnu_ld=
166use_gnu_as=
167
9f579565
DZ
168# some tools are so dependent upon X11 that if we're not building with X,
169# it's not even worth trying to configure, much less build, that tool.
170
171case ${with_x} in
e13fa011 172 yes | "") # the default value for this tree is that X11 is available
6a42d184 173 ;;
e13fa011 174 no)
8f30a41e 175 configdirs=`echo " ${configdirs} " | sed -e 's/ tk / /;/ gash / /'`
9f579565
DZ
176 ;;
177 *)
178 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
179 ;;
180esac
181
5357f128 182# Some tools are only suitable for building in a "native" situation.
ba4513e7
DZ
183# Those are added when we have a host==target configuration. For cross
184# toolchains, we add some directories that should only be useful in a
185# cross-compiler.
43557c0a 186
2a38983c
DHW
187is_cross_compiler=
188
94028943 189if [ x"${host}" = x"${target}" ] ; then
041164e4
DZ
190 # when doing a native toolchain, don't build the targets
191 # that are in the 'cross only' list
192 for i in ${cross_only} ; do
8f30a41e 193 configdirs=`echo " ${configdirs} " | sed -e "s/ $i / /"`
041164e4 194 done
2a38983c 195 is_cross_compiler=no
43557c0a 196else
041164e4
DZ
197 # similarly, don't build the targets in the 'native only'
198 # list when building a cross compiler
199 for i in ${native_only} ; do
8f30a41e 200 configdirs=`echo " ${configdirs} " | sed -e "s/ $i / /"`
041164e4 201 done
2a38983c 202 is_cross_compiler=yes
43557c0a
DZ
203fi
204
055cca84
ILT
205copy_dirs=
206
207# Handle --with-headers=XXX. The contents of the named directory are
208# copied to $(tooldir)/include.
209if [ x"${with_headers}" != x ]; then
210 if [ x${is_cross_compiler} = xno ]; then
211 echo 1>&2 '***' --with-headers is only supported when cross compiling
212 exit 1
213 fi
214 case "${exec_prefixoption}" in
215 "") x=${prefix} ;;
216 *) x=${exec_prefix} ;;
217 esac
218 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/include"
219fi
220
221# Handle --with-libs=XXX. Multiple directories are permitted. The
222# contents are copied to $(tooldir)/lib.
223if [ x"${with_libs}" != x ]; then
224 if [ x${is_cross_compiler} = xno ]; then
225 echo 1>&2 '***' --with-libs is only supported when cross compiling
226 exit 1
227 fi
228 # Copy the libraries in reverse order, so that files in the first named
229 # library override files in subsequent libraries.
230 case "${exec_prefixoption}" in
231 "") x=${prefix} ;;
232 *) x=${exec_prefix} ;;
233 esac
234 for l in ${with_libs}; do
235 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
236 done
237fi
238
239# If both --with-headers and --with-libs are specified, default to
240# --without-newlib.
241if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
242 if [ x"${with_newlib}" = x ]; then
243 with_newlib=no
244 fi
245fi
246
247# Recognize --without-newlib.
248if [ x${with_newlib} = xno ]; then
249 configdirs=`echo " ${configdirs} " | sed -e 's/ newlib / /'`
250fi
251
252# Handle ${copy_dirs}
253set fnord ${copy_dirs}
254shift
255while [ $# != 0 ]; do
256 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
257 :
258 else
259 echo Copying $1 to $2
260
261 # Use the install script to create the directory and all required
262 # parent directories.
263 if [ -d $2 ]; then
264 :
265 else
266 echo >config.temp
267 ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
268 fi
269
270 # Copy the directory, assuming we have tar.
271 # FIXME: Should we use B in the second tar? Not all systems support it.
272 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
273
274 # It is the responsibility of the user to correctly adjust all
275 # symlinks. If somebody can figure out how to handle them correctly
276 # here, feel free to add the code.
277
278 echo $1 > $2/COPIED
279 fi
280 shift; shift
281done
282
eebd76cb
SC
283# Configure extra directories which are host specific
284
285case "${host}" in
a73fc881 286 i[345]86-*-go32*)
eebd76cb
SC
287 configdirs="$configdirs dosrel" ;;
288esac
289
5357f128 290# Remove more programs from consideration, based on the host or
dfa891fc 291# target this usually means that a port of the program doesn't
8ae559b7 292# exist yet.
dfa891fc 293
52e3ad87
KR
294noconfigdirs=""
295
9f579565 296case "${host}" in
a73fc881 297 i[345]86-*-netbsd*)
bed5e19f
DZ
298 noconfigdirs="tk fileutils"
299 ;;
a73fc881 300 i[345]86-*-vsta)
8a3871bb
RS
301 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
302 ;;
a73fc881 303 i[345]86-*-go32)
52e3ad87 304 noconfigdirs="tcl expect deja-gnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
9f579565
DZ
305 ;;
306esac
dfa891fc 307
eebd76cb 308
43557c0a 309case "${target}" in
0f45fbc1 310 *-*-netware)
f16db092 311 noconfigdirs="$noconfigdirs libg++ libstdc++ librx newlib"
0f45fbc1 312 ;;
6bd3f765
ILT
313 alpha-dec-osf*)
314 # ld works, but does not support shared libraries. emacs doesn't
315 # work. newlib is not 64 bit ready. I'm not sure about emacs19,
316 # fileutils or grep.
317 noconfigdirs="$noconfigdirs ld emacs emacs19 fileutils grep newlib"
0f45fbc1 318 ;;
04b9315f 319 alpha*-*-*)
6bd3f765 320 # newlib is not 64 bit ready
07043fa7 321 noconfigdirs="$noconfigdirs newlib"
0f45fbc1 322 ;;
7c71fc39
DE
323# start-sanitize-arc
324 arc-*-*)
325 noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx"
326 ;;
327# end-sanitize-arc
318b02b6
KR
328 arm-*-*)
329 noconfigdirs="$noconfigdirs ld"
330 ;;
52e3ad87 331 h8300*-*-* | \
8388b9df 332 h8500-*-*)
6749ef5a 333 noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx"
15ae586e 334 ;;
28d8ead4 335 hppa*-*-*elf*)
8c92a7d1 336 # Do configure ld/binutils/gas for this case.
99a5da15 337 ;;
15ae586e 338 hppa*-*-*)
408f64bc
JK
339 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
340 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 341 # whatever they want. FIXME, emacs emacs19).
8b5405d2 342 case "${CC}" in
e37bb3c7 343 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 344 *) ;;
8b5405d2 345 esac
7cf09889 346 noconfigdirs="$noconfigdirs ld shellutils tk"
15ae586e 347 ;;
a73fc881 348 i[345]86-*-go32)
8c92a7d1 349 # add the go32 support tools to the list
632ee4a1 350 # but don't build gdb
8c92a7d1 351 configdirs=`echo go32 ${configdirs}`
6749ef5a 352 noconfigdirs="$noconfigdirs gdb libg++ libstdc++ libio librx"
8c92a7d1 353 ;;
a73fc881 354 i[345]86-*-sco*)
de9117a7
KR
355 noconfigdirs="$noconfigdirs gprof"
356 ;;
a73fc881 357 i[345]86-*-solaris2*)
320c9fff
KR
358 # The linker does static linking correctly, but the Solaris C library
359 # has bugs such that some important functions won't work when statically
360 # linked. (See man pages for getpwuid, for example.)
361 noconfigdirs="$noconfigdirs ld"
362 ;;
a73fc881 363 i[345]86-*-sysv4*)
8b5405d2
DZ
364 # The SYSV4 C compiler doesn't handle Emacs correctly
365 case "${CC}" in
e37bb3c7 366 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
367 *) ;;
368 esac
369 # but that's okay since emacs doesn't work anyway
e37bb3c7 370 noconfigdirs="$noconfigdirs emacs emacs19"
8b5405d2 371 ;;
3e1e245d
ILT
372 powerpc-*-aix*)
373 # copied from rs6000-*-* entry
374 noconfigdirs="$noconfigdirs ld binutils gprof textutils cvs"
375 ;;
2a38983c
DHW
376 rs6000-*-lynxos*)
377 # a gcc built textutils will cause the linker to hang on 'join'
378 # The CVS server code doesn't work on the RS/6000
379 # Newlib makes problems for libg++ in crosses.
b5775df3 380 noconfigdirs="$noconfigdirs gas ld newlib gprof textutils cvs"
2a38983c
DHW
381 use_gnu_ld=no
382 use_gnu_as=no
383 ;;
8388b9df 384 rs6000-*-*)
8b5405d2 385 # a gcc built textutils will cause the linker to hang on 'join'
f2f803c1 386 noconfigdirs="$noconfigdirs ld binutils gprof textutils"
fcf4d286 387 ;;
becf2d8a
JK
388 m68k-apollo-*)
389 noconfigdirs="$noconfigdirs ld binutils gprof"
390 ;;
04b9315f
ILT
391 mips*-*-irix5*)
392 # The GNU linker does not support shared libraries.
82633710
ILT
393 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
394 noconfigdirs="$noconfigdirs ld gprof emacs"
04b9315f 395 ;;
af9fa3c1
ILT
396 mips*-dec-bsd*)
397 noconfigdirs="$noconfigdirs gprof"
398 ;;
399 mips*-*-bsd*)
400 noconfigdirs="$noconfigdirs gprof ld"
401 ;;
04b9315f 402 mips*-*-*)
52e3ad87 403 noconfigdirs="$noconfigdirs gprof"
fcf4d286 404 ;;
de9117a7
KR
405 romp-*-*)
406 noconfigdirs="bfd binutils ld gas opcodes"
407 ;;
817382d1 408 sh-*-*)
719cb03f 409 case "${host}" in
a73fc881 410 i[345]86-*-vsta) ;; # don't add gprof back in
8a3871bb 411 *) configdirs=`echo gprof ${configdirs}` ;;
a73fc881 412 i[345]86-*-go32) ;; # don't add gprof back in
719cb03f
DZ
413 *) configdirs=`echo gprof ${configdirs}` ;;
414 esac
415 ;;
416 sparc-*-sunos4*)
2a38983c
DHW
417 if [ x${is_cross_compiler} != xno ] ; then
418 noconfigdirs="$noconfigdirs gdb gdbtest newlib sim dejagnu expect tcl"
419 else
420 use_gnu_ld=no
421 fi
1f69e88d 422 ;;
de9117a7
KR
423 vax-*-vms)
424 noconfigdirs="$noconfigdirs bfd binutils gdb ld newlib opcodes"
425 ;;
426 vax-*-*)
427 noconfigdirs="$noconfigdirs newlib"
8388b9df 428 ;;
de9117a7 429 *-*-lynxos*)
89c27486
SS
430 # Newlib makes problems for libg++ in crosses.
431 noconfigdirs="$noconfigdirs newlib"
432 ;;
05cd8d98
HS
433esac
434
1c15a33d
ILT
435# Remove the entries in $noconfigdirs from $configdirs. If we have the
436# source for them, add them to $notsupp.
52e3ad87
KR
437notsupp=""
438for dir in . $noconfigdirs ; do
1c15a33d 439 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 440 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
52e3ad87
KR
441 if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then
442 notsupp="$notsupp $dir"
443 fi
444 fi
445done
446
447# Produce a warning message for the subdirs we can't configure.
448# This isn't especially interesting in the Cygnus tree, but in the individual
449# FSF releases, it's important to let people know when their machine isn't
450# supported by the one or two programs in a package.
451
9fe444b5 452if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
453 # If $appdirs is non-empty, at least one of those directories must still
454 # be configured, or we error out. (E.g., if the gas release supports a
455 # specified target in some subdirs but not the gas subdir, we shouldn't
456 # pretend that all is well.)
457 if [ -n "$appdirs" ]; then
458 for dir in $appdirs ; do
1c15a33d 459 if [ -r $dir/Makefile.in ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1 ; then
af9fa3c1
ILT
460 appdirs=""
461 break
462 fi
463 done
464 if [ -n "$appdirs" ]; then
465 echo "*** This configuration is not supported by this package." 1>&2
466 exit 1
467 fi
468 fi
469 # Okay, some application will build, or we don't care to check. Still
470 # notify of subdirs not getting built.
52e3ad87
KR
471 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
472 echo " ${notsupp}" 1>&2
473 echo " (Any other directories should still work fine.)" 1>&2
474fi
475
3dcd81b9 476# Set with_gnu_as and with_gnu_ld as appropriate.
719cb03f
DZ
477#
478# This is done by determining whether or not the appropriate directory
479# is available, and by checking whether or not specific configurations
480# have requested that this magic not happen.
481#
482# The command line options always override the explicit settings in
483# configure.in, and the settings in configure.in override this magic.
484#
485# If the default for a toolchain is to use GNU as and ld, and you don't
486# want to do that, then you should use the --without-gnu-as and
487# --without-gnu-ld options for the configure script.
488
489if [ x${use_gnu_as} = x ] ; then
6d1603cc 490 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
719cb03f
DZ
491 with_gnu_as=yes
492 withoptions="$withoptions --with-gnu-as"
493 fi
494fi
495
496if [ x${use_gnu_ld} = x ] ; then
6d1603cc 497 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
719cb03f
DZ
498 with_gnu_ld=yes
499 withoptions="$withoptions --with-gnu-ld"
500 fi
501fi
43557c0a 502
bc58b41d
RP
503#
504# Local Variables:
505# fill-column: 131
506# End:
507#
This page took 0.14941 seconds and 4 git commands to generate.