]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/configure.ac
Add -mrelax-relocations= to x86 assembler
[thirdparty/binutils-gdb.git] / gas / configure.ac
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 Copyright (C) 2012-2016 Free Software Foundation, Inc.
7 dnl
8 dnl This file is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; see the file COPYING3. If not see
20 dnl <http://www.gnu.org/licenses/>.
21 dnl
22 dnl v2.5 needed for --bindir et al
23 AC_PREREQ(2.59)
24 m4_include([../bfd/version.m4])
25 AC_INIT([gas], BFD_VERSION)
26 AC_CONFIG_SRCDIR(as.h)
27
28 dnl Autoconf 2.57 will find the aux dir without this. However, unless
29 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30 dnl gas/ instead of gas/../.
31 AC_CONFIG_AUX_DIR(..)
32 AC_CANONICAL_TARGET
33 AC_ISC_POSIX
34
35 AM_INIT_AUTOMAKE
36
37 AC_PROG_CC
38 AC_GNU_SOURCE
39 AC_USE_SYSTEM_EXTENSIONS
40
41 LT_INIT
42 ACX_LARGEFILE
43
44 AC_ARG_ENABLE(targets,
45 [ --enable-targets alternative target configurations besides the primary],
46 [case "${enableval}" in
47 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
48 ;;
49 no) enable_targets= ;;
50 *) enable_targets=$enableval ;;
51 esac])dnl
52
53 ac_checking=yes
54 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
55 ac_checking=
56 fi
57 AC_ARG_ENABLE(checking,
58 [ --enable-checking enable run-time checks],
59 [case "${enableval}" in
60 no|none) ac_checking= ;;
61 *) ac_checking=yes ;;
62 esac])dnl
63 if test x$ac_checking != x ; then
64 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
65 fi
66
67 # PR gas/19109
68 # Decide the default method for compressing debug sections.
69 ac_default_compressed_debug_sections=unset
70 # Provide a configure time option to override our default.
71 AC_ARG_ENABLE(compressed_debug_sections,
72 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
73 [compress debug sections by default]),
74 [case ,"${enableval}", in
75 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
76 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
77 *) ac_default_compressed_debug_sections=unset ;;
78 esac])dnl
79
80 # PR gas/19520
81 # Decide if x86 assembler should generate relax relocations.
82 ac_default_x86_relax_relocations=unset
83 # Provide a configure time option to override our default.
84 AC_ARG_ENABLE(x86_relax_relocations,
85 AS_HELP_STRING([--enable-x86-relax-relocations],
86 [generate x86 relax relocations by default]),
87 [case "${enableval}" in
88 no) ac_default_x86_relax_relocations=0 ;;
89 esac])dnl
90
91 using_cgen=no
92
93 AM_BINUTILS_WARNINGS
94
95 # Generate a header file
96 AC_CONFIG_HEADERS(config.h:config.in)
97
98 # PR 14072
99 AH_VERBATIM([00_CONFIG_H_CHECK],
100 [/* Check that config.h is #included before system headers
101 (this works only for glibc, but that should be enough). */
102 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
103 # error config.h must be #included before system headers
104 #endif
105 #define __CONFIG_H__ 1])
106
107 # If we are on a DOS filesystem, we must use gdb.ini rather than
108 # .gdbinit.
109 case "${host}" in
110 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
111 GDBINIT="gdb.ini"
112 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
113 ;;
114 *)
115 GDBINIT=".gdbinit"
116 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
117 ;;
118 esac
119 AC_SUBST(GDBINIT)
120
121 #We need this for the host. BOUT header is in host order.
122 AC_C_BIGENDIAN
123
124 te_file=generic
125
126 # Makefile target for installing gas in $(tooldir)/bin.
127 install_tooldir=install-exec-tooldir
128
129 canon_targets=""
130 all_targets=no
131 if test -n "$enable_targets" ; then
132 for t in `echo $enable_targets | sed 's/,/ /g'`; do
133 if test $t = "all"; then
134 all_targets=yes
135 continue
136 fi
137 result=`$ac_config_sub $t 2>/dev/null`
138 if test -n "$result" ; then
139 canon_targets="$canon_targets $result"
140 # else
141 # # Permit "all", etc. We don't support it yet though.
142 # canon_targets="$canon_targets $t"
143 fi
144 done
145 GAS_UNIQ(canon_targets)
146 fi
147
148 emulations=""
149
150 for this_target in $target $canon_targets ; do
151
152 targ=${this_target}
153 . ${srcdir}/configure.tgt
154
155 case ${target_cpu} in
156 crisv32)
157 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
158 [Default CRIS architecture.])
159 ;;
160 esac
161
162 if test ${this_target} = $target ; then
163 target_cpu_type=${cpu_type}
164 elif test ${target_cpu_type} != ${cpu_type} ; then
165 continue
166 fi
167
168 generic_target=${cpu_type}-${target_vendor}-${target_os}
169 case ${generic_target} in
170 i386-*-sco3.2v5*)
171 if test ${this_target} = $target; then
172 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
173 fi
174 ;;
175
176 i386-*-msdosdjgpp* \
177 | i386-*-go32* \
178 | i386-go32-rtems*)
179 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
180 ;;
181
182 i386-*-solaris2 \
183 | x86_64-*-solaris2 \
184 | i386-*-solaris2.[[0-9]] \
185 | i386-*-solaris2.1[[01]] \
186 | x86_64-*-solaris2.1[[01]])
187 if test ${this_target} = $target \
188 && test ${ac_default_x86_relax_relocations} = unset; then
189 ac_default_x86_relax_relocations=0
190 fi
191 ;;
192
193 i860-*-*)
194 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
195 ;;
196
197 microblaze*)
198 ;;
199
200 changequote(,)dnl
201 ppc-*-aix[5-9].*)
202 changequote([,])dnl
203 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
204 [Define if using AIX 5.2 value for C_WEAKEXT.])
205 ;;
206 ppc-*-solaris*)
207 if test ${this_target} = $target; then
208 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
209 [Define if default target is PowerPC Solaris.])
210 fi
211 if test x${endian} = xbig; then
212 AC_MSG_ERROR(Solaris must be configured little endian)
213 fi
214 ;;
215
216 sh*-*-symbianelf*)
217 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
218 ;;
219 esac
220
221 if test ${this_target} = $target ; then
222 endian_def=
223 if test x${endian} = xbig; then
224 endian_def=1
225 elif test x${endian} = xlittle; then
226 endian_def=0
227 fi
228 if test x${endian_def} != x; then
229 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
230 [Define as 1 if big endian.])
231 fi
232 fi
233
234 # Other random stuff.
235
236 case ${cpu_type} in
237 mips)
238 # Set mips_cpu to the name of the default CPU.
239 case ${target_cpu} in
240 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
241 mips_cpu=from-abi
242 ;;
243 mipsisa32 | mipsisa32el)
244 mips_cpu=mips32
245 ;;
246 mipsisa32r2 | mipsisa32r2el)
247 mips_cpu=mips32r2
248 ;;
249 mipsisa32r3 | mipsisa32r3el)
250 mips_cpu=mips32r3
251 ;;
252 mipsisa32r5 | mipsisa32r5el)
253 mips_cpu=mips32r5
254 ;;
255 mipsisa32r6 | mipsisa32r6el)
256 mips_cpu=mips32r6
257 ;;
258 mipsisa64 | mipsisa64el)
259 mips_cpu=mips64
260 ;;
261 mipsisa64r2 | mipsisa64r2el)
262 mips_cpu=mips64r2
263 ;;
264 mipsisa64r3 | mipsisa64r3el)
265 mips_cpu=mips64r3
266 ;;
267 mipsisa64r5 | mipsisa64r5el)
268 mips_cpu=mips64r5
269 ;;
270 mipsisa64r6 | mipsisa64r6el)
271 mips_cpu=mips64r6
272 ;;
273 mipstx39 | mipstx39el)
274 mips_cpu=r3900
275 ;;
276 mips64vr | mips64vrel)
277 mips_cpu=vr4100
278 ;;
279 mipsisa32r2* | mipsisa64r2*)
280 changequote(,)dnl
281 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
282 changequote([,])dnl
283 ;;
284 mipsisa32r6* | mipsisa64r6*)
285 changequote(,)dnl
286 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
287 changequote([,])dnl
288 ;;
289 mips64* | mipsisa64* | mipsisa32*)
290 changequote(,)dnl
291 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
292 changequote([,])dnl
293 ;;
294 mips*)
295 changequote(,)dnl
296 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
297 changequote([,])dnl
298 ;;
299 *)
300 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
301 ;;
302 esac
303 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
304 # binaries. It's a GNU extension that some OSes don't understand.
305 case ${target} in
306 *-*-irix*)
307 use_e_mips_abi_o32=0
308 ;;
309 *)
310 use_e_mips_abi_o32=1
311 ;;
312 esac
313 # Decide whether to generate 32-bit or 64-bit code by default.
314 # Used to resolve -march=from-abi when an embedded ABI is selected.
315 case ${target} in
316 mips64*-*-* | mipsisa64*-*-*)
317 mips_default_64bit=1
318 ;;
319 *)
320 mips_default_64bit=0
321 ;;
322 esac
323 # Decide which ABI to target by default.
324 case ${target} in
325 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
326 mips_default_abi=N32_ABI
327 ;;
328 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
329 mips_default_abi=O32_ABI
330 ;;
331 mips64*-openbsd*)
332 mips_default_abi=N64_ABI
333 ;;
334 *)
335 mips_default_abi=NO_ABI
336 ;;
337 esac
338 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
339 [Default CPU for MIPS targets. ])
340 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
341 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
342 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
343 [Generate 64-bit code by default on MIPS targets. ])
344 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
345 [Choose a default ABI for MIPS targets. ])
346 ;;
347 esac
348
349 # Do we need the opcodes library?
350 case ${cpu_type} in
351 vax | tic30)
352 ;;
353
354 *)
355 need_opcodes=yes
356
357 case "${enable_shared}" in
358 yes) shared_opcodes=true ;;
359 *opcodes*) shared_opcodes=true ;;
360 *) shared_opcodes=false ;;
361 esac
362 ;;
363 esac
364
365 # Any other special object files needed ?
366 case ${cpu_type} in
367
368 bfin)
369 echo ${extra_objects} | grep -s "bfin-parse.o"
370 if test $? -ne 0 ; then
371 extra_objects="$extra_objects bfin-parse.o"
372 fi
373
374 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
375 if test $? -ne 0 ; then
376 extra_objects="$extra_objects bfin-lex-wrapper.o"
377 fi
378 ;;
379
380 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
381 using_cgen=yes
382 ;;
383
384 m32c)
385 using_cgen=yes
386 ;;
387 frv)
388 using_cgen=yes
389 ;;
390 m68k)
391 case ${extra_objects} in
392 *m68k-parse.o*) ;;
393 *) extra_objects="$extra_objects m68k-parse.o" ;;
394 esac
395 ;;
396
397 mep)
398 using_cgen=yes
399 ;;
400
401 mips)
402 echo ${extra_objects} | grep -s "itbl-parse.o"
403 if test $? -ne 0 ; then
404 extra_objects="$extra_objects itbl-parse.o"
405 fi
406
407 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
408 if test $? -ne 0 ; then
409 extra_objects="$extra_objects itbl-lex-wrapper.o"
410 fi
411
412 echo ${extra_objects} | grep -s "itbl-ops.o"
413 if test $? -ne 0 ; then
414 extra_objects="$extra_objects itbl-ops.o"
415 fi
416 ;;
417
418 mt)
419 using_cgen=yes
420 ;;
421
422 nds32)
423 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
424 # based on arch_name.
425 AC_MSG_CHECKING(for default configuration of --with-arch)
426 if test "x${with_arch}" != x; then
427 case ${with_arch} in
428 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
429 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
430 [Define value for nds32_arch_name])
431 ;;
432 *)
433 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
434 ;;
435 esac
436 fi
437 AC_MSG_RESULT($with_arch)
438
439 # Decide features one by one.
440 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
441 if test "x${enable_dx_regs}" = xyes; then
442 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
443 [Define value for nds32_dx_regs])
444 else
445 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
446 [Define default value for nds32_dx_regs])
447 fi
448 AC_MSG_RESULT($enable_dx_regs)
449
450 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
451 if test "x${enable_perf_ext}" = xno; then
452 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
453 [Define value for nds32_perf_ext])
454 else
455 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
456 [Define default value for nds32_perf_ext])
457 fi
458 AC_MSG_RESULT($enable_perf_ext)
459
460 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
461 if test "x${enable_perf_ext2}" = xno; then
462 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
463 [Define value for nds32_perf_ext2])
464 else
465 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
466 [Define default value for nds32_perf_ext2])
467 fi
468 AC_MSG_RESULT($enable_perf_ext2)
469
470 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
471 if test "x${enable_string_ext}" = xno; then
472 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
473 [Define value for nds32_string_ext])
474 else
475 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
476 [Define default value for nds32_string_ext])
477 fi
478 AC_MSG_RESULT($enable_string_ext)
479
480 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
481 if test "x${enable_audio_ext}" = xno; then
482 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
483 [Define value for nds32_audio_ext])
484 else
485 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
486 [Define default value for nds32_audio_ext])
487 fi
488 AC_MSG_RESULT($enable_audio_ext)
489 ;;
490
491 i386 | s390 | sparc)
492 if test $this_target = $target ; then
493 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
494 fi
495 ;;
496
497 rl78)
498 echo ${extra_objects} | grep -s "rl78-parse.o"
499 if test $? -ne 0 ; then
500 extra_objects="$extra_objects rl78-parse.o"
501 fi
502 ;;
503
504 rx)
505 echo ${extra_objects} | grep -s "rx-parse.o"
506 if test $? -ne 0 ; then
507 extra_objects="$extra_objects rx-parse.o"
508 fi
509 ;;
510
511 xstormy16)
512 using_cgen=yes
513 ;;
514
515 xc16x)
516 using_cgen=yes
517 ;;
518
519 xtensa)
520 echo ${extra_objects} | grep -s "xtensa-relax.o"
521 if test $? -ne 0 ; then
522 extra_objects="$extra_objects xtensa-relax.o"
523 fi
524 ;;
525
526 *)
527 ;;
528 esac
529
530 if test $using_cgen = yes ; then
531 case "x${extra_objects}" in
532 *cgen.o*) ;;
533 *) extra_objects="$extra_objects cgen.o" ;;
534 esac
535 fi
536
537 # See if we really can support this configuration with the emulation code.
538
539 if test $this_target = $target ; then
540 obj_format=$fmt
541 te_file=$em
542 fi
543
544 case ${te_file} in
545 vms) extra_objects="$extra_objects te-vms.o" ;;
546 esac
547
548 # From target name and format, produce a list of supported emulations.
549
550 case ${generic_target}-${fmt} in
551 mips-*-*-*) case "$endian" in
552 big) emulation="mipsbelf mipslelf mipself" ;;
553 *) emulation="mipslelf mipsbelf mipself" ;;
554 esac ;;
555 # i386-pc-pe-coff != i386-pc-coff.
556 i386-*-pe-coff) ;;
557 # Uncommenting the next line will turn on support for i386 AOUT
558 # for the default linux configuration
559 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
560 #
561 i386-*-aout) emulation="i386aout" ;;
562 i386-*-coff) emulation="i386coff" ;;
563 i386-*-elf) emulation="i386elf" ;;
564
565 # Always all formats. The first stated emulation becomes the default.
566 cris-*-*aout*) emulation="crisaout criself" ;;
567 cris-*-*) emulation="criself crisaout" ;;
568 esac
569
570 emulations="$emulations $emulation"
571
572 done
573
574 if test ${ac_default_x86_relax_relocations} = unset; then
575 ac_default_x86_relax_relocations=1
576 fi
577 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
578 $ac_default_x86_relax_relocations,
579 [Define to 1 if you want to generate x86 relax relocations by default.])
580
581 if test x$ac_default_compressed_debug_sections = xyes ; then
582 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
583 fi
584
585 # Turn on all targets if possible
586 if test ${all_targets} = "yes"; then
587 case ${target_cpu_type} in
588 i386)
589 case ${obj_format} in
590 aout)
591 emulations="$emulations i386coff i386elf"
592 ;;
593 coff)
594 emulations="$emulations i386aout i386elf"
595 ;;
596 elf)
597 emulations="$emulations i386aout i386coff"
598 ;;
599 esac
600 ;;
601 x86_64)
602 case ${obj_format} in
603 aout)
604 emulations="$emulations i386coff i386elf"
605 ;;
606 coff)
607 emulations="$emulations i386aout i386elf"
608 ;;
609 elf)
610 emulations="$emulations i386aout i386coff"
611 ;;
612 esac
613 ;;
614 esac
615 fi
616
617 # PE code has way too many macros tweaking behaviour
618 case ${te_file} in
619 pe*) emulations="" ;;
620 esac
621
622 # Assign floating point type. Most processors with FP support
623 # IEEE FP. On those that don't support FP at all, usually IEEE
624 # is emulated.
625 case ${target_cpu} in
626 vax | pdp11 ) atof=vax ;;
627 *) atof=ieee ;;
628 esac
629
630 case "${obj_format}" in
631 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
632 esac
633
634 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
635 cgen_cpu_prefix=""
636 if test $using_cgen = yes ; then
637 case ${target_cpu} in
638 or1knd)
639 cgen_cpu_prefix=or1k ;;
640 *) cgen_cpu_prefix=${target_cpu} ;;
641 esac
642 AC_SUBST(cgen_cpu_prefix)
643 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
644 fi
645
646 dnl
647 dnl Make sure the desired support files exist.
648 dnl
649
650 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
651 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
652 fi
653
654 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
655 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
656 fi
657
658 # Some COFF configurations want these random other flags set.
659 case ${obj_format} in
660 coff)
661 case ${target_cpu_type} in
662 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
663 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
664 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
665 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
666 esac
667 ;;
668 esac
669
670 # Getting this done right is going to be a bitch. Each configuration specified
671 # with --enable-targets=... should be checked for environment, format, cpu
672 # setting.
673 #
674 # For each configuration, the necessary object file support code must be linked
675 # in. This might be only one, it might be up to four. The necessary emulation
676 # code needs to be provided, too.
677 #
678 # And then there's "--enable-targets=all"....
679 #
680 # For now, just always do it for MIPS ELF configurations. Sigh.
681
682 formats="${obj_format}"
683 emfiles=""
684 EMULATIONS=""
685 GAS_UNIQ(emulations)
686 for em in . $emulations ; do
687 case $em in
688 .) continue ;;
689 mipsbelf | mipslelf | mipself)
690 fmt=elf file=mipself ;;
691 *coff)
692 fmt=coff file=$em ;;
693 *aout)
694 fmt=aout file=$em ;;
695 *elf)
696 fmt=elf file=$em ;;
697 esac
698 formats="$formats $fmt"
699 emfiles="$emfiles e-$file.o"
700 EMULATIONS="$EMULATIONS &$em,"
701 done
702 GAS_UNIQ(formats)
703 GAS_UNIQ(emfiles)
704 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
705 for fmt in $formats ; do
706 case $fmt in
707 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
708 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
709 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
710 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
711 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
712 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
713 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
714 esac
715 extra_objects="$extra_objects obj-$fmt.o"
716 done
717 obj_format=multi
718 fi
719 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
720 DEFAULT_EMULATION=`set . $emulations ; echo $2`
721 # e-mipself has more than one emulation per file, e-i386* has just one at the
722 # moment. If only one emulation is specified, then don't define
723 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
724 case "${obj_format}${emfiles}" in
725 multi* | *mipself*)
726 extra_objects="$extra_objects $emfiles"
727 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
728 esac
729 fi
730 AC_SUBST(extra_objects)
731 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
732 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
733 [Default emulation.])
734
735 reject_dev_configs=yes
736
737 case ${reject_dev_configs}-${dev} in
738 yes-yes) # Oops.
739 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
740 ;;
741 esac
742
743 AC_SUBST(target_cpu_type)
744 AC_SUBST(obj_format)
745 AC_SUBST(te_file)
746 AC_SUBST(install_tooldir)
747 AC_SUBST(atof)
748 dnl AC_SUBST(emulation)
749
750 # do we need the opcodes library?
751 case "${need_opcodes}" in
752 yes)
753 OPCODES_LIB=../opcodes/libopcodes.la
754 ;;
755 esac
756
757 AC_SUBST(OPCODES_LIB)
758
759 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
760 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
761 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
762 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
763 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
764
765 AC_PROG_YACC
766 AM_PROG_LEX
767
768 ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN"
769 ZW_GNU_GETTEXT_SISTER_DIR
770 AM_PO_SUBDIRS
771
772 AM_MAINTAINER_MODE
773 AM_CONDITIONAL(GENINSRC_NEVER, false)
774 AC_EXEEXT
775
776 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)
777 ACX_HEADER_STRING
778
779 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
780 # people who are not cross-compiling but are compiling cross-assemblers.
781 AC_MSG_CHECKING(whether compiling a cross-assembler)
782 if test "${host}" = "${target}"; then
783 cross_gas=no
784 else
785 cross_gas=yes
786 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
787 fi
788 AC_MSG_RESULT($cross_gas)
789
790 dnl ansidecl.h will deal with const
791 dnl AC_C_CONST
792 AC_FUNC_ALLOCA
793 AC_C_INLINE
794
795 # VMS doesn't have unlink.
796 AC_CHECK_FUNCS(unlink remove, break)
797 AC_CHECK_FUNCS(sbrk setlocale)
798
799 AM_LC_MESSAGES
800
801 # do we need the math library?
802 case "${need_libm}" in
803 yes)
804 LT_LIB_M
805 AC_SUBST(LIBM)
806 ;;
807 esac
808
809 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
810 # enough, but on some of those systems, the assert macro relies on requoting
811 # working properly!
812 GAS_WORKING_ASSERT
813
814 # On some systems, the system header files may not declare malloc, realloc,
815 # and free. There are places where gas needs these functions to have been
816 # declared -- such as when taking their addresses.
817 gas_test_headers="
818 #ifdef HAVE_MEMORY_H
819 #include <memory.h>
820 #endif
821 #ifdef HAVE_STRING_H
822 #include <string.h>
823 #else
824 #ifdef HAVE_STRINGS_H
825 #include <strings.h>
826 #endif
827 #endif
828 #ifdef HAVE_STDLIB_H
829 #include <stdlib.h>
830 #endif
831 #ifdef HAVE_UNISTD_H
832 #include <unistd.h>
833 #endif
834 "
835
836 # Does errno.h declare errno, or do we have to add a separate declaration
837 # for it?
838 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
839 #ifdef HAVE_ERRNO_H
840 #include <errno.h>
841 #endif
842 ])
843
844 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
845 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
846 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
847 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
848 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
849 if test $gas_cv_decl_getopt_unistd_h = yes; then
850 AC_DEFINE([HAVE_DECL_GETOPT], 1,
851 [Is the prototype for getopt in <unistd.h> in the expected format?])
852 fi
853
854 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
855 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
856 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
857 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
858 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
859 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
860
861 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
862
863 BFD_BINARY_FOPEN
864
865 # Link in zlib if we can. This allows us to write compressed debug sections.
866 AM_ZLIB
867
868 # Support for VMS timestamps via cross compile
869
870 if test "$ac_cv_header_time_h" = yes; then
871 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
872 fi
873
874 if test "$ac_cv_header_sys_stat_h" = yes; then
875 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
876 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
877 fi
878
879
880 dnl Required for html, pdf, install-pdf and install-html targets.
881 AC_SUBST(datarootdir)
882 AC_SUBST(docdir)
883 AC_SUBST(htmldir)
884 AC_SUBST(pdfdir)
885
886 dnl This must come last.
887
888 dnl We used to make symlinks to files in the source directory, but now
889 dnl we just use the right name for .c files, and create .h files in
890 dnl the build directory which include the right .h file. Make sure
891 dnl the old symlinks don't exist, so that a reconfigure in an existing
892 dnl directory behaves reasonably.
893
894 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
895 AC_CONFIG_COMMANDS([default],
896 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
897 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
898 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
899 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
900 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
901 if test "x$cgen_cpu_prefix" != x ; then
902 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
903 fi],
904 [target_cpu_type=${target_cpu_type}
905 cgen_cpu_prefix=${cgen_cpu_prefix}
906 obj_format=${obj_format}
907 te_file=${te_file}])
908
909 AC_OUTPUT