ax_uuid.m4 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. # vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
  2. # ===========================================================================
  3. # https://github.com/BrianAker/ddm4
  4. # ===========================================================================
  5. #
  6. # SYNOPSIS
  7. #
  8. # AX_UUID([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
  9. # AX_UUID_GENERATE_TIME([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
  10. # AX_UUID_GENERATE_TIME_SAFE([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
  11. #
  12. # DESCRIPTION
  13. #
  14. # Check for uuid, uuid_generate_time, and uuid_generate_time_safe support.
  15. #
  16. # LICENSE
  17. #
  18. # Copyright (c) 2012-2013 Brian Aker <brian@tangent.org>
  19. #
  20. # Copying and distribution of this file, with or without modification, are
  21. # permitted in any medium without royalty provided the copyright notice
  22. # and this notice are preserved. This file is offered as-is, without any
  23. # warranty.
  24. #serial 8
  25. AC_DEFUN([AX_UUID],
  26. [AC_PREREQ([2.63])dnl
  27. AC_CHECK_HEADER([uuid/uuid.h],[
  28. AC_CACHE_CHECK([check to see if -luuid is needed], [ax_cv_libuuid_is_required],
  29. [AC_LANG_PUSH([C])
  30. AC_RUN_IFELSE(
  31. [AC_LANG_PROGRAM([#include <uuid/uuid.h>], [
  32. uuid_t out;
  33. uuid_generate(out);
  34. ])],
  35. [ax_cv_libuuid_is_required=no],
  36. [ax_cv_libuuid_is_required=yes],
  37. [AC_MSG_WARN([test program execution failed])])
  38. AC_LANG_POP
  39. ])
  40. AS_IF([test "$ax_cv_libuuid_is_required" = yes],
  41. [AC_CACHE_CHECK([check to see if -luuid is needed], [ax_cv_libuuid_works],
  42. [AX_SAVE_FLAGS
  43. LIBS="-luuid $LIBS"
  44. AC_LANG_PUSH([C])
  45. AC_RUN_IFELSE(
  46. [AC_LANG_PROGRAM([#include <uuid/uuid.h>], [
  47. uuid_t out;
  48. uuid_generate(out);
  49. ])],
  50. [ax_cv_libuuid_works=yes],
  51. [ax_cv_libuuid_works=no],
  52. [AC_MSG_WARN([test program execution failed])])
  53. AC_LANG_POP
  54. AX_RESTORE_FLAGS])
  55. ])
  56. AS_IF([test "$ax_cv_libuuid_is_required" = yes],
  57. [AS_IF([test "$ax_cv_libuuid_works" = yes],[ax_libuuid=yes])],
  58. [ax_libuuid=yes])
  59. ],[ax_libuuid=no])
  60. AS_IF([test "x$ax_libuuid" = xyes],
  61. [AC_DEFINE([HAVE_UUID_UUID_H],[1],[Have uuid/uuid.h])
  62. AS_IF([test "x$ax_cv_libuuid_is_required" = xyes],[ LIBUUID_LIB='-luuid' ])],
  63. [AC_DEFINE([HAVE_UUID_UUID_H],[0],[Have uuid/uuid.h])
  64. ])
  65. AC_SUBST([LIBUUID_LIB])
  66. AM_CONDITIONAL([HAVE_LIBUUID],[test "x$ax_libuuid" = xyes])
  67. # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
  68. AS_IF([test "x$ax_libuuid" = xyes],
  69. [$1],
  70. [$2])
  71. ])
  72. AC_DEFUN([AX_UUID_GENERATE_TIME],
  73. [AC_PREREQ([2.63])dnl
  74. AX_UUID([$1],[$2])
  75. AC_CACHE_CHECK([for uuid_generate_time],
  76. [ax_cv_uuid_generate_time],
  77. [AX_SAVE_FLAGS
  78. LIBS="$LIBUUID_LIB $LIBS"
  79. AC_LANG_PUSH([C])
  80. AC_RUN_IFELSE([
  81. AC_LANG_PROGRAM([#include <uuid/uuid.h>],[
  82. uuid_t out;
  83. uuid_generate_time(out);
  84. ])],
  85. [ax_cv_uuid_generate_time=yes],
  86. [ax_cv_uuid_generate_time=no],
  87. [AC_MSG_WARN([test program execution failed])])
  88. AC_LANG_POP
  89. AX_RESTORE_FLAGS
  90. ])
  91. AS_IF([test "$ax_cv_uuid_generate_time" = yes],
  92. [AC_DEFINE([HAVE_UUID_GENERATE_TIME],[1],[Define if uuid_generate_time is present in uuid/uuid.h.])],
  93. [AC_DEFINE([HAVE_UUID_GENERATE_TIME],[0],[Define if uuid_generate_time is present in uuid/uuid.h.])])
  94. AS_IF([test "x$ax_cv_uuid_generate_time" = xyes],
  95. [$1],
  96. [$2])
  97. ])
  98. AC_DEFUN([AX_UUID_GENERATE_TIME_SAFE],
  99. [AC_PREREQ([2.63])dnl
  100. AX_UUID([$1],[$2])
  101. AC_CACHE_CHECK([for uuid_generate_time_safe],
  102. [ax_cv_uuid_generate_time_safe],
  103. [AX_SAVE_FLAGS
  104. LIBS="$LIBUUID_LIB $LIBS"
  105. AC_LANG_PUSH([C])
  106. AC_RUN_IFELSE([
  107. AC_LANG_PROGRAM([#include <uuid/uuid.h>],[
  108. uuid_t out;
  109. uuid_generate_time_safe(out);
  110. ])],
  111. [ax_cv_uuid_generate_time_safe=yes],
  112. [ax_cv_uuid_generate_time_safe=no],
  113. [AC_MSG_WARN([test program execution failed])])
  114. AC_LANG_POP
  115. AX_RESTORE_FLAGS
  116. ])
  117. AS_IF([test "$ax_cv_uuid_generate_time_safe" = yes],
  118. [AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE],[1],[Define if uuid_generate_time_safe is present in uuid/uuid.h.])],
  119. [AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE],[0],[Define if uuid_generate_time_safe is present in uuid/uuid.h.])])
  120. AS_IF([test "x$ax_cv_uuid_generate_time_safe" = xyes],
  121. [$1],
  122. [$2])
  123. ])