X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=config%2Facx.m4;h=b52342cf4edfe223496a2b1227fa29592a6f4ba4;hb=ff09445d11169aacc7bb136975eb360a4488fe9f;hp=96b7c8a5caddbfc04f67e0024bdce9af2065a0b8;hpb=1ba8a5f4e275834d3d7d25b78838bef0c2dc7fbd;p=pf3gnuchains%2Fgcc-fork.git diff --git a/config/acx.m4 b/config/acx.m4 index 96b7c8a5cad..b52342cf4ed 100644 --- a/config/acx.m4 +++ b/config/acx.m4 @@ -38,6 +38,30 @@ esac ]) []dnl # _GCC_TOPLEV_NONCANONICAL_TARGET dnl #### +dnl # ACX_NONCANONICAL_BUILD +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_BUILD], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl +AC_SUBST(build_noncanonical) +]) []dnl # ACX_NONCANONICAL_BUILD + +dnl #### +dnl # ACX_NONCANONICAL_HOST +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_HOST], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_HOST]) []dnl +AC_SUBST(host_noncanonical) +]) []dnl # ACX_NONCANONICAL_HOST + +dnl #### +dnl # ACX_NONCANONICAL_TARGET +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_TARGET], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_TARGET]) []dnl +AC_SUBST(target_noncanonical) +]) []dnl # ACX_NONCANONICAL_TARGET + +dnl #### dnl # GCC_TOPLEV_SUBDIRS dnl # GCC & friends build 'build', 'host', and 'target' tools. These must dnl # be separated into three well-known subdirectories of the build directory: @@ -52,8 +76,13 @@ AC_DEFUN([GCC_TOPLEV_SUBDIRS], AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl # Prefix 'build-' so this never conflicts with target_subdir. build_subdir="build-${build_noncanonical}" -# Not really a subdirectory, but here for completeness. -host_subdir=. +# --srcdir=. covers the toplevel, while "test -d" covers the subdirectories +if ( test $srcdir = . && test -d gcc ) \ + || test -d $srcdir/../host-${host_noncanonical}; then + host_subdir="host-${host_noncanonical}" +else + host_subdir=. +fi # No prefix. target_subdir=${target_noncanonical} AC_SUBST([build_subdir]) []dnl @@ -155,3 +184,129 @@ AC_DEFUN([AC_PROG_CPP_WERROR], [AC_REQUIRE([AC_PROG_CPP])dnl m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD])) ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR + +# Test for GNAT. +# We require the gnatbind program, and a compiler driver that +# understands Ada. We use the user's CC setting, already found. +# +# Sets the shell variable have_gnat to yes or no as appropriate, and +# substitutes GNATBIND. +AC_DEFUN([ACX_PROG_GNAT], +[AC_REQUIRE([AC_CHECK_TOOL_PREFIX]) +AC_REQUIRE([AC_PROG_CC]) +AC_CHECK_TOOL(GNATBIND, gnatbind, no) +AC_CACHE_CHECK([whether compiler driver understands Ada], + acx_cv_cc_gcc_supports_ada, +[cat >conftest.adb <&1 || echo failure` +if test x"$errors" = x && test -f conftest.$ac_objext; then + acx_cv_cc_gcc_supports_ada=yes +fi +rm -f conftest.*]) + +if test x$GNATBIND != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then + have_gnat=yes +else + have_gnat=no +fi +]) + +dnl 'make compare' can be significantly faster, if cmp itself can +dnl skip bytes instead of using tail. The test being performed is +dnl "if cmp --ignore-initial=2 t1 t2 && ! cmp --ignore-initial=1 t1 t2" +dnl but we need to sink errors and handle broken shells. We also test +dnl for the parameter format "cmp file1 file2 skip1 skip2" which is +dnl accepted by cmp on some systems. +AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL], +[AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip, +[ echo abfoo >t1 + echo cdfoo >t2 + gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2' + if cmp t1 t2 2 2 > /dev/null 2>&1; then + if cmp t1 t2 1 1 > /dev/null 2>&1; then + : + else + gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16' + fi + fi + if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then + if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then + : + else + gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2' + fi + fi + rm t1 t2 +]) +do_compare="$gcc_cv_prog_cmp_skip" +AC_SUBST(do_compare) +]) + +dnl See whether we can include both string.h and strings.h. +AC_DEFUN([ACX_HEADER_STRING], +[AC_CACHE_CHECK([whether string.h and strings.h may both be included], + gcc_cv_header_string, +[AC_TRY_COMPILE([#include +#include ], , gcc_cv_header_string=yes, gcc_cv_header_string=no)]) +if test $gcc_cv_header_string = yes; then + AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both and .]) +fi +]) + +dnl See if stdbool.h properly defines bool and true/false. +dnl Check whether _Bool is built-in. +AC_DEFUN([ACX_HEADER_STDBOOL], +[AC_CACHE_CHECK([for working stdbool.h], + ac_cv_header_stdbool_h, +[AC_TRY_COMPILE([#include ], +[bool foo = false;], +ac_cv_header_stdbool_h=yes, ac_cv_header_stdbool_h=no)]) +if test $ac_cv_header_stdbool_h = yes; then + AC_DEFINE(HAVE_STDBOOL_H, 1, + [Define if you have a working header file.]) +fi +AC_CACHE_CHECK(for built-in _Bool, gcc_cv_c__bool, +[AC_TRY_COMPILE(, +[_Bool foo;], +gcc_cv_c__bool=yes, gcc_cv_c__bool=no) +]) +if test $gcc_cv_c__bool = yes; then + AC_DEFINE(HAVE__BOOL, 1, [Define if the \`_Bool' type is built-in.]) +fi +]) + +dnl See if hard links work and if not, try to substitute $1 or simple copy. +AC_DEFUN([ACX_PROG_LN], +[AC_MSG_CHECKING(whether ln works) +AC_CACHE_VAL(acx_cv_prog_LN, +[rm -f conftestdata_t +echo >conftestdata_f +if ln conftestdata_f conftestdata_t 2>/dev/null +then + acx_cv_prog_LN=ln +else + acx_cv_prog_LN=no +fi +rm -f conftestdata_f conftestdata_t +])dnl +if test $acx_cv_prog_LN = no; then + LN="ifelse([$1],,cp,[$1])" + AC_MSG_RESULT([no, using $LN]) +else + LN="$acx_cv_prog_LN" + AC_MSG_RESULT(yes) +fi +AC_SUBST(LN)dnl +]) +