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