Commit | Line | Data |
---|---|---|
3243fffc MW |
1 | # serial 11 |
2 | ||
3 | # Copyright (C) 2001, 2003-2004, 2006, 2008-2014 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. | |
7 | ||
8 | # On some systems, mkdir ("foo/", 0700) fails because of the trailing slash. | |
9 | # On others, mkdir ("foo/./", 0700) mistakenly succeeds. | |
10 | # On such systems, arrange to use a wrapper function. | |
11 | AC_DEFUN([gl_FUNC_MKDIR], | |
12 | [dnl | |
13 | AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) | |
14 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | |
15 | AC_CHECK_HEADERS_ONCE([unistd.h]) | |
16 | AC_CACHE_CHECK([whether mkdir handles trailing slash], | |
17 | [gl_cv_func_mkdir_trailing_slash_works], | |
18 | [rm -rf conftest.dir | |
19 | AC_RUN_IFELSE([AC_LANG_PROGRAM([[ | |
20 | # include <sys/types.h> | |
21 | # include <sys/stat.h> | |
22 | ]], [return mkdir ("conftest.dir/", 0700);])], | |
23 | [gl_cv_func_mkdir_trailing_slash_works=yes], | |
24 | [gl_cv_func_mkdir_trailing_slash_works=no], | |
25 | [case "$host_os" in | |
26 | # Guess yes on glibc systems. | |
27 | *-gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; | |
28 | # If we don't know, assume the worst. | |
29 | *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;; | |
30 | esac | |
31 | ]) | |
32 | rm -rf conftest.dir | |
33 | ] | |
34 | ) | |
35 | case "$gl_cv_func_mkdir_trailing_slash_works" in | |
36 | *yes) ;; | |
37 | *) | |
38 | REPLACE_MKDIR=1 | |
39 | ;; | |
40 | esac | |
41 | ||
42 | AC_CACHE_CHECK([whether mkdir handles trailing dot], | |
43 | [gl_cv_func_mkdir_trailing_dot_works], | |
44 | [rm -rf conftest.dir | |
45 | AC_RUN_IFELSE([AC_LANG_PROGRAM([[ | |
46 | # include <sys/types.h> | |
47 | # include <sys/stat.h> | |
48 | ]], [return !mkdir ("conftest.dir/./", 0700);])], | |
49 | [gl_cv_func_mkdir_trailing_dot_works=yes], | |
50 | [gl_cv_func_mkdir_trailing_dot_works=no], | |
51 | [case "$host_os" in | |
52 | # Guess yes on glibc systems. | |
53 | *-gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; | |
54 | # If we don't know, assume the worst. | |
55 | *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; | |
56 | esac | |
57 | ]) | |
58 | rm -rf conftest.dir | |
59 | ] | |
60 | ) | |
61 | case "$gl_cv_func_mkdir_trailing_dot_works" in | |
62 | *yes) ;; | |
63 | *) | |
64 | REPLACE_MKDIR=1 | |
65 | AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly | |
66 | creates a directory given with a trailing dot component.]) | |
67 | ;; | |
68 | esac | |
69 | ]) |