summaryrefslogtreecommitdiff
path: root/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
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')
-rw-r--r--m4/ChangeLog5
-rw-r--r--m4/glob.m440
2 files changed, 43 insertions, 2 deletions
diff --git a/m4/ChangeLog b/m4/ChangeLog
index de300f00ae..4b1b8bc47d 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-14 Derek Price <derek@ximbiot.com>
+
+ * glob.m4 (gl_GLOB): Cache glob interface check result. Add check for
+ glob symlink bug.
+
2005-07-10 Bruno Haible <bruno@clisp.org>
* size_max.m4 (gl_SIZE_MAX): Cast ~(size_t)0 back to size_t.
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