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