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