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