Home | History | Annotate | Download | only in m4
      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 (a] 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 ])
    126