Home | History | Annotate | Line # | Download | only in m4
unistd_h.m4 revision 1.1.1.1
      1 # unistd_h.m4 serial 80
      2 dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
      3 dnl This file is free software; the Free Software Foundation
      4 dnl gives unlimited permission to copy and/or distribute it,
      5 dnl with or without modifications, as long as this notice is preserved.
      6 
      7 dnl Written by Simon Josefsson, Bruno Haible.
      8 
      9 AC_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 __CYGWIN__
     41 #  include <io.h>
     42 # endif
     43 #endif
     44     ]], [access chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir
     45     fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize
     46     getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass
     47     getusershell setusershell endusershell
     48     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
     49     readlink readlinkat rmdir sethostname sleep symlink symlinkat
     50     truncate ttyname_r unlink unlinkat usleep])
     51 
     52   AC_REQUIRE([AC_C_RESTRICT])
     53 ])
     54 
     55 AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
     56 [
     57   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
     58   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
     59   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
     60   dnl Define it also as a C macro, for the benefit of the unit tests.
     61   gl_MODULE_INDICATOR_FOR_TESTS([$1])
     62 ])
     63 
     64 AC_DEFUN([gl_UNISTD_H_DEFAULTS],
     65 [
     66   GNULIB_ACCESS=0;               AC_SUBST([GNULIB_ACCESS])
     67   GNULIB_CHDIR=0;                AC_SUBST([GNULIB_CHDIR])
     68   GNULIB_CHOWN=0;                AC_SUBST([GNULIB_CHOWN])
     69   GNULIB_CLOSE=0;                AC_SUBST([GNULIB_CLOSE])
     70   GNULIB_COPY_FILE_RANGE=0;      AC_SUBST([GNULIB_COPY_FILE_RANGE])
     71   GNULIB_DUP=0;                  AC_SUBST([GNULIB_DUP])
     72   GNULIB_DUP2=0;                 AC_SUBST([GNULIB_DUP2])
     73   GNULIB_DUP3=0;                 AC_SUBST([GNULIB_DUP3])
     74   GNULIB_ENVIRON=0;              AC_SUBST([GNULIB_ENVIRON])
     75   GNULIB_EUIDACCESS=0;           AC_SUBST([GNULIB_EUIDACCESS])
     76   GNULIB_FACCESSAT=0;            AC_SUBST([GNULIB_FACCESSAT])
     77   GNULIB_FCHDIR=0;               AC_SUBST([GNULIB_FCHDIR])
     78   GNULIB_FCHOWNAT=0;             AC_SUBST([GNULIB_FCHOWNAT])
     79   GNULIB_FDATASYNC=0;            AC_SUBST([GNULIB_FDATASYNC])
     80   GNULIB_FSYNC=0;                AC_SUBST([GNULIB_FSYNC])
     81   GNULIB_FTRUNCATE=0;            AC_SUBST([GNULIB_FTRUNCATE])
     82   GNULIB_GETCWD=0;               AC_SUBST([GNULIB_GETCWD])
     83   GNULIB_GETDOMAINNAME=0;        AC_SUBST([GNULIB_GETDOMAINNAME])
     84   GNULIB_GETDTABLESIZE=0;        AC_SUBST([GNULIB_GETDTABLESIZE])
     85   GNULIB_GETENTROPY=0;           AC_SUBST([GNULIB_GETENTROPY])
     86   GNULIB_GETGROUPS=0;            AC_SUBST([GNULIB_GETGROUPS])
     87   GNULIB_GETHOSTNAME=0;          AC_SUBST([GNULIB_GETHOSTNAME])
     88   GNULIB_GETLOGIN=0;             AC_SUBST([GNULIB_GETLOGIN])
     89   GNULIB_GETLOGIN_R=0;           AC_SUBST([GNULIB_GETLOGIN_R])
     90   GNULIB_GETOPT_POSIX=0;         AC_SUBST([GNULIB_GETOPT_POSIX])
     91   GNULIB_GETPAGESIZE=0;          AC_SUBST([GNULIB_GETPAGESIZE])
     92   GNULIB_GETPASS=0;              AC_SUBST([GNULIB_GETPASS])
     93   GNULIB_GETUSERSHELL=0;         AC_SUBST([GNULIB_GETUSERSHELL])
     94   GNULIB_GROUP_MEMBER=0;         AC_SUBST([GNULIB_GROUP_MEMBER])
     95   GNULIB_ISATTY=0;               AC_SUBST([GNULIB_ISATTY])
     96   GNULIB_LCHOWN=0;               AC_SUBST([GNULIB_LCHOWN])
     97   GNULIB_LINK=0;                 AC_SUBST([GNULIB_LINK])
     98   GNULIB_LINKAT=0;               AC_SUBST([GNULIB_LINKAT])
     99   GNULIB_LSEEK=0;                AC_SUBST([GNULIB_LSEEK])
    100   GNULIB_PIPE=0;                 AC_SUBST([GNULIB_PIPE])
    101   GNULIB_PIPE2=0;                AC_SUBST([GNULIB_PIPE2])
    102   GNULIB_PREAD=0;                AC_SUBST([GNULIB_PREAD])
    103   GNULIB_PWRITE=0;               AC_SUBST([GNULIB_PWRITE])
    104   GNULIB_READ=0;                 AC_SUBST([GNULIB_READ])
    105   GNULIB_READLINK=0;             AC_SUBST([GNULIB_READLINK])
    106   GNULIB_READLINKAT=0;           AC_SUBST([GNULIB_READLINKAT])
    107   GNULIB_RMDIR=0;                AC_SUBST([GNULIB_RMDIR])
    108   GNULIB_SETHOSTNAME=0;          AC_SUBST([GNULIB_SETHOSTNAME])
    109   GNULIB_SLEEP=0;                AC_SUBST([GNULIB_SLEEP])
    110   GNULIB_SYMLINK=0;              AC_SUBST([GNULIB_SYMLINK])
    111   GNULIB_SYMLINKAT=0;            AC_SUBST([GNULIB_SYMLINKAT])
    112   GNULIB_TRUNCATE=0;             AC_SUBST([GNULIB_TRUNCATE])
    113   GNULIB_TTYNAME_R=0;            AC_SUBST([GNULIB_TTYNAME_R])
    114   GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
    115   GNULIB_UNISTD_H_SIGPIPE=0;     AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
    116   GNULIB_UNLINK=0;               AC_SUBST([GNULIB_UNLINK])
    117   GNULIB_UNLINKAT=0;             AC_SUBST([GNULIB_UNLINKAT])
    118   GNULIB_USLEEP=0;               AC_SUBST([GNULIB_USLEEP])
    119   GNULIB_WRITE=0;                AC_SUBST([GNULIB_WRITE])
    120   dnl Assume proper GNU behavior unless another module says otherwise.
    121   HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
    122   HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE])
    123   HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
    124   HAVE_DUP3=1;            AC_SUBST([HAVE_DUP3])
    125   HAVE_EUIDACCESS=1;      AC_SUBST([HAVE_EUIDACCESS])
    126   HAVE_FACCESSAT=1;       AC_SUBST([HAVE_FACCESSAT])
    127   HAVE_FCHDIR=1;          AC_SUBST([HAVE_FCHDIR])
    128   HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
    129   HAVE_FDATASYNC=1;       AC_SUBST([HAVE_FDATASYNC])
    130   HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
    131   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
    132   HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
    133   HAVE_GETENTROPY=1;      AC_SUBST([HAVE_GETENTROPY])
    134   HAVE_GETGROUPS=1;       AC_SUBST([HAVE_GETGROUPS])
    135   HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
    136   HAVE_GETLOGIN=1;        AC_SUBST([HAVE_GETLOGIN])
    137   HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
    138   HAVE_GETPASS=1;         AC_SUBST([HAVE_GETPASS])
    139   HAVE_GROUP_MEMBER=1;    AC_SUBST([HAVE_GROUP_MEMBER])
    140   HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
    141   HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
    142   HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
    143   HAVE_PIPE=1;            AC_SUBST([HAVE_PIPE])
    144   HAVE_PIPE2=1;           AC_SUBST([HAVE_PIPE2])
    145   HAVE_PREAD=1;           AC_SUBST([HAVE_PREAD])
    146   HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
    147   HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
    148   HAVE_READLINKAT=1;      AC_SUBST([HAVE_READLINKAT])
    149   HAVE_SETHOSTNAME=1;     AC_SUBST([HAVE_SETHOSTNAME])
    150   HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
    151   HAVE_SYMLINK=1;         AC_SUBST([HAVE_SYMLINK])
    152   HAVE_SYMLINKAT=1;       AC_SUBST([HAVE_SYMLINKAT])
    153   HAVE_UNLINKAT=1;        AC_SUBST([HAVE_UNLINKAT])
    154   HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
    155   HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
    156   HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
    157   HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
    158   HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
    159   HAVE_DECL_GETLOGIN=1;   AC_SUBST([HAVE_DECL_GETLOGIN])
    160   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
    161   HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
    162   HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
    163   HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
    164   HAVE_DECL_TRUNCATE=1;   AC_SUBST([HAVE_DECL_TRUNCATE])
    165   HAVE_DECL_TTYNAME_R=1;  AC_SUBST([HAVE_DECL_TTYNAME_R])
    166   HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
    167   HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
    168   REPLACE_ACCESS=0;       AC_SUBST([REPLACE_ACCESS])
    169   REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
    170   REPLACE_CLOSE=0;        AC_SUBST([REPLACE_CLOSE])
    171   REPLACE_DUP=0;          AC_SUBST([REPLACE_DUP])
    172   REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
    173   REPLACE_FACCESSAT=0;    AC_SUBST([REPLACE_FACCESSAT])
    174   REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
    175   REPLACE_FTRUNCATE=0;    AC_SUBST([REPLACE_FTRUNCATE])
    176   REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
    177   REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
    178   REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
    179   REPLACE_GETLOGIN_R=0;   AC_SUBST([REPLACE_GETLOGIN_R])
    180   REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
    181   REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
    182   REPLACE_GETPASS=0;      AC_SUBST([REPLACE_GETPASS])
    183   REPLACE_ISATTY=0;       AC_SUBST([REPLACE_ISATTY])
    184   REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
    185   REPLACE_LINK=0;         AC_SUBST([REPLACE_LINK])
    186   REPLACE_LINKAT=0;       AC_SUBST([REPLACE_LINKAT])
    187   REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
    188   REPLACE_PREAD=0;        AC_SUBST([REPLACE_PREAD])
    189   REPLACE_PWRITE=0;       AC_SUBST([REPLACE_PWRITE])
    190   REPLACE_READ=0;         AC_SUBST([REPLACE_READ])
    191   REPLACE_READLINK=0;     AC_SUBST([REPLACE_READLINK])
    192   REPLACE_READLINKAT=0;   AC_SUBST([REPLACE_READLINKAT])
    193   REPLACE_RMDIR=0;        AC_SUBST([REPLACE_RMDIR])
    194   REPLACE_SLEEP=0;        AC_SUBST([REPLACE_SLEEP])
    195   REPLACE_SYMLINK=0;      AC_SUBST([REPLACE_SYMLINK])
    196   REPLACE_SYMLINKAT=0;    AC_SUBST([REPLACE_SYMLINKAT])
    197   REPLACE_TRUNCATE=0;     AC_SUBST([REPLACE_TRUNCATE])
    198   REPLACE_TTYNAME_R=0;    AC_SUBST([REPLACE_TTYNAME_R])
    199   REPLACE_UNLINK=0;       AC_SUBST([REPLACE_UNLINK])
    200   REPLACE_UNLINKAT=0;     AC_SUBST([REPLACE_UNLINKAT])
    201   REPLACE_USLEEP=0;       AC_SUBST([REPLACE_USLEEP])
    202   REPLACE_WRITE=0;        AC_SUBST([REPLACE_WRITE])
    203   UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H])
    204   UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
    205   UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
    206                            AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
    207 ])
    208