github.com/intfoundation/intchain@v0.0.0-20220727031208-4316ad31ca73/crypto/secp256k1/libsecp256k1/build-aux/m4/ax_prog_cc_for_build.m4 (about)

     1  # ===========================================================================
     2  #   http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
     3  # ===========================================================================
     4  #
     5  # SYNOPSIS
     6  #
     7  #   AX_PROG_CC_FOR_BUILD
     8  #
     9  # DESCRIPTION
    10  #
    11  #   This macro searches for a C compiler that generates native executables,
    12  #   that is a C compiler that surely is not a cross-compiler. This can be
    13  #   useful if you have to generate source code at compile-time like for
    14  #   example GCC does.
    15  #
    16  #   The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
    17  #   needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
    18  #   The value of these variables can be overridden by the user by specifying
    19  #   a compiler with an environment variable (like you do for standard CC).
    20  #
    21  #   It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object
    22  #   file extensions for the build platform, and GCC_FOR_BUILD to `yes' if
    23  #   the compiler we found is GCC. All these variables but GCC_FOR_BUILD are
    24  #   substituted in the Makefile.
    25  #
    26  # LICENSE
    27  #
    28  #   Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
    29  #
    30  #   Copying and distribution of this file, with or without modification, are
    31  #   permitted in any medium without royalty provided the copyright notice
    32  #   and this notice are preserved. This file is offered as-is, without any
    33  #   warranty.
    34  
    35  #serial 8
    36  
    37  AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
    38  AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
    39  AC_REQUIRE([AC_PROG_CC])dnl
    40  AC_REQUIRE([AC_PROG_CPP])dnl
    41  AC_REQUIRE([AC_EXEEXT])dnl
    42  AC_REQUIRE([AC_CANONICAL_HOST])dnl
    43  
    44  dnl Use the standard macros, but make them use other variable names
    45  dnl
    46  pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
    47  pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
    48  pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
    49  pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
    50  pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
    51  pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
    52  pushdef([ac_cv_objext], ac_cv_build_objext)dnl
    53  pushdef([ac_exeext], ac_build_exeext)dnl
    54  pushdef([ac_objext], ac_build_objext)dnl
    55  pushdef([CC], CC_FOR_BUILD)dnl
    56  pushdef([CPP], CPP_FOR_BUILD)dnl
    57  pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
    58  pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
    59  pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
    60  pushdef([host], build)dnl
    61  pushdef([host_alias], build_alias)dnl
    62  pushdef([host_cpu], build_cpu)dnl
    63  pushdef([host_vendor], build_vendor)dnl
    64  pushdef([host_os], build_os)dnl
    65  pushdef([ac_cv_host], ac_cv_build)dnl
    66  pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
    67  pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
    68  pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
    69  pushdef([ac_cv_host_os], ac_cv_build_os)dnl
    70  pushdef([ac_cpp], ac_build_cpp)dnl
    71  pushdef([ac_compile], ac_build_compile)dnl
    72  pushdef([ac_link], ac_build_link)dnl
    73  
    74  save_cross_compiling=$cross_compiling
    75  save_ac_tool_prefix=$ac_tool_prefix
    76  cross_compiling=no
    77  ac_tool_prefix=
    78  
    79  AC_PROG_CC
    80  AC_PROG_CPP
    81  AC_EXEEXT
    82  
    83  ac_tool_prefix=$save_ac_tool_prefix
    84  cross_compiling=$save_cross_compiling
    85  
    86  dnl Restore the old definitions
    87  dnl
    88  popdef([ac_link])dnl
    89  popdef([ac_compile])dnl
    90  popdef([ac_cpp])dnl
    91  popdef([ac_cv_host_os])dnl
    92  popdef([ac_cv_host_vendor])dnl
    93  popdef([ac_cv_host_cpu])dnl
    94  popdef([ac_cv_host_alias])dnl
    95  popdef([ac_cv_host])dnl
    96  popdef([host_os])dnl
    97  popdef([host_vendor])dnl
    98  popdef([host_cpu])dnl
    99  popdef([host_alias])dnl
   100  popdef([host])dnl
   101  popdef([LDFLAGS])dnl
   102  popdef([CPPFLAGS])dnl
   103  popdef([CFLAGS])dnl
   104  popdef([CPP])dnl
   105  popdef([CC])dnl
   106  popdef([ac_objext])dnl
   107  popdef([ac_exeext])dnl
   108  popdef([ac_cv_objext])dnl
   109  popdef([ac_cv_exeext])dnl
   110  popdef([ac_cv_prog_cc_g])dnl
   111  popdef([ac_cv_prog_cc_cross])dnl
   112  popdef([ac_cv_prog_cc_works])dnl
   113  popdef([ac_cv_prog_gcc])dnl
   114  popdef([ac_cv_prog_CPP])dnl
   115  
   116  dnl Finally, set Makefile variables
   117  dnl
   118  BUILD_EXEEXT=$ac_build_exeext
   119  BUILD_OBJEXT=$ac_build_objext
   120  AC_SUBST(BUILD_EXEEXT)dnl
   121  AC_SUBST(BUILD_OBJEXT)dnl
   122  AC_SUBST([CFLAGS_FOR_BUILD])dnl
   123  AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
   124  AC_SUBST([LDFLAGS_FOR_BUILD])dnl
   125  ])