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