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