Simplify to validate the availability of scandir

This commit is contained in:
Akira TAGOH 2013-12-02 19:18:25 +09:00
parent 5152115349
commit d97fbbe9f5
1 changed files with 23 additions and 25 deletions

View File

@ -154,31 +154,29 @@ dnl AC_CHECK_FUNCS doesn't check for header files.
dnl posix_fadvise() may be not available in older libc. dnl posix_fadvise() may be not available in older libc.
AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0]) AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadivse' function.]) AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadivse' function.])
fc_saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
if test "$os_win32" = "no"; then if test "$os_win32" = "no"; then
AC_MSG_CHECKING([for scandir]) AC_MSG_CHECKING([for scandir])
AC_LINK_IFELSE([AC_LANG_SOURCE([[ fc_saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
AC_TRY_COMPILE([
#include <dirent.h> #include <dirent.h>
int comp(const struct dirent **, const struct dirent **); int main(void);
int comp(const struct dirent **a, const struct dirent **b) { return 0; } ], [
int main(void) { int (* comp) (const struct dirent **, const struct dirent **) = 0;
struct dirent **d; struct dirent **d;
return scandir(".", &d, 0, &comp) >= 0; return scandir(".", &d, 0, comp) >= 0;
} ], [
]])],[
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.]) AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.])
],[ ], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[ AC_TRY_COMPILE([
#include <dirent.h> #include <dirent.h>
int comp(const void *, const void *); int main(void);
int comp(const void *a, const void *b) { return 0; } ], [
int main(void) { int (* comp) (const void *, const void *) = 0;
struct dirent **d; struct dirent **d;
return scandir(".", &d, 0, &comp) >= 0; return scandir(".", &d, 0, comp) >= 0;
} ], [
]])],[
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)]) AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)])
],[ ],[