From 0727c394562237d7e626849eae04790264e56208 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 11 Jul 2018 10:56:30 +0900 Subject: build: Use AX_CC_FOR_BUILD and EXEEXT. * configure.ac (AX_CC_FOR_BUILD): New. * doc/Makefile.am: Use EXEEXT and EXEEXT_FOR_BUILD. * m4/ac_prog_cc_for_build.m4: Remove. * m4/ax_cc_for_build.m4: New. -- Suggested-by: Michael Haubenwallner Fixes-commit: 6eb80abcde5ad776379069871e4156b28ef69712 Signed-off-by: NIIBE Yutaka --- m4/ac_prog_cc_for_build.m4 | 149 --------------------------------------------- m4/ax_cc_for_build.m4 | 77 +++++++++++++++++++++++ 2 files changed, 77 insertions(+), 149 deletions(-) delete mode 100644 m4/ac_prog_cc_for_build.m4 create mode 100644 m4/ax_cc_for_build.m4 (limited to 'm4') diff --git a/m4/ac_prog_cc_for_build.m4 b/m4/ac_prog_cc_for_build.m4 deleted file mode 100644 index 32329c7..0000000 --- a/m4/ac_prog_cc_for_build.m4 +++ /dev/null @@ -1,149 +0,0 @@ -dnl Available from the GNU Autoconf Macro Archive at: -dnl https://www.gnu.org/software/ac-archive/htmldoc/ac_prog_cc_for_build.html -dnl -dnl All content of this archive is free software; -dnl you can redistribute it and/or modify it under the terms of the GNU -dnl General Public License as published by the Free Software Foundation; -dnl either version 2, or (at your option) any later version. -dnl -dnl As a special exception, the respective Autoconf Macro's copyright -dnl owner gives unlimited permission to copy, distribute and modify the -dnl configure scripts that are the output of Autoconf when processing the -dnl Macro. You need not follow the terms of the GNU General Public License -dnl when using or distributing such scripts, even though portions of the -dnl text of the Macro appear in them. The GNU General Public License (GPL) -dnl does govern all other use of the material that constitutes the -dnl Autoconf Macro. -dnl -dnl This special exception to the GPL applies to versions of the Autoconf -dnl Macro released by the GNU Autoconf Macro Archive. When you make and -dnl distribute a modified version of the Autoconf Macro, you may extend -dnl this special exception to the GPL to apply to your modified version as -dnl well. - -dnl Synopsis AC_PROG_CC_FOR_BUILD -dnl -dnl This macro searches for a C compiler that generates native -dnl executables, that is a C compiler that surely is not a cross-compiler. -dnl This can be useful if you have to generate source code at compile-time -dnl like for example GCC does. -dnl -dnl The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything -dnl needed to compile or link (CC_FOR_BUILD) and preprocess -dnl (CPP_FOR_BUILD). The value of these variables can be overridden by -dnl the user by specifying a compiler with an environment variable (like -dnl you do for standard CC). -dnl -dnl It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and -dnl object file extensions for the build platform, and GCC_FOR_BUILD -dnl to `yes' if the compiler we found is GCC. All these variables but -dnl GCC_FOR_BUILD are substituted in the Makefile. -dnl -dnl Author Paolo Bonzini -dnl -AC_DEFUN([AC_PROG_CC_FOR_BUILD], [dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_CPP])dnl -AC_REQUIRE([AC_EXEEXT])dnl -AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl -dnl -pushdef([AC_TRY_COMPILER], [ -cat > conftest.$ac_ext << EOF -#line __oline__ "configure" -#include "confdefs.h" -[$1] -EOF -# If we can't run a trivial program, we are probably using a cross -compiler. -# Fail miserably. -if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; -exit) 2>/dev/null; then - [$2]=yes -else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.$ac_ext >&AC_FD_CC - [$2]=no -fi -[$3]=no -rm -fr conftest*])dnl - -dnl Use the standard macros, but make them use other variable names -dnl -pushdef([cross_compiling], [#])dnl -pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl -pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl -pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl -pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl -pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl -pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl -pushdef([ac_cv_objext], ac_cv_build_objext)dnl -pushdef([ac_exeext], ac_build_exeext)dnl -pushdef([ac_objext], ac_build_objext)dnl -pushdef([CC], CC_FOR_BUILD)dnl -pushdef([CPP], CPP_FOR_BUILD)dnl -pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl -pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl -pushdef([host], build)dnl -pushdef([host_alias], build_alias)dnl -pushdef([host_cpu], build_cpu)dnl -pushdef([host_vendor], build_vendor)dnl -pushdef([host_os], build_os)dnl -pushdef([ac_cv_host], ac_cv_build)dnl -pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl -pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl -pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl -pushdef([ac_cv_host_os], ac_cv_build_os)dnl -pushdef([ac_cpp], ac_build_cpp)dnl -pushdef([ac_compile], ac_build_compile)dnl -pushdef([ac_link], ac_build_link)dnl - -dnl Defeat the anti-duplication mechanism -dnl -dnl undefine([AC_PROVIDE_AC_PROG_CPP])dnl -dnl undefine([AC_PROVIDE_AC_PROG_C])dnl -dnl undefine([AC_PROVIDE_AC_EXEEXT])dnl - -AC_PROG_CC -AC_PROG_CPP -AC_EXEEXT - -dnl Restore the old definitions -dnl -popdef([AC_TRY_COMPILER])dnl -popdef([ac_link])dnl -popdef([ac_compile])dnl -popdef([ac_cpp])dnl -popdef([ac_cv_host_os])dnl -popdef([ac_cv_host_vendor])dnl -popdef([ac_cv_host_cpu])dnl -popdef([ac_cv_host_alias])dnl -popdef([ac_cv_host])dnl -popdef([host_os])dnl -popdef([host_vendor])dnl -popdef([host_cpu])dnl -popdef([host_alias])dnl -popdef([host])dnl -popdef([CPPFLAGS])dnl -popdef([CFLAGS])dnl -popdef([CPP])dnl -popdef([CC])dnl -popdef([ac_objext])dnl -popdef([ac_exeext])dnl -popdef([ac_cv_objext])dnl -popdef([ac_cv_exeext])dnl -popdef([ac_cv_prog_cc_g])dnl -popdef([ac_cv_prog_cc_works])dnl -popdef([ac_cv_prog_cc_cross])dnl -popdef([ac_cv_prog_gcc])dnl -popdef([ac_cv_prog_CPP])dnl -popdef([cross_compiling])dnl - -dnl Finally, set Makefile variables -dnl -BUILD_EXEEXT=$ac_build_exeext -BUILD_OBJEXT=$ac_build_objext -AC_SUBST(BUILD_EXEEXT)dnl -AC_SUBST(BUILD_OBJEXT)dnl -AC_SUBST([CFLAGS_FOR_BUILD])dnl -AC_SUBST([CPPFLAGS_FOR_BUILD])dnl -]) diff --git a/m4/ax_cc_for_build.m4 b/m4/ax_cc_for_build.m4 new file mode 100644 index 0000000..c62ffad --- /dev/null +++ b/m4/ax_cc_for_build.m4 @@ -0,0 +1,77 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CC_FOR_BUILD +# +# DESCRIPTION +# +# Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD. +# +# LICENSE +# +# Copyright (c) 2010 Reuben Thomas +# Copyright (c) 1999 Richard Henderson +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 3 + +dnl Get a default for CC_FOR_BUILD to put into Makefile. +AC_DEFUN([AX_CC_FOR_BUILD], +[# Put a plausible default for CC_FOR_BUILD in Makefile. +if test -z "$CC_FOR_BUILD"; then + if test "x$cross_compiling" = "xno"; then + CC_FOR_BUILD='$(CC)' + else + CC_FOR_BUILD=gcc + fi +fi +AC_SUBST(CC_FOR_BUILD) +# Also set EXEEXT_FOR_BUILD. +if test "x$cross_compiling" = "xno"; then + EXEEXT_FOR_BUILD='$(EXEEXT)' +else + AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext, + [rm -f conftest* + echo 'int main () { return 0; }' > conftest.c + bfd_cv_build_exeext= + ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5 + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + rm -f conftest* + test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no]) + EXEEXT_FOR_BUILD="" + test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} +fi +AC_SUBST(EXEEXT_FOR_BUILD)])dnl -- cgit v1.2.1