Improve cross-compilation guesses for native Windows.
[gnulib.git] / m4 / rmdir.m4
blob37237d2afe1403e11cffe30d13c25cbfb954b255
1 # rmdir.m4 serial 14
2 dnl Copyright (C) 2002, 2005, 2009-2017 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_FUNC_RMDIR],
9   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
10   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
11   dnl Detect cygwin 1.5.x bug.
12   AC_CHECK_HEADERS_ONCE([unistd.h])
13   AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works],
14     [mkdir conftest.dir
15      touch conftest.file
16      AC_RUN_IFELSE(
17        [AC_LANG_PROGRAM(
18          [[#include <stdio.h>
19            #include <errno.h>
20            #if HAVE_UNISTD_H
21            # include <unistd.h>
22            #else /* on Windows with MSVC */
23            # include <direct.h>
24            #endif
25 ]], [[int result = 0;
26       if (!rmdir ("conftest.file/"))
27         result |= 1;
28       else if (errno != ENOTDIR)
29         result |= 2;
30       if (!rmdir ("conftest.dir/./"))
31         result |= 4;
32       return result;
33     ]])],
34        [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no],
35        [case "$host_os" in
36                   # Guess yes on glibc systems.
37           *-gnu*) gl_cv_func_rmdir_works="guessing yes" ;;
38                   # Guess no on native Windows.
39           mingw*) gl_cv_func_rmdir_works="guessing no" ;;
40                   # If we don't know, assume the worst.
41           *)      gl_cv_func_rmdir_works="guessing no" ;;
42         esac
43        ])
44      rm -rf conftest.dir conftest.file])
45   case "$gl_cv_func_rmdir_works" in
46     *yes) ;;
47     *)
48       REPLACE_RMDIR=1
49       ;;
50   esac