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