PR 14072
[deliverable/binutils-gdb.git] / gas / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl
7 dnl v2.5 needed for --bindir et al
8 AC_PREREQ(2.59)
9 AC_INIT
10 AC_CONFIG_SRCDIR(as.h)
11
12 dnl Autoconf 2.57 will find the aux dir without this. However, unless
13 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
14 dnl gas/ instead of gas/../.
15 AC_CONFIG_AUX_DIR(..)
16 AC_CANONICAL_TARGET
17 AC_ISC_POSIX
18
19 changequote(,)dnl
20 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
21 changequote([,])dnl
22 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
23
24 AC_PROG_CC
25 AC_GNU_SOURCE
26 AC_USE_SYSTEM_EXTENSIONS
27 ACX_LARGEFILE
28
29 LT_INIT
30
31 AC_ARG_ENABLE(targets,
32 [ --enable-targets alternative target configurations besides the primary],
33 [case "${enableval}" in
34 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
35 ;;
36 no) enable_targets= ;;
37 *) enable_targets=$enableval ;;
38 esac])dnl
39
40 ac_checking=yes
41 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
42 ac_checking=
43 fi
44 AC_ARG_ENABLE(checking,
45 [ --enable-checking enable run-time checks],
46 [case "${enableval}" in
47 no|none) ac_checking= ;;
48 *) ac_checking=yes ;;
49 esac])dnl
50 if test x$ac_checking != x ; then
51 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
52 fi
53
54 using_cgen=no
55
56 AM_BINUTILS_WARNINGS
57
58 # Generate a header file
59 AC_CONFIG_HEADERS(config.h:config.in)
60
61 # PR 14072
62 AH_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
70 # If we are on a DOS filesystem, we must use gdb.ini rather than
71 # .gdbinit.
72 case "${host}" in
73 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
74 GDBINIT="gdb.ini"
75 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
76 ;;
77 *)
78 GDBINIT=".gdbinit"
79 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
80 ;;
81 esac
82 AC_SUBST(GDBINIT)
83
84 #We need this for the host. BOUT header is in host order.
85 AC_C_BIGENDIAN
86
87 te_file=generic
88
89 # Makefile target for installing gas in $(tooldir)/bin.
90 install_tooldir=install-exec-tooldir
91
92 canon_targets=""
93 all_targets=no
94 if test -n "$enable_targets" ; then
95 for t in `echo $enable_targets | sed 's/,/ /g'`; do
96 if test $t = "all"; then
97 all_targets=yes
98 continue
99 fi
100 result=`$ac_config_sub $t 2>/dev/null`
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)
109 fi
110
111 emulations=""
112
113 for this_target in $target $canon_targets ; do
114
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 ;;
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
131 generic_target=${cpu_type}-${target_vendor}-${target_os}
132 case ${generic_target} in
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 ;;
138
139 i386-*-msdosdjgpp* \
140 | i386-*-go32* \
141 | i386-go32-rtems*)
142 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
143 ;;
144
145 i860-*-*)
146 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
147 ;;
148
149 microblaze*)
150 ;;
151
152 mips-sony-bsd*)
153 ;;
154 mips-*-bsd*)
155 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
156 ;;
157
158 changequote(,)dnl
159 ppc-*-aix[5-9].*)
160 changequote([,])dnl
161 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
162 [Define if using AIX 5.2 value for C_WEAKEXT.])
163 ;;
164 ppc-*-linux-*)
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 ;;
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
198 # Other random stuff.
199
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 ;;
210 mipsisa32r2 | mipsisa32r2el)
211 mips_cpu=mips32r2
212 ;;
213 mipsisa64 | mipsisa64el)
214 mips_cpu=mips64
215 ;;
216 mipsisa64r2 | mipsisa64r2el)
217 mips_cpu=mips64r2
218 ;;
219 mipstx39 | mipstx39el)
220 mips_cpu=r3900
221 ;;
222 mips64vr | mips64vrel)
223 mips_cpu=vr4100
224 ;;
225 mipsisa32r2* | mipsisa64r2*)
226 changequote(,)dnl
227 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
228 changequote([,])dnl
229 ;;
230 mips64* | mipsisa64* | mipsisa32*)
231 changequote(,)dnl
232 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
233 changequote([,])dnl
234 ;;
235 *)
236 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
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
260 # Decide which ABI to target by default.
261 case ${target} in
262 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
263 mips_default_abi=N32_ABI
264 ;;
265 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
266 mips_default_abi=O32_ABI
267 ;;
268 mips64*-openbsd*)
269 mips_default_abi=N64_ABI
270 ;;
271 *)
272 mips_default_abi=NO_ABI
273 ;;
274 esac
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. ])
281 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
282 [Choose a default ABI for MIPS targets. ])
283 ;;
284 esac
285
286 # Do we need the opcodes library?
287 case ${cpu_type} in
288 vax | tic30)
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
299 ;;
300 esac
301
302 # Any other special object files needed ?
303 case ${cpu_type} in
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
311 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
312 if test $? -ne 0 ; then
313 extra_objects="$extra_objects bfin-lex-wrapper.o"
314 fi
315 ;;
316
317 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc)
318 using_cgen=yes
319 ;;
320
321 m32c)
322 using_cgen=yes
323 ;;
324 frv)
325 using_cgen=yes
326 ;;
327 m68k)
328 case ${extra_objects} in
329 *m68k-parse.o*) ;;
330 *) extra_objects="$extra_objects m68k-parse.o" ;;
331 esac
332 ;;
333
334 mep)
335 using_cgen=yes
336 ;;
337
338 mips)
339 echo ${extra_objects} | grep -s "itbl-parse.o"
340 if test $? -ne 0 ; then
341 extra_objects="$extra_objects itbl-parse.o"
342 fi
343
344 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
345 if test $? -ne 0 ; then
346 extra_objects="$extra_objects itbl-lex-wrapper.o"
347 fi
348
349 echo ${extra_objects} | grep -s "itbl-ops.o"
350 if test $? -ne 0 ; then
351 extra_objects="$extra_objects itbl-ops.o"
352 fi
353 ;;
354
355 mt)
356 using_cgen=yes
357 ;;
358
359 i386 | s390 | sparc)
360 if test $this_target = $target ; then
361 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
362 fi
363 ;;
364
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
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
379 xstormy16)
380 using_cgen=yes
381 ;;
382
383 xc16x)
384 using_cgen=yes
385 ;;
386
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
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
408 obj_format=$fmt
409 te_file=$em
410 fi
411
412 case ${te_file} in
413 vms) extra_objects="$extra_objects te-vms.o" ;;
414 esac
415
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" ;;
420 mips*-*-linux*-* | mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
421 case "$endian" in
422 big) emulation="mipsbelf mipslelf mipself" ;;
423 *) emulation="mipslelf mipsbelf mipself" ;;
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" ;;
433 esac ;;
434 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
435 # i386-pc-pe-coff != i386-pc-coff.
436 i386-*-pe-coff) ;;
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" ;;
442 i386-*-coff) emulation="i386coff" ;;
443 i386-*-elf) emulation="i386elf" ;;
444
445 # Always all formats. The first stated emulation becomes the default.
446 cris-*-*aout*) emulation="crisaout criself" ;;
447 cris-*-*) emulation="criself crisaout" ;;
448 esac
449
450 emulations="$emulations $emulation"
451
452 done
453
454 # Turn on all targets if possible
455 if 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 ;;
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 ;;
483 esac
484 fi
485
486 # PE code has way too many macros tweaking behaviour
487 case ${te_file} in
488 pe*) emulations="" ;;
489 esac
490
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.
494 case ${target_cpu} in
495 vax | pdp11 ) atof=vax ;;
496 *) atof=ieee ;;
497 esac
498
499 case "${obj_format}" in
500 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
501 esac
502
503 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
504 cgen_cpu_prefix=""
505 if 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?])
511 fi
512
513 dnl
514 dnl Make sure the desired support files exist.
515 dnl
516
517 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
518 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
519 fi
520
521 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
522 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
523 fi
524
525 # Some COFF configurations want these random other flags set.
526 case ${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?]) ;;
532 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
533 esac
534 ;;
535 esac
536
537 # Getting this done right is going to be a bitch. Each configuration specified
538 # with --enable-targets=... should be checked for environment, format, cpu
539 # setting.
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
549 formats="${obj_format}"
550 emfiles=""
551 EMULATIONS=""
552 GAS_UNIQ(emulations)
553 for em in . $emulations ; do
554 case $em in
555 .) continue ;;
556 mipsbelf | mipslelf | mipself)
557 fmt=elf file=mipself ;;
558 mipsbecoff | mipslecoff | mipsecoff)
559 fmt=ecoff file=mipsecoff ;;
560 *coff)
561 fmt=coff file=$em ;;
562 *aout)
563 fmt=aout file=$em ;;
564 *elf)
565 fmt=elf file=$em ;;
566 esac
567 formats="$formats $fmt"
568 emfiles="$emfiles e-$file.o"
569 EMULATIONS="$EMULATIONS &$em,"
570 done
571 GAS_UNIQ(formats)
572 GAS_UNIQ(emfiles)
573 if 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?]) ;;
582 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
583 esac
584 extra_objects="$extra_objects obj-$fmt.o"
585 done
586 obj_format=multi
587 fi
588 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
589 DEFAULT_EMULATION=`set . $emulations ; echo $2`
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*)
595 extra_objects="$extra_objects $emfiles"
596 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
597 esac
598 fi
599 AC_SUBST(extra_objects)
600 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
601 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
602 [Default emulation.])
603
604 reject_dev_configs=yes
605
606 case ${reject_dev_configs}-${dev} in
607 yes-yes) # Oops.
608 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
609 ;;
610 esac
611
612 AC_SUBST(target_cpu_type)
613 AC_SUBST(obj_format)
614 AC_SUBST(te_file)
615 AC_SUBST(install_tooldir)
616 AC_SUBST(atof)
617 dnl AC_SUBST(emulation)
618
619 # do we need the opcodes library?
620 case "${need_opcodes}" in
621 yes)
622 OPCODES_LIB=../opcodes/libopcodes.la
623 ;;
624 esac
625
626 AC_SUBST(OPCODES_LIB)
627
628 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
629 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
630 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
631 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
632 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
633
634 AC_PROG_YACC
635 AM_PROG_LEX
636
637 ALL_LINGUAS="fr tr es rw id ru fi ja"
638 ZW_GNU_GETTEXT_SISTER_DIR
639 AM_PO_SUBDIRS
640
641 AM_MAINTAINER_MODE
642 AM_CONDITIONAL(GENINSRC_NEVER, false)
643 AC_EXEEXT
644
645 AC_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)
646 ACX_HEADER_STRING
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.
650 AC_MSG_CHECKING(whether compiling a cross-assembler)
651 if test "${host}" = "${target}"; then
652 cross_gas=no
653 else
654 cross_gas=yes
655 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
656 fi
657 AC_MSG_RESULT($cross_gas)
658
659 dnl ansidecl.h will deal with const
660 dnl AC_C_CONST
661 AC_FUNC_ALLOCA
662 AC_C_INLINE
663
664 # VMS doesn't have unlink.
665 AC_CHECK_FUNCS(unlink remove, break)
666
667 # Some systems don't have sbrk().
668 AC_CHECK_FUNCS(sbrk)
669
670 AC_CHECK_FUNCS(setlocale)
671 AM_LC_MESSAGES
672
673 # do we need the math library?
674 case "${need_libm}" in
675 yes)
676 LT_LIB_M
677 AC_SUBST(LIBM)
678 ;;
679 esac
680
681 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
682 # enough, but on some of those systems, the assert macro relies on requoting
683 # working properly!
684 GAS_WORKING_ASSERT
685
686 # On some systems, the system header files may not declare malloc, realloc,
687 # and free. There are places where gas needs these functions to have been
688 # declared -- such as when taking their addresses.
689 gas_test_headers="
690 #ifdef HAVE_MEMORY_H
691 #include <memory.h>
692 #endif
693 #ifdef HAVE_STRING_H
694 #include <string.h>
695 #else
696 #ifdef HAVE_STRINGS_H
697 #include <strings.h>
698 #endif
699 #endif
700 #ifdef HAVE_STDLIB_H
701 #include <stdlib.h>
702 #endif
703 #ifdef HAVE_UNISTD_H
704 #include <unistd.h>
705 #endif
706 "
707
708 # Does errno.h declare errno, or do we have to add a separate declaration
709 # for it?
710 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
711 #ifdef HAVE_ERRNO_H
712 #include <errno.h>
713 #endif
714 ])
715
716 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
717 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
718 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
719 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
720 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
721 if test $gas_cv_decl_getopt_unistd_h = yes; then
722 AC_DEFINE([HAVE_DECL_GETOPT], 1,
723 [Is the prototype for getopt in <unistd.h> in the expected format?])
724 fi
725
726 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
727 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
728 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
729 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
730 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
731 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
732
733 AC_CHECK_DECLS([mempcpy])
734 AC_CHECK_DECLS([vsnprintf])
735
736 BFD_BINARY_FOPEN
737
738 # Link in zlib if we can. This allows us to write compressed debug sections.
739 AM_ZLIB
740
741 # Support for VMS timestamps via cross compile
742
743 if test "$ac_cv_header_time_h" = yes; then
744 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
745 fi
746
747 if test "$ac_cv_header_sys_stat_h" = yes; then
748 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
749 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
750 fi
751
752
753 dnl Required for html, pdf, install-pdf and install-html targets.
754 AC_SUBST(datarootdir)
755 AC_SUBST(docdir)
756 AC_SUBST(htmldir)
757 AC_SUBST(pdfdir)
758
759 dnl This must come last.
760
761 dnl We used to make symlinks to files in the source directory, but now
762 dnl we just use the right name for .c files, and create .h files in
763 dnl the build directory which include the right .h file. Make sure
764 dnl the old symlinks don't exist, so that a reconfigure in an existing
765 dnl directory behaves reasonably.
766
767 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
768 AC_CONFIG_COMMANDS([default],
769 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
770 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
771 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
772 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
773 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
774 if test "x$cgen_cpu_prefix" != x ; then
775 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
776 fi],
777 [target_cpu_type=${target_cpu_type}
778 cgen_cpu_prefix=${cgen_cpu_prefix}
779 obj_format=${obj_format}
780 te_file=${te_file}])
781
782 AC_OUTPUT
This page took 0.117899 seconds and 4 git commands to generate.