Commit | Line | Data |
---|---|---|
5e8754f9 SDJ |
1 | # glob.m4 serial 14 |
2 | dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc. | |
6ec2e0f5 SDJ |
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 | # The glob module assumes you want GNU glob, with glob_pattern_p etc, | |
8 | # rather than vanilla POSIX glob. This means your code should | |
9 | # always include <glob.h> for the glob prototypes. | |
10 | ||
11 | AC_DEFUN([gl_GLOB], | |
5e8754f9 SDJ |
12 | [ GLOB_H= |
13 | AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h]) | |
6ec2e0f5 | 14 | |
5e8754f9 SDJ |
15 | if test -z "$GLOB_H"; then |
16 | AC_CACHE_CHECK([for GNU glob interface version 1], | |
17 | [gl_cv_gnu_glob_interface_version_1], | |
6ec2e0f5 SDJ |
18 | [ AC_COMPILE_IFELSE([AC_LANG_SOURCE( |
19 | [[#include <gnu-versions.h> | |
5e8754f9 SDJ |
20 | char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]])], |
21 | [gl_cv_gnu_glob_interface_version_1=yes], | |
22 | [gl_cv_gnu_glob_interface_version_1=no])]) | |
23 | ||
24 | if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then | |
25 | GLOB_H=glob.h | |
6ec2e0f5 | 26 | fi |
5e8754f9 | 27 | fi |
6ec2e0f5 | 28 | |
5e8754f9 SDJ |
29 | if test -z "$GLOB_H"; then |
30 | AC_CACHE_CHECK([whether glob lists broken symlinks], | |
31 | [gl_cv_glob_lists_symlinks], | |
32 | [ if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then | |
33 | gl_cv_glob_lists_symlinks=maybe | |
34 | else | |
35 | # If we can't make a symlink, then we cannot test this issue. Be | |
36 | # pessimistic about this. | |
37 | gl_cv_glob_lists_symlinks=no | |
6ec2e0f5 SDJ |
38 | fi |
39 | ||
5e8754f9 SDJ |
40 | if test $gl_cv_glob_lists_symlinks = maybe; then |
41 | AC_RUN_IFELSE([ | |
42 | AC_LANG_PROGRAM( | |
43 | [[#include <stddef.h> | |
44 | #include <glob.h>]], | |
45 | [[glob_t found; | |
46 | if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;]])], | |
47 | [gl_cv_glob_lists_symlinks=yes], | |
48 | [gl_cv_glob_lists_symlinks=no], [gl_cv_glob_lists_symlinks=no]) | |
49 | fi]) | |
6ec2e0f5 | 50 | |
5e8754f9 SDJ |
51 | if test $gl_cv_glob_lists_symlinks = no; then |
52 | GLOB_H=glob.h | |
6ec2e0f5 SDJ |
53 | fi |
54 | fi | |
55 | ||
5e8754f9 SDJ |
56 | rm -f conf$$-globtest |
57 | ||
58 | AC_SUBST([GLOB_H]) | |
59 | AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"]) | |
6ec2e0f5 SDJ |
60 | ]) |
61 | ||
5e8754f9 | 62 | # Prerequisites of lib/glob.*. |
6ec2e0f5 SDJ |
63 | AC_DEFUN([gl_PREREQ_GLOB], |
64 | [ | |
5e8754f9 SDJ |
65 | AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl |
66 | AC_REQUIRE([AC_C_RESTRICT])dnl | |
67 | AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])dnl | |
68 | AC_CHECK_HEADERS_ONCE([sys/cdefs.h unistd.h])dnl | |
69 | if test $ac_cv_header_sys_cdefs_h = yes; then | |
70 | HAVE_SYS_CDEFS_H=1 | |
71 | else | |
72 | HAVE_SYS_CDEFS_H=0 | |
73 | fi | |
74 | AC_SUBST([HAVE_SYS_CDEFS_H]) | |
75 | AC_CHECK_FUNCS_ONCE([fstatat getlogin_r getpwnam_r])dnl | |
6ec2e0f5 | 76 | ]) |