diff options
Diffstat (limited to 'config/acx.m4')
-rw-r--r-- | config/acx.m4 | 264 |
1 files changed, 48 insertions, 216 deletions
diff --git a/config/acx.m4 b/config/acx.m4 index 7c4c21386..d4a583dc6 100644 --- a/config/acx.m4 +++ b/config/acx.m4 @@ -76,13 +76,8 @@ 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}" -# --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 +# Not really a subdirectory, but here for completeness. +host_subdir=. # No prefix. target_subdir=${target_noncanonical} AC_SUBST([build_subdir]) []dnl @@ -103,197 +98,72 @@ test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- ]) []dnl # _NCN_TOOL_PREFIXES #### -# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) -# Like plain AC_CHECK_TOOLS, but require prefix if build!=host. +# NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but tries a prefix of the target, not the host. +# Code is pretty much lifted from autoconf2.53. -AC_DEFUN([NCN_STRICT_CHECK_TOOLS], +AC_DEFUN([NCN_CHECK_TARGET_TOOL], [AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl -for ncn_progname in $2; do - if test -n "$ncn_tool_prefix"; then - AC_CHECK_PROG([$1], [${ncn_tool_prefix}${ncn_progname}], - [${ncn_tool_prefix}${ncn_progname}], , [$4]) - fi - if test -z "$ac_cv_prog_$1" && test $build = $host ; then - AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) - fi - test -n "$ac_cv_prog_$1" && break -done - +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) +fi if test -z "$ac_cv_prog_$1" ; then - ifelse([$3],[], [set dummy $2 - if test $build = $host ; then - $1="[$]2" - else - $1="${ncn_tool_prefix}[$]2" - fi], [$1="$3"]) + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [$3], [$4]) + $1=$ncn_cv_$1 +else + $1="$ac_cv_prog_$1" fi -]) []dnl # NCN_STRICT_CHECK_TOOLS +]) []dnl # NCN_CHECK_TARGET_TOOL + #### -# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) -# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target. +# NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but requires the prefix if build!=host. -AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOLS], +AC_DEFUN([NCN_STRICT_CHECK_TOOL], [AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl -if test -n "$with_build_time_tools"; then - for ncn_progname in $2; do - AC_MSG_CHECKING([for ${ncn_progname} in $with_build_time_tools]) - if test -x $with_build_time_tools/${ncn_progname}; then - ac_cv_prog_$1=$with_build_time_tools/${ncn_progname} - AC_MSG_RESULT(yes) - break - else - AC_MSG_RESULT(no) - fi - done +if test -n "$ncn_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_tool_prefix}$2], + [${ncn_tool_prefix}$2], , [$4]) fi - -if test -z "$ac_cv_prog_$1"; then - for ncn_progname in $2; do - if test -n "$ncn_target_tool_prefix"; then - AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}${ncn_progname}], - [${ncn_target_tool_prefix}${ncn_progname}], , [$4]) - fi - if test -z "$ac_cv_prog_$1" && test $build = $target ; then - AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) - fi - test -n "$ac_cv_prog_$1" && break - done -fi - if test -z "$ac_cv_prog_$1" ; then - ifelse([$3],[], [set dummy $2 - if test $build = $target ; then - $1="[$]2" - else - $1="${ncn_target_tool_prefix}[$]2" - fi], [$1="$3"]) -fi -]) []dnl # NCN_STRICT_CHECK_TARGET_TOOLS - - -# Backported from Autoconf 2.5x; can go away when and if -# we switch. Put the OS path separator in $PATH_SEPARATOR. -AC_DEFUN([ACX_PATH_SEP], [ -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' + if test $build = $host ; then + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) + $1=$ncn_cv_$1 else - PATH_SEPARATOR=: + $1="ifelse([$3],[],[${ncn_tool_prefix}$2],[$3])" fi - rm -f conf$$.sh -fi -]) - - -AC_DEFUN([ACX_TOOL_DIRS], [ -AC_REQUIRE([ACX_PATH_SEP]) -if test "x$exec_prefix" = xNONE; then - if test "x$prefix" = xNONE; then - gcc_cv_tool_prefix=$ac_default_prefix - else - gcc_cv_tool_prefix=$prefix - fi else - gcc_cv_tool_prefix=$exec_prefix + $1="$ac_cv_prog_$1" fi +]) []dnl # NCN_STRICT_CHECK_TOOL -# If there is no compiler in the tree, use the PATH only. In any -# case, if there is no compiler in the tree nobody should use -# AS_FOR_TARGET and LD_FOR_TARGET. -if test x$host = x$build && test -f $srcdir/gcc/BASE-VER; then - gcc_version=`cat $srcdir/gcc/BASE-VER` - gcc_cv_tool_dirs="$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" - gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical$PATH_SEPARATOR" - gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" - gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical$PATH_SEPARATOR" - gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version$PATH_SEPARATOR" - gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/$target_noncanonical/bin$PATH_SEPARATOR" -else - gcc_cv_tool_dirs= -fi -if test x$build = x$target && test -n "$md_exec_prefix"; then - gcc_cv_tool_dirs="$gcc_cv_tool_dirs$md_exec_prefix$PATH_SEPARATOR" -fi - -]) []dnl # ACX_TOOL_DIRS +#### +# NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target. -# ACX_HAVE_GCC_FOR_TARGET -# Check if the variable GCC_FOR_TARGET really points to a GCC binary. -AC_DEFUN([ACX_HAVE_GCC_FOR_TARGET], [ -cat > conftest.c << \EOF -#ifdef __GNUC__ - gcc_yay; -#endif -EOF -if ($GCC_FOR_TARGET -E conftest.c | grep gcc_yay) > /dev/null 2>&1; then - have_gcc_for_target=yes -else - GCC_FOR_TARGET=${ncn_target_tool_prefix}gcc - have_gcc_for_target=no +AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) fi -rm conftest.c -]) - -# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG) -# Searching for installed target binutils. We need to take extra care, -# else we may find the wrong assembler, linker, etc., and lose. -# -# First try --with-build-time-tools, if specified. -# -# For build != host, we ask the installed GCC for the name of the tool it -# uses, and accept it if it is an absolute path. This is because the -# only good choice for a compiler is the same GCC version that is being -# installed (or we couldn't make target libraries), and we assume that -# on the host system we'll have not only the same GCC version, but also -# the same binutils version. -# -# For build == host, search the same directories that the installed -# compiler will search. We used to do this for the assembler, linker, -# and nm only; for simplicity of configuration, however, we extend this -# criterion to tools (such as ar and ranlib) that are never invoked by -# the compiler, to avoid mismatches. -# -# Also note we have to check MD_EXEC_PREFIX before checking the user's path -# if build == target. This makes the most sense only when bootstrapping, -# but we also do so when build != host. In this case, we hope that the -# build and host systems will have similar contents of MD_EXEC_PREFIX. -# -# If we do not find a suitable binary, then try the user's path. - -AC_DEFUN([ACX_CHECK_INSTALLED_TARGET_TOOL], [ -AC_REQUIRE([ACX_TOOL_DIRS]) -AC_REQUIRE([ACX_HAVE_GCC_FOR_TARGET]) -if test -z "$ac_cv_path_$1" ; then - if test -n "$with_build_time_tools"; then - AC_MSG_CHECKING([for $2 in $with_build_time_tools]) - if test -x $with_build_time_tools/$2; then - $1=`cd $with_build_time_tools && pwd`/$2 - ac_cv_path_$1=[$]$1 - AC_MSG_RESULT([$ac_cv_path_$1]) - else - AC_MSG_RESULT(no) - fi - elif test $build != $host && test $have_gcc_for_target = yes; then - $1=`$GCC_FOR_TARGET --print-prog-name=$2` - test [$]$1=$2 && $1= - ac_cv_path_$1=[$]$1 +if test -z "$ac_cv_prog_$1" ; then + if test $build = $target ; then + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) + $1=$ncn_cv_$1 + else + $1="ifelse([$3],[],[${ncn_target_tool_prefix}$2],[$3])" fi -fi -if test -z "$ac_cv_path_$1" ; then - AC_PATH_PROG([$1], [$2], [], [$gcc_cv_tool_dirs]) -fi -if test -z "$ac_cv_path_$1" ; then - NCN_STRICT_CHECK_TARGET_TOOLS([$1], [$2]) else - $1=$ac_cv_path_$1 + $1="$ac_cv_prog_$1" fi -]) []dnl # ACX_CHECK_INSTALLED_TARGET_TOOL +]) []dnl # NCN_STRICT_CHECK_TARGET_TOOL ### # AC_PROG_CPP_WERROR @@ -337,6 +207,7 @@ acx_cv_cc_gcc_supports_ada=no errors=`(${CC} -c conftest.adb) 2>&1 || echo failure` if test x"$errors" = x && test -f conftest.$ac_objext; then acx_cv_cc_gcc_supports_ada=yes + break fi rm -f conftest.*]) @@ -435,42 +306,3 @@ fi AC_SUBST(LN)dnl ]) -dnl GCC_TARGET_TOOL(PROGRAM, TARGET-VAR, HOST-VAR, IN-TREE-TOOL, LANGUAGE) -AC_DEFUN([GCC_TARGET_TOOL], -[AC_MSG_CHECKING(where to find the target $1) -if test "x${build}" != "x${host}" ; then - if expr "x[$]$2" : "x/" > /dev/null; then - # We already found the complete path - AC_MSG_RESULT(pre-installed in `dirname [$]$2`) - else - # Canadian cross, just use what we found - AC_MSG_RESULT(pre-installed) - fi -else - ifelse([$4],,, - [ok=yes - case " ${configdirs} " in - *" patsubst([$4], [/.*], []) "*) ;; - *) ok=no ;; - esac - ifelse([$5],,, - [case ,${enable_languages}, in - *,$5,*) ;; - *) ok=no ;; - esac]) - if test $ok = yes; then - # An in-tree tool is available and we can use it - $2='$$r/$(HOST_SUBDIR)/$4' - AC_MSG_RESULT(just compiled) - el])if expr "x[$]$2" : "x/" > /dev/null; then - # We already found the complete path - AC_MSG_RESULT(pre-installed in `dirname [$]$2`) - elif test "x$target" = "x$host"; then - # We can use an host tool - $2='$($3)' - AC_MSG_RESULT(host tool) - else - # We need a cross tool - AC_MSG_RESULT(pre-installed) - fi -fi]) |