Update `THANKS'.
[bpt/guile.git] / m4 / stdlib_h.m4
CommitLineData
f4c79b3c 1# stdlib_h.m4 serial 23
61cd9dc9 2dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
f240aacb
LC
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_STDLIB_H],
8[
9 AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
10 gl_CHECK_NEXT_HEADERS([stdlib.h])
11 AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT])
12 if test $ac_cv_header_random_h = yes; then
13 HAVE_RANDOM_H=1
14 else
15 HAVE_RANDOM_H=0
16 fi
17 AC_SUBST([HAVE_RANDOM_H])
18 AC_CHECK_TYPES([struct random_data],
19 [], [HAVE_STRUCT_RANDOM_DATA=0],
20 [[#include <stdlib.h>
21 #if HAVE_RANDOM_H
22 # include <random.h>
23 #endif
24 ]])
61cd9dc9
LC
25
26 dnl Check for declarations of anything we want to poison if the
27 dnl corresponding gnulib module is not in use, and which is not
28 dnl guaranteed by C89.
29 gl_WARN_ON_USE_PREPARE([[#include <stdlib.h>
30#if HAVE_SYS_LOADAVG_H
31# include <sys/loadavg.h>
32#endif
33#if HAVE_RANDOM_H
34# include <random.h>
35#endif
36 ]], [atoll canonicalize_file_name getloadavg getsubopt mkdtemp
37 mkostemp mkostemps mkstemp mkstemps random_r initstat_r srandom_r
38 setstate_r realpath rpmatch setenv strtod strtoll strtoull unsetenv])
f240aacb
LC
39])
40
41AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
42[
43 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
44 AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
45 GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
f4c79b3c
LC
46 dnl Define it also as a C macro, for the benefit of the unit tests.
47 gl_MODULE_INDICATOR([$1])
f240aacb
LC
48])
49
50AC_DEFUN([gl_STDLIB_H_DEFAULTS],
51[
f240aacb 52 GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL])
8912421c
LC
53 GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX])
54 GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
f240aacb
LC
55 GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG])
56 GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT])
8912421c 57 GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
f240aacb 58 GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP])
8912421c 59 GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP])
f29ded4b 60 GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS])
f240aacb 61 GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP])
f29ded4b 62 GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS])
f240aacb
LC
63 GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
64 GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R])
8912421c
LC
65 GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
66 GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH])
f240aacb
LC
67 GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH])
68 GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
69 GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
70 GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
71 GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
72 GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
73 dnl Assume proper GNU behavior unless another module says otherwise.
74 HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
75 HAVE_CALLOC_POSIX=1; AC_SUBST([HAVE_CALLOC_POSIX])
8912421c
LC
76 HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
77 HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
f240aacb
LC
78 HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
79 HAVE_MALLOC_POSIX=1; AC_SUBST([HAVE_MALLOC_POSIX])
80 HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
8912421c 81 HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
f29ded4b
LC
82 HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
83 HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
f240aacb 84 HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
8912421c
LC
85 HAVE_REALLOC_POSIX=1; AC_SUBST([HAVE_REALLOC_POSIX])
86 HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
f240aacb
LC
87 HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
88 HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
89 HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
90 HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
91 HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
92 HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
93 HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
94 HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV])
8912421c 95 REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
f240aacb
LC
96 REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
97 REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
8912421c 98 REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
4f02b98d 99 REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
f240aacb 100 REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
4f02b98d 101 REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
f240aacb 102])