# HG changeset patch # User Derek R. Price # Date 1121352340 0 # Node ID f84b6f02ec364cd2cea0dd82ef00379ffbf44de6 # Parent d2208bf40bf81b6afad795bc64603b1246002cf3 * m4/glob.m4 (gl_GLOB): Cache glob interface check result. Add check for glob symlink bug. diff --git a/m4/ChangeLog b/m4/ChangeLog --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,8 @@ +2005-07-14 Derek Price + + * glob.m4 (gl_GLOB): Cache glob interface check result. Add check for + glob symlink bug. + 2005-07-10 Bruno Haible * size_max.m4 (gl_SIZE_MAX): Cast ~(size_t)0 back to size_t. diff --git a/m4/glob.m4 b/m4/glob.m4 --- a/m4/glob.m4 +++ b/m4/glob.m4 @@ -25,12 +25,48 @@ 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 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 +#include ]], +[[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