canonicalize-lgpl: adjust clients to use correct header
[gnulib.git] / m4 / rename.m4
index fa7ae8d..2e43a87 100644 (file)
@@ -1,4 +1,4 @@
-# serial 11
+# serial 15
 
 # Copyright (C) 2001, 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -15,13 +15,15 @@ dnl
 
 AC_DEFUN([gl_FUNC_RENAME],
 [
- AC_CACHE_CHECK([whether rename is broken],
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_CACHE_CHECK([whether rename is broken with a trailing slash],
   gl_cv_func_rename_trailing_slash_bug,
   [
     rm -rf conftest.d1 conftest.d2
     mkdir conftest.d1 ||
       AC_MSG_ERROR([cannot create temporary directory])
-    AC_TRY_RUN([
+    AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #       include <stdio.h>
 #       include <stdlib.h>
         int
@@ -29,21 +31,36 @@ AC_DEFUN([gl_FUNC_RENAME],
         {
           exit (rename ("conftest.d1/", "conftest.d2") ? 1 : 0);
         }
-      ],
-      gl_cv_func_rename_trailing_slash_bug=no,
-      gl_cv_func_rename_trailing_slash_bug=yes,
+      ]])],
+      [gl_cv_func_rename_trailing_slash_bug=no],
+      [gl_cv_func_rename_trailing_slash_bug=yes],
       dnl When crosscompiling, assume rename is broken.
-      gl_cv_func_rename_trailing_slash_bug=yes)
+      [gl_cv_func_rename_trailing_slash_bug=yes])
 
       rm -rf conftest.d1 conftest.d2
   ])
-  if test $gl_cv_func_rename_trailing_slash_bug = yes; then
+ AC_CACHE_CHECK([whether rename is broken when the destination exists],
+  gl_cv_func_rename_dest_exists_bug,
+  [
+    case "$host_os" in
+      mingw*) gl_cv_func_rename_dest_exists_bug=yes ;;
+      *) gl_cv_func_rename_dest_exists_bug=no ;;
+    esac
+  ])
+  if test $gl_cv_func_rename_trailing_slash_bug = yes ||
+     test $gl_cv_func_rename_dest_exists_bug = yes; then
     AC_LIBOBJ([rename])
-    AC_DEFINE([rename], [rpl_rename],
-      [Define to rpl_rename if the replacement function should be used.])
-    AC_DEFINE([RENAME_TRAILING_SLASH_BUG], [1],
-      [Define if rename does not work for source file names with a trailing
-       slash, like the one from SunOS 4.1.1_U1.])
+    REPLACE_RENAME=1
+    if test $gl_cv_func_rename_trailing_slash_bug = yes; then
+      AC_DEFINE([RENAME_TRAILING_SLASH_BUG], [1],
+       [Define if rename does not work for source file names with a trailing
+        slash, like the one from SunOS 4.1.1_U1.])
+    fi
+    if test $gl_cv_func_rename_dest_exists_bug = yes; then
+      AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
+       [Define if rename does not work when the destination file exists,
+        as on Windows.])
+    fi
     gl_PREREQ_RENAME
   fi
 ])