X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fglob.m4;h=5aaa6b4434a40ac993b5693394b00345278cf98a;hb=4752c7c4aaba4eca621082dc8042646f6efd71ec;hp=8ea213dd7051110ee228bc129bd6d5c5191ade35;hpb=3d19425307a2325ba751f42a7226c2df068c48aa;p=gnulib.git diff --git a/m4/glob.m4 b/m4/glob.m4 index 8ea213dd7..5aaa6b443 100644 --- a/m4/glob.m4 +++ b/m4/glob.m4 @@ -1,57 +1,76 @@ -# glob.m4 serial 1 -dnl Copyright (C) 2005 Free Software Foundation, Inc. +# glob.m4 serial 14 +dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # The glob module assumes you want GNU glob, with glob_pattern_p etc, -# rather than vanilla POSIX glob. This means your your code should +# rather than vanilla POSIX glob. This means your code should # always include for the glob prototypes. -AC_DEFUN([gl_GLOB_SUBSTITUTE], -[ - gl_PREREQ_GLOB - - GLOB_H=glob.h - AC_LIBOBJ([glob]) - AC_DEFINE([GLOB_PREFIX], [[rpl_]], - [Define to rpl_ if the glob replacement functions and variables - should be used.]) - AC_SUBST([GLOB_H]) -]) - AC_DEFUN([gl_GLOB], [ GLOB_H= 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([AC_LANG_SOURCE( [[#include -char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]], - [], [GLOB_H=glob.h]) +char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]])], + [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 -n "$GLOB_H"; then - gl_GLOB_SUBSTITUTE + 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 + + AC_SUBST([GLOB_H]) + AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"]) ]) # Prerequisites of lib/glob.*. AC_DEFUN([gl_PREREQ_GLOB], -[ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl - AC_REQUIRE([AC_HEADER_DIRENT])dnl +[ + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl + AC_REQUIRE([AC_C_RESTRICT])dnl + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])dnl AC_CHECK_HEADERS_ONCE([sys/cdefs.h unistd.h])dnl - AC_CHECK_FUNCS_ONCE([getlogin_r getpwnam_r])dnl - AC_CHECK_HEADERS([sys/cdefs.h], [SYS_CDEFS_H=yes], [SYS_CDEFS_H=no]) - - dnl Note the reversal of the common HAVE_SYS_CDEFS_H idiom below. In this - dnl way, #ifndef _SYS_CDEFS_H may be used to include both when - dnl it has been checked for via the GNULIB configure test and found and when - dnl it has not been checked for, which we can presume means that the - dnl GNULIB shares with GLIBC is being included as a system header and not as - dnl part of GNULIB, in which case may be assumed. - if test $SYS_CDEFS_H = no; then - AC_DEFINE(_SYS_CDEFS_H, 1, - [Define to `1' if is *not* available on this system.]) + if test $ac_cv_header_sys_cdefs_h = yes; then + HAVE_SYS_CDEFS_H=1 + else + HAVE_SYS_CDEFS_H=0 fi - :]) + AC_SUBST([HAVE_SYS_CDEFS_H]) + AC_CHECK_FUNCS_ONCE([fstatat getlogin_r getpwnam_r])dnl +])