dnl And be careful when changing it! If you must add tests with square
dnl brackets, be sure changequote invocations surround it.
dnl
+dnl Copyright 2012, 2013 Free Software Foundation
+dnl
+dnl This file is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; see the file COPYING3. If not see
+dnl <http://www.gnu.org/licenses/>.
dnl
dnl v2.5 needed for --bindir et al
-AC_PREREQ(2.57)
-AC_INIT(as.h)
+AC_PREREQ(2.59)
+AC_INIT
+AC_CONFIG_SRCDIR(as.h)
dnl Autoconf 2.57 will find the aux dir without this. However, unless
dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
dnl gas/ instead of gas/../.
AC_CONFIG_AUX_DIR(..)
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET
AC_ISC_POSIX
changequote(,)dnl
-BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
+BFD_VERSION=`${srcdir}/../bfd/configure --version | sed -n -e '1s,.* ,,p'`
changequote([,])dnl
AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
AC_PROG_CC
AC_GNU_SOURCE
AC_USE_SYSTEM_EXTENSIONS
+ACX_LARGEFILE
-AM_PROG_LIBTOOL
+LT_INIT
AC_ARG_ENABLE(targets,
[ --enable-targets alternative target configurations besides the primary],
[case "${enableval}" in
- yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
+ yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
;;
no) enable_targets= ;;
*) enable_targets=$enableval ;;
esac])dnl
-AC_ARG_ENABLE(commonbfdlib,
-[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
-[case "${enableval}" in
- yes) commonbfdlib=true ;;
- no) commonbfdlib=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
-esac])dnl
-
ac_checking=yes
if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
ac_checking=
AM_BINUTILS_WARNINGS
# Generate a header file
-AM_CONFIG_HEADER(config.h:config.in)
+AC_CONFIG_HEADERS(config.h:config.in)
+
+# PR 14072
+AH_VERBATIM([00_CONFIG_H_CHECK],
+[/* Check that config.h is #included before system headers
+ (this works only for glibc, but that should be enough). */
+#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
+# error config.h must be #included before system headers
+#endif
+#define __CONFIG_H__ 1])
# If we are on a DOS filesystem, we must use gdb.ini rather than
# .gdbinit.
AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
;;
- mips-sony-bsd*)
- ;;
- mips-*-bsd*)
- AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
- ;;
+ microblaze*)
+ ;;
- ppc-*-aix5.*)
+changequote(,)dnl
+ ppc-*-aix[5-9].*)
+changequote([,])dnl
AC_DEFINE(AIX_WEAK_SUPPORT, 1,
[Define if using AIX 5.2 value for C_WEAKEXT.])
;;
- ppc-*-linux-*)
- case "$endian" in
- big) ;;
- *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
- esac
- ;;
ppc-*-solaris*)
if test ${this_target} = $target; then
AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
mips64* | mipsisa64* | mipsisa32*)
changequote(,)dnl
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
+changequote([,])dnl
+ ;;
+ mips*)
+changequote(,)dnl
+ mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
changequote([,])dnl
;;
*)
- AC_ERROR($target_cpu isn't a supported MIPS CPU name)
+ AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
;;
esac
# See whether it's appropriate to set E_MIPS_ABI_O32 for o32
# binaries. It's a GNU extension that some OSes don't understand.
- # The value only matters on ELF targets.
case ${target} in
*-*-irix*)
use_e_mips_abi_o32=0
esac
# Decide which ABI to target by default.
case ${target} in
- mips64*-linux* | mips-sgi-irix6*)
+ mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
mips_default_abi=N32_ABI
;;
- mips*-linux*)
+ mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
mips_default_abi=O32_ABI
;;
mips64*-openbsd*)
extra_objects="$extra_objects bfin-parse.o"
fi
- echo ${extra_objects} | grep -s "bfin-lex.o"
+ echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
if test $? -ne 0 ; then
- extra_objects="$extra_objects bfin-lex.o"
+ extra_objects="$extra_objects bfin-lex-wrapper.o"
fi
;;
- fr30 | ip2k | iq2000 | m32r | openrisc)
+ epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc)
using_cgen=yes
;;
extra_objects="$extra_objects itbl-parse.o"
fi
- echo ${extra_objects} | grep -s "itbl-lex.o"
+ echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
if test $? -ne 0 ; then
- extra_objects="$extra_objects itbl-lex.o"
+ extra_objects="$extra_objects itbl-lex-wrapper.o"
fi
echo ${extra_objects} | grep -s "itbl-ops.o"
using_cgen=yes
;;
+ nds32)
+ # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
+ # based on arch_name.
+ AC_MSG_CHECKING(for default configuration of --with-arch)
+ if test "x${with_arch}" != x; then
+ case ${with_arch} in
+ v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
+ AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
+ [Define value for nds32_arch_name])
+ ;;
+ *)
+ AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
+ ;;
+ esac
+ fi
+ AC_MSG_RESULT($with_arch)
+
+ # Decide features one by one.
+ AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
+ if test "x${enable_dx_regs}" == xyes; then
+ AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
+ [Define value for nds32_dx_regs])
+ else
+ AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
+ [Define default value for nds32_dx_regs])
+ fi
+ AC_MSG_RESULT($enable_dx_regs)
+
+ AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
+ if test "x${enable_perf_ext}" == xno; then
+ AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
+ [Define value for nds32_perf_ext])
+ else
+ AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
+ [Define default value for nds32_perf_ext])
+ fi
+ AC_MSG_RESULT($enable_perf_ext)
+
+ AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
+ if test "x${enable_perf_ext2}" == xno; then
+ AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
+ [Define value for nds32_perf_ext2])
+ else
+ AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
+ [Define default value for nds32_perf_ext2])
+ fi
+ AC_MSG_RESULT($enable_perf_ext2)
+
+ AC_MSG_CHECKING(for default configuration of --enable-string-ext)
+ if test "x${enable_string_ext}" == xno; then
+ AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
+ [Define value for nds32_string_ext])
+ else
+ AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
+ [Define default value for nds32_string_ext])
+ fi
+ AC_MSG_RESULT($enable_string_ext)
+
+ AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
+ if test "x${enable_audio_ext}" == xno; then
+ AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
+ [Define value for nds32_audio_ext])
+ else
+ AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
+ [Define default value for nds32_audio_ext])
+ fi
+ AC_MSG_RESULT($enable_audio_ext)
+ ;;
+
i386 | s390 | sparc)
if test $this_target = $target ; then
AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
fi
;;
+ rl78)
+ echo ${extra_objects} | grep -s "rl78-parse.o"
+ if test $? -ne 0 ; then
+ extra_objects="$extra_objects rl78-parse.o"
+ fi
+ ;;
+
+ rx)
+ echo ${extra_objects} | grep -s "rx-parse.o"
+ if test $? -ne 0 ; then
+ extra_objects="$extra_objects rx-parse.o"
+ fi
+ ;;
+
xstormy16)
using_cgen=yes
;;
te_file=$em
fi
+ case ${te_file} in
+ vms) extra_objects="$extra_objects te-vms.o" ;;
+ esac
+
# From target name and format, produce a list of supported emulations.
case ${generic_target}-${fmt} in
- mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
- mips*-*-linux*-*) case "$endian" in
- big) emulation="mipsbelf mipslelf mipself" ;;
- *) emulation="mipslelf mipsbelf mipself" ;;
- esac ;;
- mips-*-lnews*-ecoff) ;;
- mips-*-*-ecoff) case "$endian" in
- big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
- *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
- esac ;;
- mips-*-*-elf) case "$endian" in
+ mips-*-*-*) case "$endian" in
big) emulation="mipsbelf mipslelf mipself" ;;
*) emulation="mipslelf mipsbelf mipself" ;;
esac ;;
- mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
# i386-pc-pe-coff != i386-pc-coff.
i386-*-pe-coff) ;;
# Uncommenting the next line will turn on support for i386 AOUT
esac
fi
+# PE code has way too many macros tweaking behaviour
+case ${te_file} in
+ pe*) emulations="" ;;
+esac
+
# Assign floating point type. Most processors with FP support
# IEEE FP. On those that don't support FP at all, usually IEEE
# is emulated.
#
# And then there's "--enable-targets=all"....
#
-# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
+# For now, just always do it for MIPS ELF configurations. Sigh.
formats="${obj_format}"
emfiles=""
.) continue ;;
mipsbelf | mipslelf | mipself)
fmt=elf file=mipself ;;
- mipsbecoff | mipslecoff | mipsecoff)
- fmt=ecoff file=mipsecoff ;;
*coff)
fmt=coff file=$em ;;
*aout)
fi
if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
DEFAULT_EMULATION=`set . $emulations ; echo $2`
- # e-mips* has more than one emulation per file, e-i386* has just one at the
+ # e-mipself has more than one emulation per file, e-i386* has just one at the
# moment. If only one emulation is specified, then don't define
# USE_EMULATIONS or include any of the e-files as they will only be bloat.
case "${obj_format}${emfiles}" in
- multi* | *mips*)
+ multi* | *mipself*)
extra_objects="$extra_objects $emfiles"
AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
esac
AC_PROG_YACC
AM_PROG_LEX
-ALL_LINGUAS="fr tr es rw"
+ALL_LINGUAS="fr tr es rw id ru fi ja"
ZW_GNU_GETTEXT_SISTER_DIR
AM_PO_SUBDIRS
AM_CONDITIONAL(GENINSRC_NEVER, false)
AC_EXEEXT
-AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h limits.h)
+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)
+ACX_HEADER_STRING
# Put this here so that autoconf's "cross-compiling" message doesn't confuse
# people who are not cross-compiling but are compiling cross-assemblers.
AC_MSG_RESULT($cross_gas)
dnl ansidecl.h will deal with const
-dnl AC_CONST
+dnl AC_C_CONST
AC_FUNC_ALLOCA
AC_C_INLINE
# VMS doesn't have unlink.
AC_CHECK_FUNCS(unlink remove, break)
+AC_CHECK_FUNCS(sbrk setlocale)
-# Some systems don't have sbrk().
-AC_CHECK_FUNCS(sbrk)
+AM_LC_MESSAGES
# do we need the math library?
case "${need_libm}" in
yes)
- AC_CHECK_LIBM
+ LT_LIB_M
AC_SUBST(LIBM)
;;
esac
AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
-[AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);],
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
if test $gas_cv_decl_getopt_unistd_h = yes; then
GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
-AC_CHECK_DECLS([vsnprintf])
+AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf])
BFD_BINARY_FOPEN
-dnl Required for html and install-html targets.
+# Link in zlib if we can. This allows us to write compressed debug sections.
+AM_ZLIB
+
+# Support for VMS timestamps via cross compile
+
+if test "$ac_cv_header_time_h" = yes; then
+ GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
+fi
+
+if test "$ac_cv_header_sys_stat_h" = yes; then
+ GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
+ GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
+fi
+
+
+dnl Required for html, pdf, install-pdf and install-html targets.
AC_SUBST(datarootdir)
AC_SUBST(docdir)
AC_SUBST(htmldir)
+AC_SUBST(pdfdir)
dnl This must come last.