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