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