1# unistd_h.m4 serial 68
2dnl Copyright (C) 2006-2016 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
7dnl Written by Simon Josefsson, Bruno Haible.
8
9AC_DEFUN([gl_UNISTD_H],
10[
11  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
12  dnl once only, before all statements that occur in other macros.
13  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
14
15  gl_CHECK_NEXT_HEADERS([unistd.h])
16  if test $ac_cv_header_unistd_h = yes; then
17    HAVE_UNISTD_H=1
18  else
19    HAVE_UNISTD_H=0
20  fi
21  AC_SUBST([HAVE_UNISTD_H])
22
23  dnl Ensure the type pid_t gets defined.
24  AC_REQUIRE([AC_TYPE_PID_T])
25
26  dnl Determine WINDOWS_64_BIT_OFF_T.
27  AC_REQUIRE([gl_TYPE_OFF_T])
28
29  dnl Check for declarations of anything we want to poison if the
30  dnl corresponding gnulib module is not in use.
31  gl_WARN_ON_USE_PREPARE([[
32#if HAVE_UNISTD_H
33# include <unistd.h>
34#endif
35/* Some systems declare various items in the wrong headers.  */
36#if !(defined __GLIBC__ && !defined __UCLIBC__)
37# include <fcntl.h>
38# include <stdio.h>
39# include <stdlib.h>
40# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
41#  include <io.h>
42# endif
43#endif
44    ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
45    fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
46    gethostname getlogin getlogin_r getpagesize
47    getusershell setusershell endusershell
48    group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
49    readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
50    unlink unlinkat usleep])
51])
52
53AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
54[
55  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
56  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
57  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
58  dnl Define it also as a C macro, for the benefit of the unit tests.
59  gl_MODULE_INDICATOR_FOR_TESTS([$1])
60])
61
62AC_DEFUN([gl_UNISTD_H_DEFAULTS],
63[
64  GNULIB_CHDIR=0;                AC_SUBST([GNULIB_CHDIR])
65  GNULIB_CHOWN=0;                AC_SUBST([GNULIB_CHOWN])
66  GNULIB_CLOSE=0;                AC_SUBST([GNULIB_CLOSE])
67  GNULIB_DUP=0;                  AC_SUBST([GNULIB_DUP])
68  GNULIB_DUP2=0;                 AC_SUBST([GNULIB_DUP2])
69  GNULIB_DUP3=0;                 AC_SUBST([GNULIB_DUP3])
70  GNULIB_ENVIRON=0;              AC_SUBST([GNULIB_ENVIRON])
71  GNULIB_EUIDACCESS=0;           AC_SUBST([GNULIB_EUIDACCESS])
72  GNULIB_FACCESSAT=0;            AC_SUBST([GNULIB_FACCESSAT])
73  GNULIB_FCHDIR=0;               AC_SUBST([GNULIB_FCHDIR])
74  GNULIB_FCHOWNAT=0;             AC_SUBST([GNULIB_FCHOWNAT])
75  GNULIB_FDATASYNC=0;            AC_SUBST([GNULIB_FDATASYNC])
76  GNULIB_FSYNC=0;                AC_SUBST([GNULIB_FSYNC])
77  GNULIB_FTRUNCATE=0;            AC_SUBST([GNULIB_FTRUNCATE])
78  GNULIB_GETCWD=0;               AC_SUBST([GNULIB_GETCWD])
79  GNULIB_GETDOMAINNAME=0;        AC_SUBST([GNULIB_GETDOMAINNAME])
80  GNULIB_GETDTABLESIZE=0;        AC_SUBST([GNULIB_GETDTABLESIZE])
81  GNULIB_GETGROUPS=0;            AC_SUBST([GNULIB_GETGROUPS])
82  GNULIB_GETHOSTNAME=0;          AC_SUBST([GNULIB_GETHOSTNAME])
83  GNULIB_GETLOGIN=0;             AC_SUBST([GNULIB_GETLOGIN])
84  GNULIB_GETLOGIN_R=0;           AC_SUBST([GNULIB_GETLOGIN_R])
85  GNULIB_GETPAGESIZE=0;          AC_SUBST([GNULIB_GETPAGESIZE])
86  GNULIB_GETUSERSHELL=0;         AC_SUBST([GNULIB_GETUSERSHELL])
87  GNULIB_GROUP_MEMBER=0;         AC_SUBST([GNULIB_GROUP_MEMBER])
88  GNULIB_ISATTY=0;               AC_SUBST([GNULIB_ISATTY])
89  GNULIB_LCHOWN=0;               AC_SUBST([GNULIB_LCHOWN])
90  GNULIB_LINK=0;                 AC_SUBST([GNULIB_LINK])
91  GNULIB_LINKAT=0;               AC_SUBST([GNULIB_LINKAT])
92  GNULIB_LSEEK=0;                AC_SUBST([GNULIB_LSEEK])
93  GNULIB_PIPE=0;                 AC_SUBST([GNULIB_PIPE])
94  GNULIB_PIPE2=0;                AC_SUBST([GNULIB_PIPE2])
95  GNULIB_PREAD=0;                AC_SUBST([GNULIB_PREAD])
96  GNULIB_PWRITE=0;               AC_SUBST([GNULIB_PWRITE])
97  GNULIB_READ=0;                 AC_SUBST([GNULIB_READ])
98  GNULIB_READLINK=0;             AC_SUBST([GNULIB_READLINK])
99  GNULIB_READLINKAT=0;           AC_SUBST([GNULIB_READLINKAT])
100  GNULIB_RMDIR=0;                AC_SUBST([GNULIB_RMDIR])
101  GNULIB_SETHOSTNAME=0;          AC_SUBST([GNULIB_SETHOSTNAME])
102  GNULIB_SLEEP=0;                AC_SUBST([GNULIB_SLEEP])
103  GNULIB_SYMLINK=0;              AC_SUBST([GNULIB_SYMLINK])
104  GNULIB_SYMLINKAT=0;            AC_SUBST([GNULIB_SYMLINKAT])
105  GNULIB_TTYNAME_R=0;            AC_SUBST([GNULIB_TTYNAME_R])
106  GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
107  GNULIB_UNISTD_H_SIGPIPE=0;     AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
108  GNULIB_UNLINK=0;               AC_SUBST([GNULIB_UNLINK])
109  GNULIB_UNLINKAT=0;             AC_SUBST([GNULIB_UNLINKAT])
110  GNULIB_USLEEP=0;               AC_SUBST([GNULIB_USLEEP])
111  GNULIB_WRITE=0;                AC_SUBST([GNULIB_WRITE])
112  dnl Assume proper GNU behavior unless another module says otherwise.
113  HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
114  HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
115  HAVE_DUP3=1;            AC_SUBST([HAVE_DUP3])
116  HAVE_EUIDACCESS=1;      AC_SUBST([HAVE_EUIDACCESS])
117  HAVE_FACCESSAT=1;       AC_SUBST([HAVE_FACCESSAT])
118  HAVE_FCHDIR=1;          AC_SUBST([HAVE_FCHDIR])
119  HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
120  HAVE_FDATASYNC=1;       AC_SUBST([HAVE_FDATASYNC])
121  HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
122  HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
123  HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
124  HAVE_GETGROUPS=1;       AC_SUBST([HAVE_GETGROUPS])
125  HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
126  HAVE_GETLOGIN=1;        AC_SUBST([HAVE_GETLOGIN])
127  HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
128  HAVE_GROUP_MEMBER=1;    AC_SUBST([HAVE_GROUP_MEMBER])
129  HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
130  HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
131  HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
132  HAVE_PIPE=1;            AC_SUBST([HAVE_PIPE])
133  HAVE_PIPE2=1;           AC_SUBST([HAVE_PIPE2])
134  HAVE_PREAD=1;           AC_SUBST([HAVE_PREAD])
135  HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
136  HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
137  HAVE_READLINKAT=1;      AC_SUBST([HAVE_READLINKAT])
138  HAVE_SETHOSTNAME=1;     AC_SUBST([HAVE_SETHOSTNAME])
139  HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
140  HAVE_SYMLINK=1;         AC_SUBST([HAVE_SYMLINK])
141  HAVE_SYMLINKAT=1;       AC_SUBST([HAVE_SYMLINKAT])
142  HAVE_UNLINKAT=1;        AC_SUBST([HAVE_UNLINKAT])
143  HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
144  HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
145  HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
146  HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
147  HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
148  HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
149  HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
150  HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
151  HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
152  HAVE_DECL_TTYNAME_R=1;  AC_SUBST([HAVE_DECL_TTYNAME_R])
153  HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
154  HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
155  REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
156  REPLACE_CLOSE=0;        AC_SUBST([REPLACE_CLOSE])
157  REPLACE_DUP=0;          AC_SUBST([REPLACE_DUP])
158  REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
159  REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
160  REPLACE_FTRUNCATE=0;    AC_SUBST([REPLACE_FTRUNCATE])
161  REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
162  REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
163  REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
164  REPLACE_GETLOGIN_R=0;   AC_SUBST([REPLACE_GETLOGIN_R])
165  REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
166  REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
167  REPLACE_ISATTY=0;       AC_SUBST([REPLACE_ISATTY])
168  REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
169  REPLACE_LINK=0;         AC_SUBST([REPLACE_LINK])
170  REPLACE_LINKAT=0;       AC_SUBST([REPLACE_LINKAT])
171  REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
172  REPLACE_PREAD=0;        AC_SUBST([REPLACE_PREAD])
173  REPLACE_PWRITE=0;       AC_SUBST([REPLACE_PWRITE])
174  REPLACE_READ=0;         AC_SUBST([REPLACE_READ])
175  REPLACE_READLINK=0;     AC_SUBST([REPLACE_READLINK])
176  REPLACE_READLINKAT=0;   AC_SUBST([REPLACE_READLINKAT])
177  REPLACE_RMDIR=0;        AC_SUBST([REPLACE_RMDIR])
178  REPLACE_SLEEP=0;        AC_SUBST([REPLACE_SLEEP])
179  REPLACE_SYMLINK=0;      AC_SUBST([REPLACE_SYMLINK])
180  REPLACE_SYMLINKAT=0;    AC_SUBST([REPLACE_SYMLINKAT])
181  REPLACE_TTYNAME_R=0;    AC_SUBST([REPLACE_TTYNAME_R])
182  REPLACE_UNLINK=0;       AC_SUBST([REPLACE_UNLINK])
183  REPLACE_UNLINKAT=0;     AC_SUBST([REPLACE_UNLINKAT])
184  REPLACE_USLEEP=0;       AC_SUBST([REPLACE_USLEEP])
185  REPLACE_WRITE=0;        AC_SUBST([REPLACE_WRITE])
186  UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
187  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
188                           AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
189])
190