diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2018-07-11 10:56:30 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2018-07-11 10:56:30 +0900 |
commit | 0727c394562237d7e626849eae04790264e56208 (patch) | |
tree | 8d58d1097d359c3b84f45c220b487fb093300b40 | |
parent | f1162767e3552d05c1255497d49de15c2d94d0b4 (diff) | |
download | libgpg-error-0727c394562237d7e626849eae04790264e56208.tar.gz |
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
<michael.haubenwallner@ssi-schaefer.com>
Fixes-commit: 6eb80abcde5ad776379069871e4156b28ef69712
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | doc/Makefile.am | 19 | ||||
-rw-r--r-- | m4/ac_prog_cc_for_build.m4 | 149 | ||||
-rw-r--r-- | m4/ax_cc_for_build.m4 | 77 |
4 files changed, 85 insertions, 172 deletions
diff --git a/configure.ac b/configure.ac index 5c69dce..129cb61 100644 --- a/configure.ac +++ b/configure.ac @@ -126,17 +126,7 @@ LT_LANG([Windows Resource]) # We need to compile and run a program on the build machine. -dnl The AC_PROG_CC_FOR_BUILD macro in the AC archive is broken for -dnl autoconf 2.57. -dnl AC_PROG_CC_FOR_BUILD -AC_MSG_CHECKING(for cc for build) -if test "$cross_compiling" = "yes"; then - CC_FOR_BUILD="${CC_FOR_BUILD-cc}" -else - CC_FOR_BUILD="${CC_FOR_BUILD-$CC}" -fi -AC_MSG_RESULT($CC_FOR_BUILD) -AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler]) +AX_CC_FOR_BUILD AH_BOTTOM([ /* Force using of NLS for W32 even if no libintl has been found. This is diff --git a/doc/Makefile.am b/doc/Makefile.am index d9d5d15..9090067 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -38,20 +38,15 @@ myman_pages = gpg-error-config.1 man_MANS = $(myman_pages) if CROSS_COMPILING -YAT2M_CMD = ./yat2m-for-build -YAT2M_DEP = yat2m-for-build -CLEANFILES += yat2m-for-build +YAT2M_CMD = ./yat2m-for-build$(EXEEXT_FOR_BUILD) +YAT2M_DEP = yat2m-for-build$(EXEEXT_FOR_BUILD) +CLEANFILES += yat2m-for-build$(EXEEXT_FOR_BUILD) -yat2m-for-build: yat2m.c - $(CC_FOR_BUILD) -o $@ $(srcdir)/yat2m.c +yat2m-for-build$(EXEEXT_FOR_BUILD): yat2m.c + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $(srcdir)/yat2m.c else -if HAVE_W32_SYSTEM -YAT2M_CMD = ./yat2m.exe -YAT2M_DEP = yat2m.exe -else -YAT2M_CMD = ./yat2m -YAT2M_DEP = yat2m -endif +YAT2M_CMD = ./yat2m$(EXEEXT) +YAT2M_DEP = yat2m$(EXEEXT) endif yat2m-stamp: $(myman_sources) $(srcdir)/version.texi 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 <bonzini@gnu.org> -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 <rrt@sc3d.org> +# Copyright (c) 1999 Richard Henderson <rth@redhat.com> +# +# 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 <https://www.gnu.org/licenses/>. +# +# 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 |