# vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
# ===========================================================================
# https://github.com/BrianAker/ddm4
# ===========================================================================
#
# SYNOPSIS
#
# AX_UUID()
# AX_UUID_GENERATE_TIME()
# AX_UUID_GENERATE_TIME_SAFE()
#
# DESCRIPTION
#
# Check for uuid, uuid_generate_time, and uuid_generate_time_safe support.
#
# LICENSE
#
# Copyright (c) 2012-2013 Brian Aker <brian@tangent.org>
#
# 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
AC_DEFUN([AX_UUID],
[AC_PREREQ([2.63])dnl
AC_CHECK_HEADER([uuid/uuid.h],[
AC_CACHE_CHECK([check to see if -luuid is needed], [ax_cv_libuuid_is_required],
[AC_LANG_PUSH([C])
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([#include <uuid/uuid.h>], [
uuid_t out;
uuid_generate(out);
])],
[ax_cv_libuuid_is_required=no],
[ax_cv_libuuid_is_required=yes],
[AC_MSG_WARN([test program execution failed])])
AC_LANG_POP
])
AS_IF([test "$ax_cv_libuuid_is_required" = yes],
[AC_CACHE_CHECK([check to see if -luuid is needed], [ax_cv_libuuid_works],
[AX_SAVE_FLAGS
LIBS="-luuid $LIBS"
AC_LANG_PUSH([C])
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([#include <uuid/uuid.h>], [
uuid_t out;
uuid_generate(out);
])],
[ax_cv_libuuid_works=yes],
[ax_cv_libuuid_works=no],
[AC_MSG_WARN([test program execution failed])])
AC_LANG_POP
AX_RESTORE_FLAGS])
])
AS_IF([test "$ax_cv_libuuid_is_required" = yes],
[AS_IF([test "$ax_cv_libuuid_works" = yes],[ax_libuuid=yes])],
[ax_libuuid=yes])
],[ax_libuuid=no])
AS_IF([test "x$ax_libuuid" = xyes],
[AC_DEFINE([HAVE_UUID_UUID_H],[1],[Have uuid/uuid.h])
AS_IF([test "x$ax_cv_libuuid_is_required" = xyes],[ LIBUUID_LIB='-luuid' ])],
[AC_DEFINE([HAVE_UUID_UUID_H],[0],[Have uuid/uuid.h])
])
AC_SUBST([LIBUUID_LIB])
AM_CONDITIONAL([HAVE_LIBUUID],[test "x$ax_libuuid" = xyes])
])
AC_DEFUN([AX_UUID_GENERATE_TIME],
[AC_PREREQ([2.63])dnl
AC_REQUIRE([AX_UUID])dnl
AC_CACHE_CHECK([for uuid_generate_time],
[ax_cv_uuid_generate_time],
[AX_SAVE_FLAGS
LIBS="$LIBUUID_LIB $LIBS"
AC_LANG_PUSH([C])
AC_RUN_IFELSE([
AC_LANG_PROGRAM([#include <uuid/uuid.h>],[
uuid_t out;
uuid_generate_time(out);
])],
[ax_cv_uuid_generate_time=yes],
[ax_cv_uuid_generate_time=no],
[AC_MSG_WARN([test program execution failed])])
AC_LANG_POP
AX_RESTORE_FLAGS
])
AS_IF([test "$ax_cv_uuid_generate_time" = yes],
[AC_DEFINE([HAVE_UUID_GENERATE_TIME],[1],[Define if uuid_generate_time is present in uuid/uuid.h.])],
[AC_DEFINE([HAVE_UUID_GENERATE_TIME],[0],[Define if uuid_generate_time is present in uuid/uuid.h.])])
])
AC_DEFUN([AX_UUID_GENERATE_TIME_SAFE],
[AC_PREREQ([2.63])dnl
AC_REQUIRE([AX_UUID])dnl
AC_CACHE_CHECK([for uuid_generate_time_safe],
[ax_cv_uuid_generate_time_safe],
[AX_SAVE_FLAGS
LIBS="$LIBUUID_LIB $LIBS"
AC_LANG_PUSH([C])
AC_RUN_IFELSE([
AC_LANG_PROGRAM([#include <uuid/uuid.h>],[
uuid_t out;
uuid_generate_time_safe(out);
])],
[ax_cv_uuid_generate_time_safe=yes],
[ax_cv_uuid_generate_time_safe=no],
[AC_MSG_WARN([test program execution failed])])
AC_LANG_POP
AX_RESTORE_FLAGS
])
AS_IF([test "$ax_cv_uuid_generate_time_safe" = yes],
[AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE],[1],[Define if uuid_generate_time_safe is present in uuid/uuid.h.])],
[AC_DEFINE([HAVE_UUID_GENERATE_TIME_SAFE],[0],[Define if uuid_generate_time_safe is present in uuid/uuid.h.])])
])