]> Git Repo - binutils.git/blame - configure.in
* config/tc-mips.c (macro): Ensure that mips2 case of M_LI_DD in
[binutils.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 ;;
318b02b6
KR
323 arm-*-*)
324 noconfigdirs="$noconfigdirs ld"
325 ;;
52e3ad87 326 h8300*-*-* | \
8388b9df 327 h8500-*-*)
6749ef5a 328 noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx"
15ae586e 329 ;;
28d8ead4 330 hppa*-*-*elf*)
8c92a7d1 331 # Do configure ld/binutils/gas for this case.
99a5da15 332 ;;
15ae586e 333 hppa*-*-*)
408f64bc
JK
334 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
335 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 336 # whatever they want. FIXME, emacs emacs19).
8b5405d2 337 case "${CC}" in
e37bb3c7 338 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 339 *) ;;
8b5405d2 340 esac
7cf09889 341 noconfigdirs="$noconfigdirs ld shellutils tk"
15ae586e 342 ;;
a73fc881 343 i[345]86-*-go32)
8c92a7d1 344 # add the go32 support tools to the list
632ee4a1 345 # but don't build gdb
8c92a7d1 346 configdirs=`echo go32 ${configdirs}`
6749ef5a 347 noconfigdirs="$noconfigdirs gdb libg++ libstdc++ libio librx"
8c92a7d1 348 ;;
a73fc881 349 i[345]86-*-sco*)
de9117a7
KR
350 noconfigdirs="$noconfigdirs gprof"
351 ;;
a73fc881 352 i[345]86-*-solaris2*)
320c9fff
KR
353 # The linker does static linking correctly, but the Solaris C library
354 # has bugs such that some important functions won't work when statically
355 # linked. (See man pages for getpwuid, for example.)
356 noconfigdirs="$noconfigdirs ld"
357 ;;
a73fc881 358 i[345]86-*-sysv4*)
8b5405d2
DZ
359 # The SYSV4 C compiler doesn't handle Emacs correctly
360 case "${CC}" in
e37bb3c7 361 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
362 *) ;;
363 esac
364 # but that's okay since emacs doesn't work anyway
e37bb3c7 365 noconfigdirs="$noconfigdirs emacs emacs19"
8b5405d2 366 ;;
3e1e245d
ILT
367 powerpc-*-aix*)
368 # copied from rs6000-*-* entry
369 noconfigdirs="$noconfigdirs ld binutils gprof textutils cvs"
370 ;;
2a38983c
DHW
371 rs6000-*-lynxos*)
372 # a gcc built textutils will cause the linker to hang on 'join'
373 # The CVS server code doesn't work on the RS/6000
374 # Newlib makes problems for libg++ in crosses.
b5775df3 375 noconfigdirs="$noconfigdirs gas ld newlib gprof textutils cvs"
2a38983c
DHW
376 use_gnu_ld=no
377 use_gnu_as=no
378 ;;
8388b9df 379 rs6000-*-*)
8b5405d2 380 # a gcc built textutils will cause the linker to hang on 'join'
f2f803c1 381 noconfigdirs="$noconfigdirs ld binutils gprof textutils"
fcf4d286 382 ;;
becf2d8a
JK
383 m68k-apollo-*)
384 noconfigdirs="$noconfigdirs ld binutils gprof"
385 ;;
04b9315f
ILT
386 mips*-*-irix5*)
387 # The GNU linker does not support shared libraries.
82633710
ILT
388 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
389 noconfigdirs="$noconfigdirs ld gprof emacs"
04b9315f 390 ;;
af9fa3c1
ILT
391 mips*-dec-bsd*)
392 noconfigdirs="$noconfigdirs gprof"
393 ;;
394 mips*-*-bsd*)
395 noconfigdirs="$noconfigdirs gprof ld"
396 ;;
04b9315f 397 mips*-*-*)
52e3ad87 398 noconfigdirs="$noconfigdirs gprof"
fcf4d286 399 ;;
de9117a7
KR
400 romp-*-*)
401 noconfigdirs="bfd binutils ld gas opcodes"
402 ;;
817382d1 403 sh-*-*)
719cb03f 404 case "${host}" in
a73fc881 405 i[345]86-*-vsta) ;; # don't add gprof back in
8a3871bb 406 *) configdirs=`echo gprof ${configdirs}` ;;
a73fc881 407 i[345]86-*-go32) ;; # don't add gprof back in
719cb03f
DZ
408 *) configdirs=`echo gprof ${configdirs}` ;;
409 esac
410 ;;
411 sparc-*-sunos4*)
2a38983c
DHW
412 if [ x${is_cross_compiler} != xno ] ; then
413 noconfigdirs="$noconfigdirs gdb gdbtest newlib sim dejagnu expect tcl"
414 else
415 use_gnu_ld=no
416 fi
1f69e88d 417 ;;
de9117a7
KR
418 vax-*-vms)
419 noconfigdirs="$noconfigdirs bfd binutils gdb ld newlib opcodes"
420 ;;
421 vax-*-*)
422 noconfigdirs="$noconfigdirs newlib"
8388b9df 423 ;;
de9117a7 424 *-*-lynxos*)
89c27486
SS
425 # Newlib makes problems for libg++ in crosses.
426 noconfigdirs="$noconfigdirs newlib"
427 ;;
05cd8d98
HS
428esac
429
1c15a33d
ILT
430# Remove the entries in $noconfigdirs from $configdirs. If we have the
431# source for them, add them to $notsupp.
52e3ad87
KR
432notsupp=""
433for dir in . $noconfigdirs ; do
1c15a33d 434 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 435 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
52e3ad87
KR
436 if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then
437 notsupp="$notsupp $dir"
438 fi
439 fi
440done
441
442# Produce a warning message for the subdirs we can't configure.
443# This isn't especially interesting in the Cygnus tree, but in the individual
444# FSF releases, it's important to let people know when their machine isn't
445# supported by the one or two programs in a package.
446
9fe444b5 447if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
448 # If $appdirs is non-empty, at least one of those directories must still
449 # be configured, or we error out. (E.g., if the gas release supports a
450 # specified target in some subdirs but not the gas subdir, we shouldn't
451 # pretend that all is well.)
452 if [ -n "$appdirs" ]; then
453 for dir in $appdirs ; do
1c15a33d 454 if [ -r $dir/Makefile.in ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1 ; then
af9fa3c1
ILT
455 appdirs=""
456 break
457 fi
458 done
459 if [ -n "$appdirs" ]; then
460 echo "*** This configuration is not supported by this package." 1>&2
461 exit 1
462 fi
463 fi
464 # Okay, some application will build, or we don't care to check. Still
465 # notify of subdirs not getting built.
52e3ad87
KR
466 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
467 echo " ${notsupp}" 1>&2
468 echo " (Any other directories should still work fine.)" 1>&2
469fi
470
3dcd81b9 471# Set with_gnu_as and with_gnu_ld as appropriate.
719cb03f
DZ
472#
473# This is done by determining whether or not the appropriate directory
474# is available, and by checking whether or not specific configurations
475# have requested that this magic not happen.
476#
477# The command line options always override the explicit settings in
478# configure.in, and the settings in configure.in override this magic.
479#
480# If the default for a toolchain is to use GNU as and ld, and you don't
481# want to do that, then you should use the --without-gnu-as and
482# --without-gnu-ld options for the configure script.
483
484if [ x${use_gnu_as} = x ] ; then
6d1603cc 485 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
719cb03f
DZ
486 with_gnu_as=yes
487 withoptions="$withoptions --with-gnu-as"
488 fi
489fi
490
491if [ x${use_gnu_ld} = x ] ; then
6d1603cc 492 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
719cb03f
DZ
493 with_gnu_ld=yes
494 withoptions="$withoptions --with-gnu-ld"
495 fi
496fi
43557c0a 497
bc58b41d
RP
498#
499# Local Variables:
500# fill-column: 131
501# End:
502#
This page took 0.34091 seconds and 4 git commands to generate.