mirror of https://github.com/Icinga/icinga2.git
Use ax_cxx_compile_stdcxx_0x.m4 to detect C++0x support.
This commit is contained in:
parent
7f33b2caae
commit
2e3e1af32b
|
@ -53,7 +53,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
# define HAVE_CXX11
|
# define HAVE_STDCXX_0X
|
||||||
# pragma warning(disable:4251)
|
# pragma warning(disable:4251)
|
||||||
# define _CRT_SECURE_NO_DEPRECATE
|
# define _CRT_SECURE_NO_DEPRECATE
|
||||||
# define _CRT_SECURE_NO_WARNINGS
|
# define _CRT_SECURE_NO_WARNINGS
|
||||||
|
@ -94,13 +94,13 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using std::exception;
|
using std::exception;
|
||||||
|
|
||||||
#ifdef HAVE_CXX11
|
#ifdef HAVE_STDCXX_0X
|
||||||
# include <memory>
|
# include <memory>
|
||||||
# include <functional>
|
# include <functional>
|
||||||
|
|
||||||
using namespace std::placeholders;
|
using namespace std::placeholders;
|
||||||
|
|
||||||
#else /* HAVE_CXX11 */
|
#else /* HAVE_STDCXX_0X */
|
||||||
# ifdef HAVE_BOOST
|
# ifdef HAVE_BOOST
|
||||||
# include <boost/smart_ptr.hpp>
|
# include <boost/smart_ptr.hpp>
|
||||||
# include <boost/make_shared.hpp>
|
# include <boost/make_shared.hpp>
|
||||||
|
@ -118,7 +118,7 @@ using namespace std::tr1;
|
||||||
using namespace std::tr1::placeholders;
|
using namespace std::tr1::placeholders;
|
||||||
|
|
||||||
#endif /* HAVE_BOOST */
|
#endif /* HAVE_BOOST */
|
||||||
#endif /* HAVE_CXX11 */
|
#endif /* HAVE_STDCXX_0X */
|
||||||
|
|
||||||
#if defined(__APPLE__) && defined(__MACH__)
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
# ============================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_0x.html
|
||||||
|
# ============================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_CXX_COMPILE_STDCXX_0X
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# Check for baseline language coverage in the compiler for the C++0x
|
||||||
|
# standard.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty provided the copyright notice
|
||||||
|
# and this notice are preserved. This file is offered as-is, without any
|
||||||
|
# warranty.
|
||||||
|
|
||||||
|
#serial 7
|
||||||
|
|
||||||
|
AU_ALIAS([AC_CXX_COMPILE_STDCXX_0X], [AX_CXX_COMPILE_STDCXX_0X])
|
||||||
|
AC_DEFUN([AX_CXX_COMPILE_STDCXX_0X], [
|
||||||
|
AC_CACHE_CHECK(if g++ supports C++0x features without additional flags,
|
||||||
|
ax_cv_cxx_compile_cxx0x_native,
|
||||||
|
[AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
template <typename T>
|
||||||
|
struct check
|
||||||
|
{
|
||||||
|
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef check<check<bool>> right_angle_brackets;
|
||||||
|
|
||||||
|
int a;
|
||||||
|
decltype(a) b;
|
||||||
|
|
||||||
|
typedef check<int> check_type;
|
||||||
|
check_type c;
|
||||||
|
check_type&& cr = static_cast<check_type&&>(c);],,
|
||||||
|
ax_cv_cxx_compile_cxx0x_native=yes, ax_cv_cxx_compile_cxx0x_native=no)
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x,
|
||||||
|
ax_cv_cxx_compile_cxx0x_cxx,
|
||||||
|
[AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=c++0x"
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
template <typename T>
|
||||||
|
struct check
|
||||||
|
{
|
||||||
|
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef check<check<bool>> right_angle_brackets;
|
||||||
|
|
||||||
|
int a;
|
||||||
|
decltype(a) b;
|
||||||
|
|
||||||
|
typedef check<int> check_type;
|
||||||
|
check_type c;
|
||||||
|
check_type&& cr = static_cast<check_type&&>(c);],,
|
||||||
|
ax_cv_cxx_compile_cxx0x_cxx=yes, ax_cv_cxx_compile_cxx0x_cxx=no)
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x,
|
||||||
|
ax_cv_cxx_compile_cxx0x_gxx,
|
||||||
|
[AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=gnu++0x"
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
template <typename T>
|
||||||
|
struct check
|
||||||
|
{
|
||||||
|
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef check<check<bool>> right_angle_brackets;
|
||||||
|
|
||||||
|
int a;
|
||||||
|
decltype(a) b;
|
||||||
|
|
||||||
|
typedef check<int> check_type;
|
||||||
|
check_type c;
|
||||||
|
check_type&& cr = static_cast<check_type&&>(c);],,
|
||||||
|
ax_cv_cxx_compile_cxx0x_gxx=yes, ax_cv_cxx_compile_cxx0x_gxx=no)
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "$ax_cv_cxx_compile_cxx0x_native" = yes ||
|
||||||
|
test "$ax_cv_cxx_compile_cxx0x_cxx" = yes ||
|
||||||
|
test "$ax_cv_cxx_compile_cxx0x_gxx" = yes; then
|
||||||
|
AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$ax_cv_cxx_compile_cxx0x_gxx" = yes; then
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=gnu++0x"
|
||||||
|
elif test "$ax_cv_cxx_compile_cxx0x_cxx" = yes; then
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=c++0x"
|
||||||
|
fi
|
||||||
|
])
|
35
configure.ac
35
configure.ac
|
@ -1,5 +1,21 @@
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
/******************************************************************************
|
||||||
dnl Created by Anjuta application wizard.
|
* Icinga 2 *
|
||||||
|
* Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) *
|
||||||
|
* *
|
||||||
|
* 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 2 *
|
||||||
|
* 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, write to the Free Software Foundation *
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
AC_INIT([icinga], [2.0])
|
AC_INIT([icinga], [2.0])
|
||||||
AC_LANG(C++)
|
AC_LANG(C++)
|
||||||
|
@ -31,6 +47,7 @@ AC_PROG_INSTALL
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_CXX
|
AC_PROG_CXX
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
AX_CXX_COMPILE_STDCXX_0X
|
||||||
AX_CXX_GCC_ABI_DEMANGLE
|
AX_CXX_GCC_ABI_DEMANGLE
|
||||||
AX_PTHREAD
|
AX_PTHREAD
|
||||||
|
|
||||||
|
@ -41,16 +58,10 @@ AC_CHECK_LIB(m, floor)
|
||||||
AC_CHECK_LIB(pthread, pthread_create)
|
AC_CHECK_LIB(pthread, pthread_create)
|
||||||
AC_CHECK_LIB(socket, getsockname)
|
AC_CHECK_LIB(socket, getsockname)
|
||||||
|
|
||||||
AX_CHECK_COMPILE_FLAG([-std=c++0x], [have_cxx11_support=yes])
|
AC_COMPILE_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([[#include <openssl/ssl.h>]], [])],
|
||||||
if test "$have_cxx11_support" = "yes"; then
|
[],
|
||||||
CXXFLAGS="$CXXFLAGS -std=c++0x"
|
[AC_MSG_ERROR([You need the OpenSSL headers and libraries in order to build this application]) ])
|
||||||
AC_DEFINE(HAVE_CXX11, 1,
|
|
||||||
[define if the compiler supports C++11])
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <openssl/ssl.h>]], [])], [], [AC_MSG_ERROR([You need the OpenSSL headers and libraries in order to build this application]) ])
|
|
||||||
|
|
||||||
|
|
||||||
AC_OUTPUT([
|
AC_OUTPUT([
|
||||||
|
|
Loading…
Reference in New Issue