-# rmdir.m4 serial 7
-dnl Copyright (C) 2002, 2005, 2009-2010 Free Software Foundation, Inc.
+# rmdir.m4 serial 15
+dnl Copyright (C) 2002, 2005, 2009-2018 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.
AC_DEFUN([gl_FUNC_RMDIR],
[
- AC_REQUIRE([gl_AC_DOS])
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- dnl FIXME: simplify this module in 2010 if no one reports a missing rmdir
- AC_REPLACE_FUNCS([rmdir])
- if test $ac_cv_func_rmdir = no; then
- REPLACE_RMDIR=1
- # If someone lacks rmdir, make configure fail, and request
- # a bug report to inform us about it.
- if test x"$SKIP_RMDIR_CHECK" != xyes; then
- AC_MSG_FAILURE([Your system lacks the rmdir function.
- Please report this, along with the output of "uname -a", to the
- bug-coreutils@gnu.org mailing list. To continue past this point,
- rerun configure with SKIP_RMDIR_CHECK=yes.
- E.g., ./configure SKIP_RMDIR_CHECK=yes])
- fi
- else
- dnl Detect cygwin 1.5.x bug.
- AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works],
- [mkdir conftest.dir
- touch conftest.file
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stdio.h>
- #include <errno.h>
- #include <unistd.h>
-]], [[return !rmdir ("conftest.file/") || errno != ENOTDIR
- || !rmdir ("conftest.dir/./");]])],
- [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no],
- [gl_cv_func_rmdir_works="guessing no"])
- rm -rf conftest.dir conftest.file])
- if test x"$gl_cv_func_rmdir_works" != xyes; then
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ dnl Detect cygwin 1.5.x bug.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works],
+ [mkdir conftest.dir
+ touch conftest.file
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdio.h>
+ #include <errno.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+]], [[int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+ ]])],
+ [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_rmdir_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_rmdir_works="guessing no" ;;
+ esac
+ ])
+ rm -rf conftest.dir conftest.file])
+ case "$gl_cv_func_rmdir_works" in
+ *yes) ;;
+ *)
REPLACE_RMDIR=1
- AC_LIBOBJ([rmdir])
- fi
- fi
+ ;;
+ esac
])