have_cinttypes.m4 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # ===========================================================================
  2. # http://tangent.org/
  3. # ===========================================================================
  4. #
  5. # SYNOPSIS
  6. #
  7. # AX_CXX_CINTTYPES()
  8. #
  9. # DESCRIPTION
  10. #
  11. # Example:
  12. #
  13. # LICENSE
  14. #
  15. # Copyright (c) 2012 Brian Aker` <brian@tangent.org>
  16. #
  17. # This program is free software: you can redistribute it and/or modify it
  18. # under the terms of the GNU General Public License as published by the
  19. # Free Software Foundation, either version 3 of the License, or (at your
  20. # option) any later version.
  21. #
  22. # This program is distributed in the hope that it will be useful, but
  23. # WITHOUT ANY WARRANTY; without even the implied warranty of
  24. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
  25. # Public License for more details.
  26. #
  27. # You should have received a copy of the GNU General Public License along
  28. # with this program. If not, see <http://www.gnu.org/licenses/>.
  29. #
  30. # As a special exception, the respective Autoconf Macro's copyright owner
  31. # gives unlimited permission to copy, distribute and modify the configure
  32. # scripts that are the output of Autoconf when processing the Macro. You
  33. # need not follow the terms of the GNU General Public License when using
  34. # or distributing such scripts, even though portions of the text of the
  35. # Macro appear in them. The GNU General Public License (GPL) does govern
  36. # all other use of the material that constitutes the Autoconf Macro.
  37. #
  38. # This special exception to the GPL applies to versions of the Autoconf
  39. # Macro released by the Autoconf Archive. When you make and distribute a
  40. # modified version of the Autoconf Macro, you may extend this special
  41. # exception to the GPL to apply to your modified version as well.
  42. #serial 3
  43. AC_DEFUN([AX_CXX_CINTTYPES], [
  44. AC_REQUIRE([AC_PROG_CXX])
  45. AC_REQUIRE([AC_PROG_CXXCPP])
  46. AC_REQUIRE([AX_CXX_CSTDINT])
  47. AC_CACHE_CHECK([for location of cinttypes], [ac_cv_cxx_cinttypes], [
  48. AX_SAVE_FLAGS
  49. CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}"
  50. AC_LANG_PUSH([C++])
  51. AC_COMPILE_IFELSE([
  52. AC_LANG_PROGRAM([#include <cinttypes>], [
  53. uint32_t foo= UINT32_C(1);
  54. ])],
  55. [ac_cxx_cinttypes_cinttypes="<cinttypes>"])
  56. # Look for tr1/cinttypes
  57. AS_IF([test -z "$ac_cxx_cinttypes_cinttypes"],[
  58. AC_COMPILE_IFELSE([
  59. AC_LANG_PROGRAM([#include <tr1/cinttypes>], [
  60. uint32_t foo= UINT32_C(1);
  61. ])],
  62. [ac_cxx_cinttypes_tr1_cinttypes="<tr1/cinttypes>"])
  63. # Look for boost/cinttypes.hpp
  64. AS_IF([test -z "$ac_cxx_cinttypes_tr1_cinttypes"],[
  65. AC_COMPILE_IFELSE([
  66. AC_LANG_PROGRAM([#include <boost/cinttypes.hpp>], [
  67. uint32_t foo= UINT32_C(1);
  68. ])],
  69. [ac_cxx_cinttypes_boost_cinttypes_hpp="<boost/cinttypes.hpp>"])
  70. ])
  71. ])
  72. AC_LANG_POP
  73. AX_RESTORE_FLAGS
  74. AS_IF([test -n "$ac_cxx_cinttypes_cinttypes"], [ac_cv_cxx_cinttypes=$ac_cxx_cinttypes_cinttypes],
  75. [test -n "$ac_cxx_cinttypes_tr1_cinttypes"], [ac_cv_cxx_cinttypes=$ac_cxx_cinttypes_tr1_cinttypes],
  76. [test -n "$ac_cxx_cinttypes_boost_cinttypes_hpp"], [ac_cv_cxx_cinttypes=$ac_cxx_cinttypes_boost_cinttypes_hpp])
  77. ])
  78. AS_IF([ test -n "$ac_cv_cxx_cinttypes"], [
  79. AC_MSG_RESULT([$ac_cv_cxx_cinttypes])
  80. ],[
  81. ac_cv_cxx_cinttypes="<inttypes.h>"
  82. AC_MSG_WARN([Could not find a cinttypes header.])
  83. AC_MSG_RESULT([$ac_cv_cxx_cinttypes])
  84. ])
  85. AC_DEFINE([__STDC_LIMIT_MACROS],[1],[Use STDC Limit Macros in C++])
  86. AC_DEFINE_UNQUOTED([CINTTYPES_H],[$ac_cv_cxx_cinttypes],[the location of <cinttypes>])
  87. ])