Build dlopenable modules with `-module'.
[bpt/guile.git] / m4 / stdlib_h.m4
CommitLineData
9157d901 1# stdlib_h.m4 serial 30
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
9157d901 36 ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp
a927b6c1
LC
37 mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r
38 setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt
39 unsetenv])
f240aacb
LC
40])
41
42AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
43[
44 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
45 AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
a927b6c1 46 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
f4c79b3c 47 dnl Define it also as a C macro, for the benefit of the unit tests.
a927b6c1 48 gl_MODULE_INDICATOR_FOR_TESTS([$1])
f240aacb
LC
49])
50
51AC_DEFUN([gl_STDLIB_H_DEFAULTS],
52[
9157d901 53 GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT])
f240aacb 54 GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL])
8912421c
LC
55 GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX])
56 GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
f240aacb
LC
57 GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG])
58 GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT])
a927b6c1 59 GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT])
8912421c 60 GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
f240aacb 61 GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP])
8912421c 62 GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP])
f29ded4b 63 GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS])
f240aacb 64 GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP])
f29ded4b 65 GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS])
a927b6c1 66 GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME])
f240aacb
LC
67 GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
68 GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R])
8912421c
LC
69 GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
70 GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH])
f240aacb
LC
71 GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH])
72 GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
73 GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
74 GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
75 GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
a927b6c1 76 GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT])
f240aacb
LC
77 GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
78 dnl Assume proper GNU behavior unless another module says otherwise.
9157d901 79 HAVE__EXIT=1; AC_SUBST([HAVE__EXIT])
f240aacb 80 HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
8912421c
LC
81 HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
82 HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
f240aacb 83 HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
a927b6c1 84 HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
f240aacb 85 HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
8912421c 86 HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
f29ded4b 87 HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
a927b6c1 88 HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP])
f29ded4b 89 HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
a927b6c1 90 HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME])
f240aacb 91 HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
8912421c 92 HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
f240aacb
LC
93 HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
94 HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
95 HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
96 HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
97 HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
98 HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
99 HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
a927b6c1 100 HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
f240aacb 101 HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV])
9157d901 102 REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
8912421c 103 REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
9157d901 104 REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
f240aacb
LC
105 REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
106 REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
9157d901 107 REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
8912421c 108 REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
4f02b98d 109 REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
f240aacb 110 REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
4f02b98d 111 REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
f240aacb 112])