• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# serial 13
2
3# Copyright (C) 2001, 2003, 2005, 2006, 2009 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
8dnl From Volker Borchert.
9dnl Determine whether rename works for source file names with a trailing slash.
10dnl The rename from SunOS 4.1.1_U1 doesn't.
11dnl
12dnl If it doesn't, then define RENAME_TRAILING_SLASH_BUG and arrange
13dnl to compile the wrapper function.
14dnl
15
16AC_DEFUN([gl_FUNC_RENAME],
17[
18  AC_REQUIRE([AC_CANONICAL_HOST])
19 AC_CACHE_CHECK([whether rename is broken with a trailing slash],
20  gl_cv_func_rename_trailing_slash_bug,
21  [
22    rm -rf conftest.d1 conftest.d2
23    mkdir conftest.d1 ||
24      AC_MSG_ERROR([cannot create temporary directory])
25    AC_TRY_RUN([
26#       include <stdio.h>
27#       include <stdlib.h>
28        int
29        main ()
30        {
31          exit (rename ("conftest.d1/", "conftest.d2") ? 1 : 0);
32        }
33      ],
34      gl_cv_func_rename_trailing_slash_bug=no,
35      gl_cv_func_rename_trailing_slash_bug=yes,
36      dnl When crosscompiling, assume rename is broken.
37      gl_cv_func_rename_trailing_slash_bug=yes)
38
39      rm -rf conftest.d1 conftest.d2
40  ])
41 AC_CACHE_CHECK([whether rename is broken when the destination exists],
42  gl_cv_func_rename_dest_exists_bug,
43  [
44    case "$host_os" in
45      mingw*) gl_cv_func_rename_dest_exists_bug=yes ;;
46      *) gl_cv_func_rename_dest_exists_bug=no ;;
47    esac
48  ])
49  if test $gl_cv_func_rename_trailing_slash_bug = yes ||
50     test $gl_cv_func_rename_dest_exists_bug = yes; then
51    AC_LIBOBJ([rename])
52    AC_DEFINE([rename], [rpl_rename],
53      [Define to rpl_rename if the replacement function should be used.])
54    if test $gl_cv_func_rename_trailing_slash_bug = yes; then
55      AC_DEFINE([RENAME_TRAILING_SLASH_BUG], [1],
56	[Define if rename does not work for source file names with a trailing
57	 slash, like the one from SunOS 4.1.1_U1.])
58    fi
59    if test $gl_cv_func_rename_dest_exists_bug = yes; then
60      AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
61	[Define if rename does not work when the destination file exists,
62	 as on Windows.])
63    fi
64    gl_PREREQ_RENAME
65  fi
66])
67
68# Prerequisites of lib/rename.c.
69AC_DEFUN([gl_PREREQ_RENAME], [:])
70