source: git/m4/ax_prog_cxx_for_build.m4 @ aa560b5

spielwiese
Last change on this file since aa560b5 was aa560b5, checked in by Max Horn <max@…>, 4 years ago
Update ax_prog_cxx_for_build.m4 ... to match changes made to ax_prog_cc_for_build.m4 recently. - save/restore GXX - honor `./configure --build=BUILD` - use AC_LANG_PUSH and AC_LANG_POP to save and restore global variables used for running tests like ac_compile and ac_link - use pushdef/popdef to save and restore ac_tool_prefix, cross_compiling and am_cv_CXX_dependencies_compiler_type (not sure if we need the latter but this mimicks what AX_PROG_CC_FOR_BUILD does) Submitted to upstream, see <https://savannah.gnu.org/patch/?9943>
  • Property mode set to 100644
File size: 3.7 KB
Line 
1# ===========================================================================
2#  https://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7#   AX_PROG_CXX_FOR_BUILD
8#
9# DESCRIPTION
10#
11#   This macro searches for a C++ compiler that generates native
12#   executables, that is a C++ compiler that surely is not a cross-compiler.
13#   This can be useful if you have to generate source code at compile-time
14#   like for example GCC does.
15#
16#   The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything
17#   needed to compile or link (CXX_FOR_BUILD) and preprocess
18#   (CXXCPP_FOR_BUILD). The value of these variables can be overridden by
19#   the user by specifying a compiler with an environment variable (like you
20#   do for standard CXX).
21#
22# LICENSE
23#
24#   Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
25#   Copyright (c) 2012 Avionic Design GmbH
26#
27#   Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini.
28#
29#   Copying and distribution of this file, with or without modification, are
30#   permitted in any medium without royalty provided the copyright notice
31#   and this notice are preserved. This file is offered as-is, without any
32#   warranty.
33
34#serial 4
35
36AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD])
37AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl
38AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl
39AC_REQUIRE([AC_PROG_CXX])dnl
40AC_REQUIRE([AC_PROG_CXXCPP])dnl
41AC_REQUIRE([AC_CANONICAL_HOST])dnl
42
43dnl Use the standard macros, but make them use other variable names
44dnl
45pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl
46pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl
47pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl
48pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl
49pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl
50pushdef([CXX], CXX_FOR_BUILD)dnl
51pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl
52pushdef([GXX], GXX_FOR_BUILD)dnl
53pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl
54pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
55pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl
56pushdef([host], build)dnl
57pushdef([host_alias], build_alias)dnl
58pushdef([host_cpu], build_cpu)dnl
59pushdef([host_vendor], build_vendor)dnl
60pushdef([host_os], build_os)dnl
61pushdef([ac_cv_host], ac_cv_build)dnl
62pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
63pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
64pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
65pushdef([ac_cv_host_os], ac_cv_build_os)dnl
66pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
67pushdef([am_cv_CXX_dependencies_compiler_type], am_cv_build_CXX_dependencies_compiler_type)dnl
68pushdef([cross_compiling], cross_compiling_build)dnl
69
70cross_compiling_build=no
71
72ac_build_tool_prefix=
73AS_IF([test -n "$build"],      [ac_build_tool_prefix="$build-"],
74      [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
75
76AC_LANG_PUSH([C++])
77AC_PROG_CXX
78AC_PROG_CXXCPP
79
80dnl Restore the old definitions
81dnl
82popdef([cross_compiling])dnl
83popdef([am_cv_CXX_dependencies_compiler_type])dnl
84popdef([ac_tool_prefix])dnl
85popdef([ac_cv_host_os])dnl
86popdef([ac_cv_host_vendor])dnl
87popdef([ac_cv_host_cpu])dnl
88popdef([ac_cv_host_alias])dnl
89popdef([ac_cv_host])dnl
90popdef([host_os])dnl
91popdef([host_vendor])dnl
92popdef([host_cpu])dnl
93popdef([host_alias])dnl
94popdef([host])dnl
95popdef([CXXCPPFLAGS])dnl
96popdef([CPPFLAGS])dnl
97popdef([CXXFLAGS])dnl
98popdef([CXXCPP])dnl
99popdef([CXX])dnl
100popdef([ac_cv_prog_cxx_g])dnl
101popdef([ac_cv_prog_cxx_cross])dnl
102popdef([ac_cv_prog_cxx_works])dnl
103popdef([ac_cv_prog_gxx])dnl
104popdef([ac_cv_prog_CXXCPP])dnl
105
106dnl restore global variables (dependant on the current
107dnl language after popping):
108AC_LANG_POP([C++])
109
110dnl Finally, set Makefile variables
111dnl
112AC_SUBST([CXXFLAGS_FOR_BUILD])dnl
113AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl
114])
Note: See TracBrowser for help on using the repository browser.