configure.ac revision 1.2
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it!  If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
6dnl   Copyright (C) 2012-2015 Free Software Foundation, Inc.
7dnl
8dnl This file is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as published by
10dnl the Free Software Foundation; either version 3 of the License, or
11dnl (at your option) any later version.
12dnl
13dnl This program is distributed in the hope that it will be useful,
14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16dnl GNU General Public License for more details.
17dnl
18dnl You should have received a copy of the GNU General Public License
19dnl along with this program; see the file COPYING3.  If not see
20dnl <http://www.gnu.org/licenses/>.
21dnl
22dnl v2.5 needed for --bindir et al
23AC_PREREQ(2.59)
24m4_include([../bfd/version.m4])
25AC_INIT([gas], BFD_VERSION)
26AC_CONFIG_SRCDIR(as.h)
27
28dnl Autoconf 2.57 will find the aux dir without this.  However, unless
29dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30dnl gas/ instead of gas/../.
31AC_CONFIG_AUX_DIR(..)
32AC_CANONICAL_TARGET
33AC_ISC_POSIX
34
35AM_INIT_AUTOMAKE
36
37AC_PROG_CC
38AC_GNU_SOURCE
39AC_USE_SYSTEM_EXTENSIONS
40
41LT_INIT
42ACX_LARGEFILE
43
44AC_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 ;;
51esac])dnl
52
53ac_checking=yes
54if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
55  ac_checking=
56fi
57AC_ARG_ENABLE(checking,
58[  --enable-checking       enable run-time checks],
59[case "${enableval}" in
60  no|none)  ac_checking= ;;
61  *)	    ac_checking=yes ;;
62esac])dnl
63if test x$ac_checking != x ; then
64  AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
65fi
66
67# PR gas/19109
68# Decide the default method for compressing debug sections.
69ac_default_compressed_debug_sections=unset
70# Provide a configure time option to override our default.
71AC_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 ;;
78esac])dnl
79
80using_cgen=no
81
82AM_BINUTILS_WARNINGS
83
84# Generate a header file
85AC_CONFIG_HEADERS(config.h:config.in)
86
87# PR 14072
88AH_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.
98case "${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    ;;
107esac
108AC_SUBST(GDBINIT)
109
110#We need this for the host.  BOUT header is in host order.
111AC_C_BIGENDIAN
112
113te_file=generic
114
115# Makefile target for installing gas in $(tooldir)/bin.
116install_tooldir=install-exec-tooldir
117
118canon_targets=""
119all_targets=no
120if 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)
135fi
136
137emulations=""
138
139for 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
178changequote(,)dnl
179      ppc-*-aix[5-9].*)
180changequote([,])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*)
258changequote(,)dnl
259	    mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
260changequote([,])dnl
261	    ;;
262	  mipsisa32r6* | mipsisa64r6*)
263changequote(,)dnl
264	    mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
265changequote([,])dnl
266	    ;;
267	  mips64* | mipsisa64* | mipsisa32*)
268changequote(,)dnl
269	    mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
270changequote([,])dnl
271	    ;;
272	  mips*)
273changequote(,)dnl
274	    mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
275changequote([,])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
550done
551
552if 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.])
554fi
555
556# Turn on all targets if possible
557if 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
586fi
587
588# PE code has way too many macros tweaking behaviour
589case ${te_file} in
590  pe*) emulations="" ;;
591esac
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.
596case ${target_cpu} in
597  vax | pdp11 )	atof=vax ;;
598  *)		atof=ieee ;;
599esac
600
601case "${obj_format}" in
602  "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
603esac
604
605# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
606cgen_cpu_prefix=""
607if 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?])
615fi
616
617dnl
618dnl Make sure the desired support files exist.
619dnl
620
621if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
622  AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
623fi
624
625if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
626  AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
627fi
628
629# Some COFF configurations want these random other flags set.
630case ${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    ;;
639esac
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
653formats="${obj_format}"
654emfiles=""
655EMULATIONS=""
656GAS_UNIQ(emulations)
657for 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,"
672done
673GAS_UNIQ(formats)
674GAS_UNIQ(emfiles)
675if 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
689fi
690if 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
700fi
701AC_SUBST(extra_objects)
702AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
703AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
704		   [Default emulation.])
705
706reject_dev_configs=yes
707
708case ${reject_dev_configs}-${dev} in
709  yes-yes) # Oops.
710    AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
711    ;;
712esac
713
714AC_SUBST(target_cpu_type)
715AC_SUBST(obj_format)
716AC_SUBST(te_file)
717AC_SUBST(install_tooldir)
718AC_SUBST(atof)
719dnl AC_SUBST(emulation)
720
721# do we need the opcodes library?
722case "${need_opcodes}" in
723yes)
724  OPCODES_LIB=../opcodes/libopcodes.la
725  ;;
726esac
727
728AC_SUBST(OPCODES_LIB)
729
730AC_DEFINE_UNQUOTED(TARGET_ALIAS,	"${target_alias}", [Target alias.])
731AC_DEFINE_UNQUOTED(TARGET_CANONICAL,	"${target}",       [Canonical target.])
732AC_DEFINE_UNQUOTED(TARGET_CPU,		"${target_cpu}",   [Target CPU.])
733AC_DEFINE_UNQUOTED(TARGET_VENDOR,	"${target_vendor}", [Target vendor.])
734AC_DEFINE_UNQUOTED(TARGET_OS,		"${target_os}",    [Target OS.])
735
736AC_PROG_YACC
737AM_PROG_LEX
738
739ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN"
740ZW_GNU_GETTEXT_SISTER_DIR
741AM_PO_SUBDIRS
742
743AM_MAINTAINER_MODE
744AM_CONDITIONAL(GENINSRC_NEVER, false)
745AC_EXEEXT
746
747AC_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)
748ACX_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.
752AC_MSG_CHECKING(whether compiling a cross-assembler)
753if test "${host}" = "${target}"; then
754  cross_gas=no
755else
756  cross_gas=yes
757  AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
758fi
759AC_MSG_RESULT($cross_gas)
760
761dnl ansidecl.h will deal with const
762dnl AC_C_CONST
763AC_FUNC_ALLOCA
764AC_C_INLINE
765
766# VMS doesn't have unlink.
767AC_CHECK_FUNCS(unlink remove, break)
768AC_CHECK_FUNCS(sbrk setlocale)
769
770AM_LC_MESSAGES
771
772# do we need the math library?
773case "${need_libm}" in
774yes)
775  LT_LIB_M
776  AC_SUBST(LIBM)
777  ;;
778esac
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!
783GAS_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.
788gas_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?
809GAS_CHECK_DECL_NEEDED(errno, f, int f, [
810#ifdef HAVE_ERRNO_H
811#include <errno.h>
812#endif
813])
814
815AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
816AC_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 *);])],
818gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
819AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
820if 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?])
823fi
824
825GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
826GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
827GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
828GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
829GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
830GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
831
832AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
833
834BFD_BINARY_FOPEN
835
836# Link in zlib if we can.  This allows us to write compressed debug sections.
837AM_ZLIB
838
839# Support for VMS timestamps via cross compile
840
841if test "$ac_cv_header_time_h" = yes; then
842  GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
843fi
844
845if 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)
848fi
849
850
851dnl Required for html, pdf, install-pdf and install-html targets.
852AC_SUBST(datarootdir)
853AC_SUBST(docdir)
854AC_SUBST(htmldir)
855AC_SUBST(pdfdir)
856
857dnl This must come last.
858
859dnl We used to make symlinks to files in the source directory, but now
860dnl we just use the right name for .c files, and create .h files in
861dnl the build directory which include the right .h file.  Make sure
862dnl the old symlinks don't exist, so that a reconfigure in an existing
863dnl directory behaves reasonably.
864
865AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
866AC_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
880AC_OUTPUT
881