1# sys_random_h.m4 serial 5
2dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_HEADER_SYS_RANDOM],
8[
9  AC_REQUIRE([gl_SYS_RANDOM_H_DEFAULTS])
10  dnl <sys/random.h> is always overridden, because of GNULIB_POSIXCHECK.
11  gl_CHECK_NEXT_HEADERS([sys/random.h])
12  if test $ac_cv_header_sys_random_h = yes; then
13    HAVE_SYS_RANDOM_H=1
14  else
15    HAVE_SYS_RANDOM_H=0
16  fi
17  AC_SUBST([HAVE_SYS_RANDOM_H])
18
19  m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
20  if test $ac_cv_header_sys_random_h = yes; then
21    UNISTD_H_HAVE_SYS_RANDOM_H=1
22  fi
23
24  dnl Check for declarations of anything we want to poison if the
25  dnl corresponding gnulib module is not in use.
26  gl_WARN_ON_USE_PREPARE([[
27#if HAVE_SYS_RANDOM_H
28/* Additional includes are needed before <sys/random.h> on uClibc
29   and Mac OS X.  */
30# include <sys/types.h>
31# include <stdlib.h>
32# include <sys/random.h>
33#endif
34    ]],
35    [getrandom])
36])
37
38AC_DEFUN([gl_SYS_RANDOM_MODULE_INDICATOR],
39[
40  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
41  AC_REQUIRE([gl_SYS_RANDOM_H_DEFAULTS])
42  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
43  dnl Define it also as a C macro, for the benefit of the unit tests.
44  gl_MODULE_INDICATOR_FOR_TESTS([$1])
45])
46
47AC_DEFUN([gl_SYS_RANDOM_H_DEFAULTS],
48[
49  GNULIB_GETRANDOM=0;     AC_SUBST([GNULIB_GETRANDOM])
50  dnl Assume proper GNU behavior unless another module says otherwise.
51  HAVE_GETRANDOM=1;       AC_SUBST([HAVE_GETRANDOM])
52  REPLACE_GETRANDOM=0;    AC_SUBST([REPLACE_GETRANDOM])
53])
54