summaryrefslogtreecommitdiff
path: root/m4/glob.m4
diff options
context:
space:
mode:
authorDerek R. Price <derek@ximbiot.com>2005-07-14 14:45:40 +0000
committerDerek R. Price <derek@ximbiot.com>2005-07-14 14:45:40 +0000
commit719432cc36e142b881730d3eb27da3d87cfa490a (patch)
tree2e8bc20d97cf3470d2be1a42f723dfc9eb52e109 /m4/glob.m4
parent3074e4cfad2286cf5c5e4aafa7fb6aecc576e6eb (diff)
downloadgnulib-719432cc36e142b881730d3eb27da3d87cfa490a.tar.gz
* m4/glob.m4 (gl_GLOB): Cache glob interface check result. Add check for
glob symlink bug.
Diffstat (limited to 'm4/glob.m4')
-rw-r--r--m4/glob.m440
1 files changed, 38 insertions, 2 deletions
diff --git a/m4/glob.m4 b/m4/glob.m4
index 8ea213dd70..71d0c0160f 100644
--- a/m4/glob.m4
+++ b/m4/glob.m4
@@ -25,12 +25,48 @@ AC_DEFUN([gl_GLOB],
AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h])
if test -z "$GLOB_H"; then
- AC_COMPILE_IFELSE(
+ AC_CACHE_CHECK([for GNU glob interface version 1],
+ [gl_cv_gnu_glob_interface_version_1],
+[ AC_COMPILE_IFELSE(
[[#include <gnu-versions.h>
char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]],
- [], [GLOB_H=glob.h])
+ [gl_cv_gnu_glob_interface_version_1=yes],
+ [gl_cv_gnu_glob_interface_version_1=no])])
+
+ if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then
+ GLOB_H=glob.h
+ fi
fi
+ if test -z "$GLOB_H"; then
+ AC_CACHE_CHECK([whether glob lists broken symlinks],
+ [gl_cv_glob_lists_symlinks],
+[ if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then
+ gl_cv_glob_lists_symlinks=maybe
+ else
+ # If we can't make a symlink, then we cannot test this issue. Be
+ # pessimistic about this.
+ gl_cv_glob_lists_symlinks=no
+ fi
+
+ if test $gl_cv_glob_lists_symlinks = maybe; then
+ AC_RUN_IFELSE(
+AC_LANG_PROGRAM(
+[[#include <stddef.h>
+#include <glob.h>]],
+[[glob_t found;
+if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;]]),
+ [gl_cv_glob_lists_symlinks=yes],
+ [gl_cv_glob_lists_symlinks=no], [gl_cv_glob_lists_symlinks=no])
+ fi])
+
+ if test $gl_cv_glob_lists_symlinks = no; then
+ GLOB_H=glob.h
+ fi
+ fi
+
+ rm -f conf$$-globtest
+
if test -n "$GLOB_H"; then
gl_GLOB_SUBSTITUTE
fi