* m4/timespec.m4, m4/strerror_r.m4, m4/mbstate_t.m4,
[findutils.git] / m4 / d-type.m4
blobbf94903fc5f394393747a79e3a9f6da5dcd0f94b
1 #serial 3
3 dnl From Jim Meyering.
4 dnl
5 dnl Check whether struct dirent has a member named d_type.
6 dnl
8 AC_DEFUN(jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE,
9   [AC_REQUIRE([AC_HEADER_DIRENT])dnl
10    AC_CACHE_CHECK([for d_type member in directory struct],
11                   jm_cv_struct_dirent_d_type,
12      [AC_TRY_LINK(dnl
13        [
14 #include <sys/types.h>
15 #ifdef HAVE_DIRENT_H
16 # include <dirent.h>
17 #else /* not HAVE_DIRENT_H */
18 # define dirent direct
19 # ifdef HAVE_SYS_NDIR_H
20 #  include <sys/ndir.h>
21 # endif /* HAVE_SYS_NDIR_H */
22 # ifdef HAVE_SYS_DIR_H
23 #  include <sys/dir.h>
24 # endif /* HAVE_SYS_DIR_H */
25 # ifdef HAVE_NDIR_H
26 #  include <ndir.h>
27 # endif /* HAVE_NDIR_H */
28 #endif /* HAVE_DIRENT_H */
29        ],
30        [struct dirent dp; dp.d_type = 0;],
32        jm_cv_struct_dirent_d_type=yes,
33        jm_cv_struct_dirent_d_type=no)
34      ]
35    )
36    if test $jm_cv_struct_dirent_d_type = yes; then
37      AC_DEFINE(D_TYPE_IN_DIRENT, 1,
38   [Define if there is a member named d_type in the struct describing
39    directory headers.])
40    fi
41   ]