absolute-header, include-next: Add support for MSVC compiler.
authorBruno Haible <bruno@clisp.org>
Sat, 10 Sep 2011 09:35:17 +0000 (11:35 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 10 Sep 2011 09:35:17 +0000 (11:35 +0200)
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Require
AC_CANONICAL_HOST. On native Windows, recognize also backslash as
directory separator in #line directives.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): On native Windows,
recognize also backslash as directory separator in #line directives.

ChangeLog
m4/absolute-header.m4
m4/include_next.m4

index 8fe4956..42da008 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-09-10  Michael Goffioul  <michael.goffioul@gmail.com>  (tiny change)
+           Bruno Haible  <bruno@clisp.org>
+
+       absolute-header, include-next: Add support for MSVC compiler.
+       * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Require
+       AC_CANONICAL_HOST. On native Windows, recognize also backslash as
+       directory separator in #line directives.
+       * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): On native Windows,
+       recognize also backslash as directory separator in #line directives.
+
 2011-09-08  Jim Meyering  <meyering@redhat.com>
 
        maint.mk: mark the post-release commit log with "maint: " prefix
index dba8dbf..b6ace93 100644 (file)
@@ -1,4 +1,4 @@
-# absolute-header.m4 serial 13
+# absolute-header.m4 serial 14
 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -53,6 +53,7 @@ m4_foreach_w([gl_HEADER_NAME], [$1],
 #   - it is silent.
 AC_DEFUN([gl_ABSOLUTE_HEADER_ONE],
 [
+  AC_REQUIRE([AC_CANONICAL_HOST])
   AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])])
   dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
   dnl that contain only a #include of other header files and no
@@ -65,15 +66,32 @@ AC_DEFUN([gl_ABSOLUTE_HEADER_ONE],
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
     *)    gl_absname_cpp="$ac_cpp" ;;
   esac
+changequote(,)
+  case "$host_os" in
+    mingw*)
+      dnl For the sake of native Windows compilers (excluding gcc),
+      dnl treat backslash as a directory separator, like /.
+      dnl Actually, these compilers use a double-backslash as
+      dnl directory separator, inside the
+      dnl   # line "filename"
+      dnl directives.
+      gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='/'
+      ;;
+  esac
+changequote([,])
+  gl_absolute_header_sed='\#'"${gl_dirsep_regex}"'$1#{
+      s#.*"\(.*'"${gl_dirsep_regex}"'$1\)".*#\1#
+      s#^/[^/]#//&#
+      p
+      q
+    }'
   dnl eval is necessary to expand gl_absname_cpp.
   dnl Ultrix and Pyramid sh refuse to redirect output of eval,
   dnl so use subshell.
   AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]),
 [`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-sed -n '\#/$1#{
-        s#.*"\(.*/$1\)".*#\1#
-        s#^/[^/]#//&#
-        p
-        q
-}'`])
+  sed -n "$gl_absolute_header_sed"`])
 ])
index ebf081a..14a1009 100644 (file)
@@ -1,4 +1,4 @@
-# include_next.m4 serial 20
+# include_next.m4 serial 21
 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -207,17 +207,34 @@ dnl until we can assume autoconf 2.64 or newer.
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
+changequote(,)
+               case "$host_os" in
+                 mingw*)
+                   dnl For the sake of native Windows compilers (excluding gcc),
+                   dnl treat backslash as a directory separator, like /.
+                   dnl Actually, these compilers use a double-backslash as
+                   dnl directory separator, inside the
+                   dnl   # line "filename"
+                   dnl directives.
+                   gl_dirsep_regex='[/\\]'
+                   ;;
+                 *)
+                   gl_dirsep_regex='/'
+                   ;;
+               esac
+changequote([,])
+               gl_absolute_header_sed='\#'"${gl_dirsep_regex}"']m4_defn([gl_HEADER_NAME])[#{
+                   s#.*"\(.*'"${gl_dirsep_regex}"']m4_defn([gl_HEADER_NAME])[\)".*#\1#
+                   s#^/[^/]#//&#
+                   p
+                   q
+                 }'
                dnl eval is necessary to expand gl_absname_cpp.
                dnl Ultrix and Pyramid sh refuse to redirect output of eval,
                dnl so use subshell.
                AS_VAR_SET(gl_next_header,
                  ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-                  sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
-                    s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'])
+                      sed -n "$gl_absolute_header_sed"`'"'])
           m4_if([$2], [check],
             [else
                AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])