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