xref: /netbsd-src/external/gpl2/xcvs/dist/m4/chdir-long.m4 (revision 75e57c5640ae4c43e46f3b9f431ed4fbffac2b5c)
1#serial 5
2
3# Use Gnulib's robust chdir function.
4# It can handle arbitrarily long directory names, which means
5# that when it is given the name of an existing directory, it
6# never fails with ENAMETOOLONG.
7# Arrange to compile chdir-long.c only on systems that define PATH_MAX.
8
9dnl Copyright (C) 2004, 2005 Free Software Foundation, Inc.
10dnl This file is free software; the Free Software Foundation
11dnl gives unlimited permission to copy and/or distribute it,
12dnl with or without modifications, as long as this notice is preserved.
13
14# Written by Jim Meyering.
15
16AC_DEFUN([gl_FUNC_CHDIR_LONG],
17[
18  AC_LIBSOURCES([chdir-long.c, chdir-long.h])
19  AC_CACHE_CHECK([whether this system has a definition of PATH_MAX],
20    gl_cv_have_path_max_definition,
21    [AC_EGREP_CPP([have_path_max_definition],
22                  [#include <unistd.h>
23#include <limits.h>
24#ifdef PATH_MAX
25have_path_max_definition
26#endif],
27    gl_cv_have_path_max_definition=yes,
28    gl_cv_have_path_max_definition=no)])
29
30  if test $gl_cv_have_path_max_definition; then
31    AC_LIBOBJ([chdir-long])
32    gl_PREREQ_CHDIR_LONG
33  fi
34])
35
36AC_DEFUN([gl_PREREQ_CHDIR_LONG],
37[
38  AM_STDBOOL_H
39  gl_FUNC_MEMPCPY
40  gl_FUNC_OPENAT
41  gl_FUNC_MEMRCHR
42])
43