]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/configure.in
* ppc-opc.c (powerpc_operands): Delete duplicate entries.
[thirdparty/binutils-gdb.git] / gas / configure.in
CommitLineData
252b5132
RH
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it! If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
6dnl
7dnl v2.5 needed for --bindir et al
13b2be9c 8AC_PREREQ(2.57)
252b5132
RH
9AC_INIT(as.h)
10
13b2be9c
DJ
11dnl Autoconf 2.57 will find the aux dir without this. However, unless
12dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
13dnl gas/ instead of gas/../.
14AC_CONFIG_AUX_DIR(..)
252b5132 15AC_CANONICAL_SYSTEM
5d64ca4e 16AC_ISC_POSIX
252b5132 17
27b7e12d
AM
18changequote(,)dnl
19BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
20changequote([,])dnl
21AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
252b5132
RH
22
23AM_PROG_LIBTOOL
24
252b5132 25AC_ARG_ENABLE(targets,
241a6c40 26[ --enable-targets alternative target configurations besides the primary],
252b5132
RH
27[case "${enableval}" in
28 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
29 ;;
30 no) enable_targets= ;;
31 *) enable_targets=$enableval ;;
32esac])dnl
33AC_ARG_ENABLE(commonbfdlib,
34[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
35[case "${enableval}" in
36 yes) commonbfdlib=true ;;
37 no) commonbfdlib=false ;;
38 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
39esac])dnl
40
41using_cgen=no
42
9e9b66a9 43AM_BINUTILS_WARNINGS
a2d91340 44
252b5132
RH
45# Generate a header file
46AM_CONFIG_HEADER(config.h:config.in)
47
76a27922
ILT
48# If we are on a DOS filesystem, we must use gdb.ini rather than
49# .gdbinit.
76a27922 50case "${host}" in
591d4689 51 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 52 GDBINIT="gdb.ini"
13b2be9c
DJ
53 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
54 ;;
55 *)
56 GDBINIT=".gdbinit"
57 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
58 ;;
59esac
60AC_SUBST(GDBINIT)
61
44f2f9d2
AM
62#We need this for the host. BOUT header is in host order.
63AC_C_BIGENDIAN
64
252b5132
RH
65te_file=generic
66
67# Makefile target for installing gas in $(tooldir)/bin.
68install_tooldir=install-exec-tooldir
69
70canon_targets=""
15886821 71all_targets=no
252b5132
RH
72if test -n "$enable_targets" ; then
73 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
74 if test $t = "all"; then
75 all_targets=yes
76 continue
77 fi
6d83c84b 78 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
79 if test -n "$result" ; then
80 canon_targets="$canon_targets $result"
81# else
82# # Permit "all", etc. We don't support it yet though.
83# canon_targets="$canon_targets $t"
84 fi
85 done
86 GAS_UNIQ(canon_targets)
87fi
88
89emulations=""
90
91for this_target in $target $canon_targets ; do
92
14ee9f48
ILT
93 targ=${this_target}
94 . ${srcdir}/configure.tgt
95
96 case ${target_cpu} in
97 crisv32)
98 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
99 [Default CRIS architecture.])
100 ;;
252b5132
RH
101 esac
102
103 if test ${this_target} = $target ; then
104 target_cpu_type=${cpu_type}
105 elif test ${target_cpu_type} != ${cpu_type} ; then
106 continue
107 fi
108
14ee9f48 109 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 110 case ${generic_target} in
14ee9f48
ILT
111 i386-*-sco3.2v5*)
112 if test ${this_target} = $target; then
113 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
114 fi
115 ;;
1fe1f39c 116
79500683
AM
117 i386-*-msdosdjgpp* \
118 | i386-*-go32* \
14ee9f48
ILT
119 | i386-go32-rtems*)
120 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
121 ;;
79500683 122
14ee9f48
ILT
123 i860-*-*)
124 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
125 ;;
79500683 126
14ee9f48
ILT
127 mips-sony-bsd*)
128 ;;
79500683 129 mips-*-bsd*)
14ee9f48
ILT
130 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
131 ;;
4101eec8 132
14ee9f48
ILT
133 ppc-*-aix5.*)
134 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 135 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 136 ;;
ed84e695 137 ppc-*-linux-*)
14ee9f48
ILT
138 case "$endian" in
139 big) ;;
140 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
141 esac
142 ;;
143 ppc-*-solaris*)
144 if test ${this_target} = $target; then
145 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
146 [Define if default target is PowerPC Solaris.])
147 fi
148 if test x${endian} = xbig; then
149 AC_MSG_ERROR(Solaris must be configured little endian)
150 fi
151 ;;
152
153 sh*-*-symbianelf*)
154 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
155 ;;
252b5132
RH
156 esac
157
158 if test ${this_target} = $target ; then
159 endian_def=
160 if test x${endian} = xbig; then
161 endian_def=1
162 elif test x${endian} = xlittle; then
163 endian_def=0
164 fi
165 if test x${endian_def} != x; then
166 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
167 [Define as 1 if big endian.])
168 fi
169 fi
170
252b5132
RH
171# Other random stuff.
172
316f5878
RS
173 case ${cpu_type} in
174 mips)
175 # Set mips_cpu to the name of the default CPU.
176 case ${target_cpu} in
177 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
178 mips_cpu=from-abi
179 ;;
180 mipsisa32 | mipsisa32el)
181 mips_cpu=mips32
182 ;;
af7ee8bf
CD
183 mipsisa32r2 | mipsisa32r2el)
184 mips_cpu=mips32r2
185 ;;
316f5878
RS
186 mipsisa64 | mipsisa64el)
187 mips_cpu=mips64
188 ;;
5f74bc13
CD
189 mipsisa64r2 | mipsisa64r2el)
190 mips_cpu=mips64r2
191 ;;
316f5878
RS
192 mipstx39 | mipstx39el)
193 mips_cpu=r3900
194 ;;
8f6847cb
RS
195 mips64vr | mips64vrel)
196 mips_cpu=vr4100
197 ;;
5f74bc13 198 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
199changequote(,)dnl
200 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
201changequote([,])dnl
202 ;;
316f5878
RS
203 mips64* | mipsisa64* | mipsisa32*)
204changequote(,)dnl
205 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
206changequote([,])dnl
207 ;;
208 *)
209 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
210 ;;
211 esac
212 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
213 # binaries. It's a GNU extension that some OSes don't understand.
214 # The value only matters on ELF targets.
215 case ${target} in
216 *-*-irix*)
217 use_e_mips_abi_o32=0
218 ;;
219 *)
220 use_e_mips_abi_o32=1
221 ;;
222 esac
223 # Decide whether to generate 32-bit or 64-bit code by default.
224 # Used to resolve -march=from-abi when an embedded ABI is selected.
225 case ${target} in
226 mips64*-*-* | mipsisa64*-*-*)
227 mips_default_64bit=1
228 ;;
229 *)
230 mips_default_64bit=0
231 ;;
232 esac
cac012d6
AO
233 # Decide which ABI to target by default.
234 case ${target} in
235 mips64*-linux* | mips-sgi-irix6*)
236 mips_default_abi=N32_ABI
237 ;;
238 mips*-linux*)
239 mips_default_abi=O32_ABI
240 ;;
26eebcf5
MK
241 mips64*-openbsd*)
242 mips_default_abi=N64_ABI
243 ;;
cac012d6
AO
244 *)
245 mips_default_abi=NO_ABI
246 ;;
247 esac
316f5878
RS
248 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
249 [Default CPU for MIPS targets. ])
250 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
251 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
252 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
253 [Generate 64-bit code by default on MIPS targets. ])
cac012d6
AO
254 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
255 [Choose a default ABI for MIPS targets. ])
316f5878
RS
256 ;;
257 esac
258
252b5132
RH
259 # Do we need the opcodes library?
260 case ${cpu_type} in
0b1cf022 261 vax | tic30)
252b5132
RH
262 ;;
263
264 *)
265 need_opcodes=yes
266
267 case "${enable_shared}" in
268 yes) shared_opcodes=true ;;
269 *opcodes*) shared_opcodes=true ;;
270 *) shared_opcodes=false ;;
271 esac
252b5132
RH
272 ;;
273 esac
274
275 # Any other special object files needed ?
276 case ${cpu_type} in
07c1b327
CM
277
278 bfin)
279 echo ${extra_objects} | grep -s "bfin-parse.o"
280 if test $? -ne 0 ; then
281 extra_objects="$extra_objects bfin-parse.o"
282 fi
283
284 echo ${extra_objects} | grep -s "bfin-lex.o"
285 if test $? -ne 0 ; then
286 extra_objects="$extra_objects bfin-lex.o"
287 fi
288 ;;
289
1c53c80d 290 fr30 | ip2k | iq2000 | m32r | openrisc)
252b5132
RH
291 using_cgen=yes
292 ;;
293
49f58d10
JB
294 m32c)
295 using_cgen=yes
296 ;;
0ebb9a87
DB
297 frv)
298 using_cgen=yes
299 ;;
252b5132
RH
300 m68k)
301 case ${extra_objects} in
302 *m68k-parse.o*) ;;
303 *) extra_objects="$extra_objects m68k-parse.o" ;;
304 esac
305 ;;
306
280d71bf
DB
307 mep)
308 using_cgen=yes
309 ;;
310
252b5132 311 mips)
12e64c2c 312 echo ${extra_objects} | grep -s "itbl-parse.o"
252b5132
RH
313 if test $? -ne 0 ; then
314 extra_objects="$extra_objects itbl-parse.o"
315 fi
316
12e64c2c 317 echo ${extra_objects} | grep -s "itbl-lex.o"
252b5132
RH
318 if test $? -ne 0 ; then
319 extra_objects="$extra_objects itbl-lex.o"
320 fi
321
12e64c2c 322 echo ${extra_objects} | grep -s "itbl-ops.o"
252b5132
RH
323 if test $? -ne 0 ; then
324 extra_objects="$extra_objects itbl-ops.o"
325 fi
326 ;;
327
4970f871 328 mt)
047af9ef
AH
329 using_cgen=yes
330 ;;
331
c1e4eef7 332 i386 | s390 | sparc)
252b5132
RH
333 if test $this_target = $target ; then
334 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
335 fi
336 ;;
93fbbb04
GK
337
338 xstormy16)
339 using_cgen=yes
340 ;;
341
d70c5fc7
NC
342 xc16x)
343 using_cgen=yes
344 ;;
345
e0001a05
NC
346 xtensa)
347 echo ${extra_objects} | grep -s "xtensa-relax.o"
348 if test $? -ne 0 ; then
349 extra_objects="$extra_objects xtensa-relax.o"
350 fi
351 ;;
352
252b5132
RH
353 *)
354 ;;
355 esac
356
357 if test $using_cgen = yes ; then
358 case "x${extra_objects}" in
359 *cgen.o*) ;;
360 *) extra_objects="$extra_objects cgen.o" ;;
361 esac
362 fi
363
364# See if we really can support this configuration with the emulation code.
365
366 if test $this_target = $target ; then
252b5132
RH
367 obj_format=$fmt
368 te_file=$em
252b5132
RH
369 fi
370
371# From target name and format, produce a list of supported emulations.
372
373 case ${generic_target}-${fmt} in
374 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
4008bd9b 375 mips*-*-linux*-*) case "$endian" in
df3bcd6f
L
376 big) emulation="mipsbelf mipslelf mipself" ;;
377 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132
RH
378 esac ;;
379 mips-*-lnews*-ecoff) ;;
380 mips-*-*-ecoff) case "$endian" in
381 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
382 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
383 esac ;;
384 mips-*-*-elf) case "$endian" in
385 big) emulation="mipsbelf mipslelf mipself" ;;
386 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 387 esac ;;
906fac54 388 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
119caedd
L
389 # i386-pc-pe-coff != i386-pc-coff.
390 i386-*-pe-coff) ;;
4c63da97
AM
391 # Uncommenting the next line will turn on support for i386 AOUT
392 # for the default linux configuration
393 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
394 #
395 i386-*-aout) emulation="i386aout" ;;
4ca72d38 396 i386-*-coff) emulation="i386coff" ;;
4c63da97 397 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 398
f9c19112
HPN
399 # Always all formats. The first stated emulation becomes the default.
400 cris-*-*aout*) emulation="crisaout criself" ;;
401 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
402 esac
403
404 emulations="$emulations $emulation"
405
406done
407
15886821
L
408# Turn on all targets if possible
409if test ${all_targets} = "yes"; then
410 case ${target_cpu_type} in
411 i386)
412 case ${obj_format} in
413 aout)
414 emulations="$emulations i386coff i386elf"
415 ;;
416 coff)
417 emulations="$emulations i386aout i386elf"
418 ;;
419 elf)
420 emulations="$emulations i386aout i386coff"
421 ;;
422 esac
423 ;;
99ad8390
NC
424 x86_64)
425 case ${obj_format} in
426 aout)
427 emulations="$emulations i386coff i386elf"
428 ;;
429 coff)
430 emulations="$emulations i386aout i386elf"
431 ;;
432 elf)
433 emulations="$emulations i386aout i386coff"
434 ;;
435 esac
436 ;;
15886821
L
437 esac
438fi
439
252b5132
RH
440# Assign floating point type. Most processors with FP support
441# IEEE FP. On those that don't support FP at all, usually IEEE
442# is emulated.
443case ${target_cpu} in
12e64c2c 444 vax | pdp11 ) atof=vax ;;
252b5132
RH
445 *) atof=ieee ;;
446esac
447
448case "${obj_format}" in
449 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
450esac
451
452# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
453cgen_cpu_prefix=""
454if test $using_cgen = yes ; then
455 case ${target_cpu} in
456 *) cgen_cpu_prefix=${target_cpu} ;;
457 esac
458 AC_SUBST(cgen_cpu_prefix)
459 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
460fi
461
462dnl
463dnl Make sure the desired support files exist.
464dnl
465
466if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
467 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
468fi
469
470if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
471 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
472fi
473
252b5132
RH
474# Some COFF configurations want these random other flags set.
475case ${obj_format} in
476 coff)
477 case ${target_cpu_type} in
478 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
479 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
480 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
99ad8390 481 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
482 esac
483 ;;
484esac
485
486# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
487# with --enable-targets=... should be checked for environment, format, cpu
488# setting.
252b5132
RH
489#
490# For each configuration, the necessary object file support code must be linked
491# in. This might be only one, it might be up to four. The necessary emulation
492# code needs to be provided, too.
493#
494# And then there's "--enable-targets=all"....
495#
496# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
497
498formats="${obj_format}"
499emfiles=""
500EMULATIONS=""
501GAS_UNIQ(emulations)
502for em in . $emulations ; do
503 case $em in
504 .) continue ;;
97238fbd 505 mipsbelf | mipslelf | mipself)
252b5132 506 fmt=elf file=mipself ;;
97238fbd 507 mipsbecoff | mipslecoff | mipsecoff)
252b5132 508 fmt=ecoff file=mipsecoff ;;
0aa5d426
HPN
509 *coff)
510 fmt=coff file=$em ;;
511 *aout)
512 fmt=aout file=$em ;;
513 *elf)
514 fmt=elf file=$em ;;
252b5132
RH
515 esac
516 formats="$formats $fmt"
517 emfiles="$emfiles e-$file.o"
518 EMULATIONS="$EMULATIONS &$em,"
519done
520GAS_UNIQ(formats)
521GAS_UNIQ(emfiles)
522if test `set . $formats ; shift ; echo $#` -gt 1 ; then
523 for fmt in $formats ; do
524 case $fmt in
525 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
526 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
527 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
528 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
529 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
530 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
252b5132 531 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132
RH
532 esac
533 extra_objects="$extra_objects obj-$fmt.o"
534 done
535 obj_format=multi
536fi
537if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 538 DEFAULT_EMULATION=`set . $emulations ; echo $2`
4ca72d38
AM
539 # e-mips* has more than one emulation per file, e-i386* has just one at the
540 # moment. If only one emulation is specified, then don't define
541 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
542 case "${obj_format}${emfiles}" in
543 multi* | *mips*)
4ca72d38
AM
544 extra_objects="$extra_objects $emfiles"
545 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
546 esac
252b5132
RH
547fi
548AC_SUBST(extra_objects)
549AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
550AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
551 [Default emulation.])
552
252b5132
RH
553reject_dev_configs=yes
554
555case ${reject_dev_configs}-${dev} in
556 yes-yes) # Oops.
557 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
558 ;;
559esac
560
561AC_SUBST(target_cpu_type)
562AC_SUBST(obj_format)
563AC_SUBST(te_file)
564AC_SUBST(install_tooldir)
565AC_SUBST(atof)
566dnl AC_SUBST(emulation)
567
252b5132
RH
568# do we need the opcodes library?
569case "${need_opcodes}" in
570yes)
571 OPCODES_LIB=../opcodes/libopcodes.la
572 ;;
573esac
574
252b5132
RH
575AC_SUBST(OPCODES_LIB)
576
252b5132
RH
577AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
578AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
579AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
580AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
581AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
582
583AC_PROG_CC
584
585AC_PROG_YACC
586AM_PROG_LEX
587
0d6af1ab 588ALL_LINGUAS="fr tr es rw"
20e95c23
DJ
589ZW_GNU_GETTEXT_SISTER_DIR
590AM_PO_SUBDIRS
252b5132
RH
591
592AM_MAINTAINER_MODE
d5fbea21 593AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
594AC_EXEEXT
595
596AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
597
598# Put this here so that autoconf's "cross-compiling" message doesn't confuse
599# people who are not cross-compiling but are compiling cross-assemblers.
600AC_MSG_CHECKING(whether compiling a cross-assembler)
601if test "${host}" = "${target}"; then
602 cross_gas=no
603else
604 cross_gas=yes
605 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
606fi
607AC_MSG_RESULT($cross_gas)
608
609dnl ansidecl.h will deal with const
610dnl AC_CONST
611AC_FUNC_ALLOCA
612AC_C_INLINE
613
614# VMS doesn't have unlink.
615AC_CHECK_FUNCS(unlink remove, break)
616
617# Some systems don't have sbrk().
618AC_CHECK_FUNCS(sbrk)
619
39bec121
TW
620# do we need the math library?
621case "${need_libm}" in
12e64c2c 622yes)
39bec121
TW
623 AC_CHECK_LIBM
624 AC_SUBST(LIBM)
625 ;;
626esac
627
252b5132
RH
628# Some non-ANSI preprocessors botch requoting inside strings. That's bad
629# enough, but on some of those systems, the assert macro relies on requoting
630# working properly!
631GAS_WORKING_ASSERT
632
633# On some systems, the system header files may not declare malloc, realloc,
634# and free. There are places where gas needs these functions to have been
635# declared -- such as when taking their addresses.
636gas_test_headers="
637#ifdef HAVE_MEMORY_H
638#include <memory.h>
639#endif
640#ifdef HAVE_STRING_H
641#include <string.h>
642#else
643#ifdef HAVE_STRINGS_H
644#include <strings.h>
645#endif
646#endif
647#ifdef HAVE_STDLIB_H
648#include <stdlib.h>
649#endif
650#ifdef HAVE_UNISTD_H
651#include <unistd.h>
652#endif
653"
252b5132
RH
654
655# Does errno.h declare errno, or do we have to add a separate declaration
656# for it?
657GAS_CHECK_DECL_NEEDED(errno, f, int f, [
658#ifdef HAVE_ERRNO_H
659#include <errno.h>
660#endif
661])
662
56f36663
NC
663AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
664AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
665[AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);],
666gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
667AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
668if test $gas_cv_decl_getopt_unistd_h = yes; then
669 AC_DEFINE([HAVE_DECL_GETOPT], 1,
670 [Is the prototype for getopt in <unistd.h> in the expected format?])
671fi
672
e8a38df5
AL
673GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
674GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
675GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
676GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
677GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
678GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
679
6d74f28b
EB
680AC_CHECK_DECLS([vsnprintf])
681
c973bc5c
NC
682BFD_BINARY_FOPEN
683
108a6f8e
CD
684dnl Required for html and install-html targets.
685AC_SUBST(datarootdir)
686AC_SUBST(docdir)
687AC_SUBST(htmldir)
688
252b5132
RH
689dnl This must come last.
690
691dnl We used to make symlinks to files in the source directory, but now
692dnl we just use the right name for .c files, and create .h files in
693dnl the build directory which include the right .h file. Make sure
694dnl the old symlinks don't exist, so that a reconfigure in an existing
695dnl directory behaves reasonably.
696
13b2be9c
DJ
697AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
698AC_CONFIG_COMMANDS([default],
252b5132
RH
699[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
700 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
701 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
702 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
703 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
704 if test "x$cgen_cpu_prefix" != x ; then
705 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
20e95c23 706 fi],
252b5132
RH
707[target_cpu_type=${target_cpu_type}
708 cgen_cpu_prefix=${cgen_cpu_prefix}
709 obj_format=${obj_format}
710 te_file=${te_file}])
13b2be9c
DJ
711
712AC_OUTPUT