3 # Copyright (C) 2000-2001, 2005-2006, 2009-2020 Free Software Foundation, Inc.
4 # This file is free software; the Free Software Foundation
5 # gives unlimited permission to copy and/or distribute it,
6 # with or without modifications, as long as this notice is preserved.
8 # When rmdir fails because the specified directory is not empty, it sets
9 # errno to some value, usually ENOTEMPTY. However, on some AIX systems,
10 # ENOTEMPTY is mistakenly defined to be EEXIST. To work around this, and
11 # in general, to avoid depending on the use of any particular symbol, this
12 # test runs a test to determine the actual numeric value.
13 AC_DEFUN([gl_FUNC_RMDIR_NOTEMPTY],
15 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
16 AC_CHECK_HEADERS_ONCE([unistd.h])
17 AC_CACHE_CHECK([for rmdir-not-empty errno value],
18 [gl_cv_func_rmdir_errno_not_empty],
20 # Arrange for deletion of the temporary directory this test creates.
21 ac_clean_files="$ac_clean_files confdir2"
22 mkdir confdir2; : > confdir2/file
23 AC_RUN_IFELSE([AC_LANG_SOURCE([[
35 s = fopen ("confdir2/errno", "w");
36 fprintf (s, "%d\n", val);
41 [gl_cv_func_rmdir_errno_not_empty=`cat confdir2/errno`],
42 [gl_cv_func_rmdir_errno_not_empty='configure error in rmdir-errno.m4'],
44 # Guess ENOTEMPTY = 41 on native Windows.
45 mingw*) gl_cv_func_rmdir_errno_not_empty=ENOTEMPTY ;;
46 *) gl_cv_func_rmdir_errno_not_empty=ENOTEMPTY ;;
52 AC_DEFINE_UNQUOTED([RMDIR_ERRNO_NOT_EMPTY],
53 [$gl_cv_func_rmdir_errno_not_empty],
54 [the value to which errno is set when rmdir fails on a nonempty directory])