From d97fbbe9f59965167fbc0bdc49f983c2bc96d521 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Mon, 2 Dec 2013 19:18:25 +0900 Subject: [PATCH] Simplify to validate the availability of scandir --- configure.ac | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/configure.ac b/configure.ac index fed8b2a..1a1b534 100644 --- a/configure.ac +++ b/configure.ac @@ -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 - 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 + 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 - 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"