Remove sh-symbianelf 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       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
688       x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
689     esac
690     ;;
691 esac
692
693 # Getting this done right is going to be a bitch.  Each configuration specified
694 # with --enable-targets=... should be checked for environment, format, cpu
695 # setting.
696 #
697 # For each configuration, the necessary object file support code must be linked
698 # in.  This might be only one, it might be up to four.  The necessary emulation
699 # code needs to be provided, too.
700 #
701 # And then there's "--enable-targets=all"....
702 #
703 # For now, just always do it for MIPS ELF configurations.  Sigh.
704
705 formats="${obj_format}"
706 emfiles=""
707 EMULATIONS=""
708 GAS_UNIQ(emulations)
709 for em in . $emulations ; do
710   case $em in
711     .)  continue ;;
712     mipsbelf | mipslelf | mipself)
713         fmt=elf   file=mipself ;;
714     *coff)
715         fmt=coff  file=$em ;;
716     *aout)
717         fmt=aout file=$em ;;
718     *elf)
719         fmt=elf file=$em ;;
720   esac
721   formats="$formats $fmt"
722   emfiles="$emfiles e-$file.o"
723   EMULATIONS="$EMULATIONS &$em,"
724 done
725 GAS_UNIQ(formats)
726 GAS_UNIQ(emfiles)
727 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
728   for fmt in $formats ; do
729     case $fmt in
730       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
731       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
732       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
733       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
734       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
735       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
736     esac
737     extra_objects="$extra_objects obj-$fmt.o"
738   done
739   obj_format=multi
740 fi
741 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
742   DEFAULT_EMULATION=`set . $emulations ; echo $2`
743   # e-mipself has more than one emulation per file, e-i386* has just one at the
744   # moment.  If only one emulation is specified, then don't define
745   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
746   case "${obj_format}${emfiles}" in
747     multi* | *mipself*)
748       extra_objects="$extra_objects $emfiles"
749       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
750   esac
751 fi
752 AC_SUBST(extra_objects)
753 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
754 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
755                    [Default emulation.])
756
757 reject_dev_configs=yes
758
759 case ${reject_dev_configs}-${dev} in
760   yes-yes) # Oops.
761     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
762     ;;
763 esac
764
765 AC_SUBST(target_cpu_type)
766 AC_SUBST(obj_format)
767 AC_SUBST(te_file)
768 AC_SUBST(install_tooldir)
769 AC_SUBST(atof)
770 dnl AC_SUBST(emulation)
771
772 # do we need the opcodes library?
773 case "${need_opcodes}" in
774 yes)
775   OPCODES_LIB=../opcodes/libopcodes.la
776   ;;
777 esac
778
779 AC_SUBST(OPCODES_LIB)
780
781 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
782 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
783 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
784 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
785 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
786
787 AC_PROG_YACC
788 AM_PROG_LEX
789
790 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
791 ZW_GNU_GETTEXT_SISTER_DIR
792 AM_PO_SUBDIRS
793
794 AM_MAINTAINER_MODE
795 AM_CONDITIONAL(GENINSRC_NEVER, false)
796 AC_EXEEXT
797
798 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)
799 ACX_HEADER_STRING
800
801 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
802 # people who are not cross-compiling but are compiling cross-assemblers.
803 AC_MSG_CHECKING(whether compiling a cross-assembler)
804 if test "${host}" = "${target}"; then
805   cross_gas=no
806 else
807   cross_gas=yes
808   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
809 fi
810 AC_MSG_RESULT($cross_gas)
811
812 dnl ansidecl.h will deal with const
813 dnl AC_C_CONST
814 AC_FUNC_ALLOCA
815 AC_C_INLINE
816
817 # VMS doesn't have unlink.
818 AC_CHECK_FUNCS(unlink remove, break)
819 AC_CHECK_FUNCS(sbrk setlocale)
820 AC_CHECK_FUNCS(strsignal)
821
822 AM_LC_MESSAGES
823
824 # do we need the math library?
825 case "${need_libm}" in
826 yes)
827   LT_LIB_M
828   AC_SUBST(LIBM)
829   ;;
830 esac
831
832 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
833 # enough, but on some of those systems, the assert macro relies on requoting
834 # working properly!
835 GAS_WORKING_ASSERT
836
837 # On some systems, the system header files may not declare malloc, realloc,
838 # and free.  There are places where gas needs these functions to have been
839 # declared -- such as when taking their addresses.
840 gas_test_headers="
841 #ifdef HAVE_MEMORY_H
842 #include <memory.h>
843 #endif
844 #ifdef HAVE_STRING_H
845 #include <string.h>
846 #else
847 #ifdef HAVE_STRINGS_H
848 #include <strings.h>
849 #endif
850 #endif
851 #ifdef HAVE_STDLIB_H
852 #include <stdlib.h>
853 #endif
854 #ifdef HAVE_UNISTD_H
855 #include <unistd.h>
856 #endif
857 "
858
859 # Does errno.h declare errno, or do we have to add a separate declaration
860 # for it?
861 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
862 #ifdef HAVE_ERRNO_H
863 #include <errno.h>
864 #endif
865 ])
866
867 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
868 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
869 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
870 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
871 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
872 if test $gas_cv_decl_getopt_unistd_h = yes; then
873   AC_DEFINE([HAVE_DECL_GETOPT], 1,
874             [Is the prototype for getopt in <unistd.h> in the expected format?])
875 fi
876
877 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
878 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
879 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
880 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
881 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
882 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
883
884 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
885
886 BFD_BINARY_FOPEN
887
888 # Link in zlib if we can.  This allows us to write compressed debug sections.
889 AM_ZLIB
890
891 # Support for VMS timestamps via cross compile
892
893 if test "$ac_cv_header_time_h" = yes; then
894   GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
895 fi
896
897 if test "$ac_cv_header_sys_stat_h" = yes; then
898     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
899     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
900 fi
901
902
903 dnl Required for html, pdf, install-pdf and install-html targets.
904 AC_SUBST(datarootdir)
905 AC_SUBST(docdir)
906 AC_SUBST(htmldir)
907 AC_SUBST(pdfdir)
908
909 dnl This must come last.
910
911 dnl We used to make symlinks to files in the source directory, but now
912 dnl we just use the right name for .c files, and create .h files in
913 dnl the build directory which include the right .h file.  Make sure
914 dnl the old symlinks don't exist, so that a reconfigure in an existing
915 dnl directory behaves reasonably.
916
917 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
918 AC_CONFIG_COMMANDS([default],
919 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
920  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
921  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
922  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
923  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
924  if test "x$cgen_cpu_prefix" != x ; then
925    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
926  fi],
927 [target_cpu_type=${target_cpu_type}
928  cgen_cpu_prefix=${cgen_cpu_prefix}
929  obj_format=${obj_format}
930  te_file=${te_file}])
931
932 AC_OUTPUT