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