gas/
[deliverable/binutils-gdb.git] / gas / configure.in
index c306516fe6a20173c39978301040d002852dc2de..121fcfcba9a2cf6e847dd71c9b22602a1d62a427 100644 (file)
@@ -3,47 +3,84 @@ dnl
 dnl And be careful when changing it!  If you must add tests with square
 dnl brackets, be sure changequote invocations surround it.
 dnl
 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
 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(..)
 
 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
 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})
 
 changequote([,])dnl
 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
 
-AM_PROG_LIBTOOL
+AC_PROG_CC
+AC_GNU_SOURCE
+AC_USE_SYSTEM_EXTENSIONS
+ACX_LARGEFILE
+
+LT_INIT
 
 AC_ARG_ENABLE(targets,
 [  --enable-targets        alternative target configurations besides the primary],
 [case "${enableval}" in
 
 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
            ;;
   no)      enable_targets= ;;
   *)       enable_targets=$enableval ;;
 esac])dnl
-AC_ARG_ENABLE(commonbfdlib,
-[  --enable-commonbfdlib   build shared BFD/opcodes/libiberty library],
+
+ac_checking=yes
+if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
+  ac_checking=
+fi
+AC_ARG_ENABLE(checking,
+[  --enable-checking       enable run-time checks],
 [case "${enableval}" in
 [case "${enableval}" in
-  yes) commonbfdlib=true ;;
-  no)  commonbfdlib=false ;;
-  *)   AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
+  no|none)  ac_checking= ;;
+  *)       ac_checking=yes ;;
 esac])dnl
 esac])dnl
+if test x$ac_checking != x ; then
+  AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
+fi
 
 using_cgen=no
 
 AM_BINUTILS_WARNINGS
 
 # Generate a header file
 
 using_cgen=no
 
 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.
 
 # If we are on a DOS filesystem, we must use gdb.ini rather than
 # .gdbinit.
@@ -124,22 +161,15 @@ for this_target in $target $canon_targets ; do
        AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
        ;;
 
        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.])
        ;;
        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,
       ppc-*-solaris*)
        if test ${this_target} = $target; then
          AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
@@ -203,15 +233,19 @@ changequote([,])dnl
          mips64* | mipsisa64* | mipsisa32*)
 changequote(,)dnl
            mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
          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
            ;;
          *)
 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.
            ;;
        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
        case ${target} in
          *-*-irix*)
            use_e_mips_abi_o32=0
@@ -232,10 +266,10 @@ changequote([,])dnl
        esac
        # Decide which ABI to target by default.
        case ${target} in
        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_default_abi=N32_ABI
            ;;
-         mips*-linux*)
+         mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
            mips_default_abi=O32_ABI
            ;;
          mips64*-openbsd*)
            mips_default_abi=O32_ABI
            ;;
          mips64*-openbsd*)
@@ -258,7 +292,7 @@ changequote([,])dnl
 
     # Do we need the opcodes library?
     case ${cpu_type} in
 
     # Do we need the opcodes library?
     case ${cpu_type} in
-      vax | i386 | tic30)
+      vax | tic30)
        ;;
 
       *)
        ;;
 
       *)
@@ -281,13 +315,13 @@ changequote([,])dnl
           extra_objects="$extra_objects bfin-parse.o"
         fi
 
           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
         if test $? -ne 0 ; then
-          extra_objects="$extra_objects bfin-lex.o"
+          extra_objects="$extra_objects bfin-lex-wrapper.o"
         fi
         ;;
 
         fi
         ;;
 
-      fr30 | ip2k | iq2000 | m32r | openrisc)
+      epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc)
        using_cgen=yes
        ;;
 
        using_cgen=yes
        ;;
 
@@ -304,15 +338,19 @@ changequote([,])dnl
        esac
        ;;
 
        esac
        ;;
 
+      mep)
+       using_cgen=yes
+       ;;
+
       mips)
        echo ${extra_objects} | grep -s "itbl-parse.o"
        if test $? -ne 0 ; then
          extra_objects="$extra_objects itbl-parse.o"
        fi
 
       mips)
        echo ${extra_objects} | grep -s "itbl-parse.o"
        if test $? -ne 0 ; then
          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
        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"
        fi
 
        echo ${extra_objects} | grep -s "itbl-ops.o"
@@ -331,6 +369,20 @@ changequote([,])dnl
        fi
        ;;
 
        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
        ;;
       xstormy16)
        using_cgen=yes
        ;;
@@ -364,24 +416,17 @@ changequote([,])dnl
       te_file=$em
     fi
 
       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
 # 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
+      mips-*-*-*)      case "$endian" in
                        big)    emulation="mipsbelf mipslelf mipself" ;;
                        *)      emulation="mipslelf mipsbelf mipself" ;;
                        esac ;;
                        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
-                       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
       # i386-pc-pe-coff != i386-pc-coff.
       i386-*-pe-coff)  ;;
       # Uncommenting the next line will turn on support for i386 AOUT
@@ -417,9 +462,27 @@ if test ${all_targets} = "yes"; then
       ;;
     esac
   ;;
       ;;
     esac
   ;;
+  x86_64)
+    case ${obj_format} in
+    aout)
+      emulations="$emulations i386coff i386elf"
+      ;;
+    coff)
+      emulations="$emulations i386aout i386elf"
+    ;;
+    elf)
+      emulations="$emulations i386aout i386coff"
+      ;;
+    esac
+  ;;
   esac
 fi
 
   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.
 # Assign floating point type.  Most processors with FP support
 # IEEE FP.  On those that don't support FP at all, usually IEEE
 # is emulated.
@@ -461,6 +524,7 @@ case ${obj_format} in
       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
       m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
       m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
+      x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
     esac
     ;;
 esac
     esac
     ;;
 esac
@@ -475,7 +539,7 @@ esac
 #
 # And then there's "--enable-targets=all"....
 #
 #
 # 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=""
 
 formats="${obj_format}"
 emfiles=""
@@ -486,8 +550,6 @@ for em in . $emulations ; do
     .) continue ;;
     mipsbelf | mipslelf | mipself)
        fmt=elf   file=mipself ;;
     .) continue ;;
     mipsbelf | mipslelf | mipself)
        fmt=elf   file=mipself ;;
-    mipsbecoff | mipslecoff | mipsecoff)
-       fmt=ecoff file=mipsecoff ;;
     *coff)
        fmt=coff  file=$em ;;
     *aout)
     *coff)
        fmt=coff  file=$em ;;
     *aout)
@@ -518,11 +580,11 @@ if test `set . $formats ; shift ; echo $#` -gt 1 ; then
 fi
 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
   DEFAULT_EMULATION=`set . $emulations ; echo $2`
 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
   # 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
       extra_objects="$extra_objects $emfiles"
       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
   esac
@@ -562,19 +624,19 @@ AC_DEFINE_UNQUOTED(TARGET_CPU,            "${target_cpu}",   [Target CPU.])
 AC_DEFINE_UNQUOTED(TARGET_VENDOR,      "${target_vendor}", [Target vendor.])
 AC_DEFINE_UNQUOTED(TARGET_OS,          "${target_os}",    [Target OS.])
 
 AC_DEFINE_UNQUOTED(TARGET_VENDOR,      "${target_vendor}", [Target vendor.])
 AC_DEFINE_UNQUOTED(TARGET_OS,          "${target_os}",    [Target OS.])
 
-AC_PROG_CC
-
 AC_PROG_YACC
 AM_PROG_LEX
 
 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_MAINTAINER_MODE
 ZW_GNU_GETTEXT_SISTER_DIR
 AM_PO_SUBDIRS
 
 AM_MAINTAINER_MODE
+AM_CONDITIONAL(GENINSRC_NEVER, false)
 AC_EXEEXT
 
 AC_EXEEXT
 
-AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.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.
 
 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
 # people who are not cross-compiling but are compiling cross-assemblers.
@@ -588,20 +650,20 @@ fi
 AC_MSG_RESULT($cross_gas)
 
 dnl ansidecl.h will deal with const
 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_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)
 
 # do we need the math library?
 case "${need_libm}" in
 yes)
-  AC_CHECK_LIBM
+  LT_LIB_M
   AC_SUBST(LIBM)
   ;;
 esac
   AC_SUBST(LIBM)
   ;;
 esac
@@ -643,7 +705,7 @@ GAS_CHECK_DECL_NEEDED(errno, f, int f, [
 
 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
 
 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_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
@@ -658,14 +720,30 @@ GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
 
 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
 
 
 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(datarootdir)
 AC_SUBST(docdir)
 AC_SUBST(htmldir)
+AC_SUBST(pdfdir)
 
 dnl This must come last.
 
 
 dnl This must come last.
 
This page took 0.029642 seconds and 4 git commands to generate.