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