ax_check_define.m4 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # ===========================================================================
  2. # http://www.gnu.org/software/autoconf-archive/ax_check_define.html
  3. # ===========================================================================
  4. #
  5. # SYNOPSIS
  6. #
  7. # AC_CHECK_DEFINE([symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])
  8. # AX_CHECK_DEFINE([includes],[symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])
  9. #
  10. # DESCRIPTION
  11. #
  12. # Complements AC_CHECK_FUNC but it does not check for a function but for a
  13. # define to exist. Consider a usage like:
  14. #
  15. # AC_CHECK_DEFINE(__STRICT_ANSI__, CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500")
  16. #
  17. # LICENSE
  18. #
  19. # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
  20. #
  21. # This program is free software; you can redistribute it and/or modify it
  22. # under the terms of the GNU General Public License as published by the
  23. # Free Software Foundation; either version 3 of the License, or (at your
  24. # option) any later version.
  25. #
  26. # This program is distributed in the hope that it will be useful, but
  27. # WITHOUT ANY WARRANTY; without even the implied warranty of
  28. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
  29. # Public License for more details.
  30. #
  31. # You should have received a copy of the GNU General Public License along
  32. # with this program. If not, see <http://www.gnu.org/licenses/>.
  33. #
  34. # As a special exception, the respective Autoconf Macro's copyright owner
  35. # gives unlimited permission to copy, distribute and modify the configure
  36. # scripts that are the output of Autoconf when processing the Macro. You
  37. # need not follow the terms of the GNU General Public License when using
  38. # or distributing such scripts, even though portions of the text of the
  39. # Macro appear in them. The GNU General Public License (GPL) does govern
  40. # all other use of the material that constitutes the Autoconf Macro.
  41. #
  42. # This special exception to the GPL applies to versions of the Autoconf
  43. # Macro released by the Autoconf Archive. When you make and distribute a
  44. # modified version of the Autoconf Macro, you may extend this special
  45. # exception to the GPL to apply to your modified version as well.
  46. #serial 8
  47. AU_ALIAS([AC_CHECK_DEFINED], [AC_CHECK_DEFINE])
  48. AC_DEFUN([AC_CHECK_DEFINE],[
  49. AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1])dnl
  50. AC_CACHE_CHECK([for $1 defined], ac_var,
  51. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
  52. #ifdef $1
  53. int ok;
  54. #else
  55. choke me
  56. #endif
  57. ]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))
  58. AS_IF([test AS_VAR_GET(ac_var) != "no"], [$2], [$3])dnl
  59. AS_VAR_POPDEF([ac_var])dnl
  60. ])
  61. AU_ALIAS([AX_CHECK_DEFINED], [AX_CHECK_DEFINE])
  62. AC_DEFUN([AX_CHECK_DEFINE],[
  63. AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$2_$1])dnl
  64. AC_CACHE_CHECK([for $2 defined in $1], ac_var,
  65. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <$1>]], [[
  66. #ifdef $2
  67. int ok;
  68. #else
  69. choke me
  70. #endif
  71. ]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))
  72. AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl
  73. AS_VAR_POPDEF([ac_var])dnl
  74. ])
  75. AC_DEFUN([AX_CHECK_FUNC],
  76. [AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$2])dnl
  77. AC_CACHE_CHECK([for $2], ac_var,
  78. dnl AC_LANG_FUNC_LINK_TRY
  79. [AC_LINK_IFELSE([AC_LANG_PROGRAM([$1
  80. #undef $2
  81. char $2 ();],[
  82. char (*f) () = $2;
  83. return f != $2; ])],
  84. [AS_VAR_SET(ac_var, yes)],
  85. [AS_VAR_SET(ac_var, no)])])
  86. AS_IF([test AS_VAR_GET(ac_var) = yes], [$3], [$4])dnl
  87. AS_VAR_POPDEF([ac_var])dnl
  88. ])# AC_CHECK_FUNC