From bf9d3d15ba7a261aca3302ebc095b6dbbbe928a4 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sun, 29 Jan 2012 03:43:43 -0800 Subject: [PATCH] Updates to m4 --- configure.ac | 1 + libmemcached-1.0/memcached.h | 8 ++++ libmemcachedprotocol/cache.c | 2 + m4/bottom.m4 | 10 ++++ m4/have_cstdint.m4 | 89 ++++++++++++++++++++++++++++++++++++ 5 files changed, 110 insertions(+) create mode 100644 m4/have_cstdint.m4 diff --git a/configure.ac b/configure.ac index aa79d138..41474a8c 100644 --- a/configure.ac +++ b/configure.ac @@ -85,6 +85,7 @@ case "$target_os" in dnl Specialty checks AX_PTHREAD +AX_CXX_CSTDINT CONFIG_EXTRA DETECT_BYTEORDER ENABLE_UTILLIB diff --git a/libmemcached-1.0/memcached.h b/libmemcached-1.0/memcached.h index fba30674..b1279e5c 100644 --- a/libmemcached-1.0/memcached.h +++ b/libmemcached-1.0/memcached.h @@ -38,7 +38,15 @@ #pragma once #include + +#ifdef __cplusplus +#include +#include +#else +#include #include +#endif + #include diff --git a/libmemcachedprotocol/cache.c b/libmemcachedprotocol/cache.c index ed669f4f..6240be7d 100644 --- a/libmemcachedprotocol/cache.c +++ b/libmemcachedprotocol/cache.c @@ -35,6 +35,8 @@ */ /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +#include "config.h" + #include #include #include diff --git a/m4/bottom.m4 b/m4/bottom.m4 index 55591be4..a02e312f 100644 --- a/m4/bottom.m4 +++ b/m4/bottom.m4 @@ -1,5 +1,15 @@ AC_DEFUN([CONFIG_EXTRA], [ +AH_TOP([ +#pragma once + +/* _SYS_FEATURE_TESTS_H is Solaris, _FEATURES_H is GCC */ +#if defined( _SYS_FEATURE_TESTS_H) || defined(_FEATURES_H) +#error "You should include config.h as your first include file" +#endif + +]) + AH_BOTTOM([ #if defined(__cplusplus) diff --git a/m4/have_cstdint.m4 b/m4/have_cstdint.m4 new file mode 100644 index 00000000..ef084352 --- /dev/null +++ b/m4/have_cstdint.m4 @@ -0,0 +1,89 @@ +# =========================================================================== +# http://tangent.org/ +# =========================================================================== +# +# SYNOPSIS +# +# AX_CXX_CSTDINT +# +# DESCRIPTION +# +# Example: +# +# LICENSE +# +# Copyright (c) 2012 Brian Aker` +# +# 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 . +# +# 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 1 + + +AC_DEFUN([AX_CXX_CSTDINT], + [ + AC_REQUIRE([AC_PROG_CXX]) + AC_REQUIRE([AC_PROG_CXXCPP]) + + AC_MSG_CHECKING(the location of cstdint) + AC_LANG_PUSH([C++]) + save_CXXFLAGS="${CXXFLAGS}" + CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}" + ac_cv_cxx_cstdint="" + + AC_LANG_PUSH([C++]) +# AC_CACHE_CHECK([for location of cstdint], [ac_cv_cxx_cstdint], +# [ +# Look for cstdint + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ uint32_t t ])], + [ac_cv_cxx_cstdint=""], + [ +# Look for tr1/cstdint + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ uint32_t t ])], + [ac_cv_cxx_cstdint=""], + [ +# Look for boost/cstdint.hpp + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ uint32_t t ])], + [ac_cv_cxx_cstdint=""]) + + ]) + ]) +# ]) + + AC_LANG_POP() + + CXXFLAGS="${save_CXXFLAGS}" + if test -n "$ac_cv_cxx_cstdint"; then + AC_MSG_RESULT([$ac_cv_cxx_cstdint]) + else + ac_cv_cxx_cstdint="" + AC_MSG_WARN([Could not find a cstdint header.]) + AC_MSG_RESULT([$ac_cv_cxx_cstdint]) + fi + + AC_DEFINE_UNQUOTED(CSTDINT_H,$ac_cv_cxx_cstdint, [the location of ]) + + ]) -- 2.30.2