Use an all-permissive copyright notice, recommended by RMS.
[gnulib.git] / m4 / getcwd.m4
1 # getcwd.m4 - check for working getcwd that is compatible with glibc
2
3 # Copyright (C) 2001, 2003, 2004 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 # Written by Paul Eggert.
9
10 AC_DEFUN([gl_FUNC_GETCWD_NULL],
11   [
12    AC_CHECK_HEADERS_ONCE(unistd.h)
13    AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
14      [gl_cv_func_getcwd_null],
15      [AC_TRY_RUN(
16         [
17 #        include <stdlib.h>
18 #        ifdef HAVE_UNISTD_H
19 #         include <unistd.h>
20 #        endif
21 #        ifndef getcwd
22          char *getcwd ();
23 #        endif
24          int
25          main ()
26          {
27            if (chdir ("/") != 0)
28              exit (1);
29            else
30              {
31                char *f = getcwd (NULL, 0);
32                exit (! (f && f[0] == '/' && !f[1]));
33              }
34          }],
35         [gl_cv_func_getcwd_null=yes],
36         [gl_cv_func_getcwd_null=no],
37         [gl_cv_func_getcwd_null=no])])
38 ])
39
40 AC_DEFUN([gl_FUNC_GETCWD],
41 [
42   AC_REQUIRE([gl_FUNC_GETCWD_NULL])
43
44   case $gl_cv_func_getcwd_null in
45   yes) gl_FUNC_GETCWD_PATH_MAX;;
46   esac
47
48   case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max in
49   yes,yes) ;;
50   *)
51     AC_LIBOBJ([getcwd])
52     AC_DEFINE([__GETCWD_PREFIX], [[rpl_]],
53       [Define to rpl_ if the getcwd replacement function should be used.])
54     gl_PREREQ_GETCWD;;
55   esac
56 ])
57
58 # Prerequisites of lib/getcwd.c.
59 AC_DEFUN([gl_PREREQ_GETCWD],
60 [
61   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
62   AC_REQUIRE([AC_HEADER_DIRENT])
63   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
64   AC_CHECK_HEADERS_ONCE(fcntl.h)
65   :
66 ])