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,38 +154,36 @@ dnl AC_CHECK_FUNCS doesn't check for header files.
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_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
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>
int comp(const struct dirent **, const struct dirent **);
int comp(const struct dirent **a, const struct dirent **b) { return 0; }
int main(void) {
struct dirent **d;
return scandir(".", &d, 0, &comp) >= 0;
}
]])],[
int main(void);
], [
int (* comp) (const struct dirent **, const struct dirent **) = 0;
struct dirent **d;
return scandir(".", &d, 0, comp) >= 0;
], [
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.])
], [
AC_TRY_COMPILE([
#include <dirent.h>
int main(void);
], [
int (* comp) (const void *, const void *) = 0;
struct dirent **d;
return scandir(".", &d, 0, comp) >= 0;
], [
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.])
AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)])
],[
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <dirent.h>
int comp(const void *, const void *);
int comp(const void *a, const void *b) { return 0; }
int main(void) {
struct dirent **d;
return scandir(".", &d, 0, &comp) >= 0;
}
]])],[
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_MSG_ERROR([
AC_MSG_ERROR([
*** No scandir function available.])
])
])
])
fi
CFLAGS="$fc_saved_CFLAGS"