automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, branch-1-10, updated. v1.10


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, branch-1-10, updated. v1.10.2-28-g4272758
Date: Tue, 03 Mar 2009 21:07:33 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=4272758c3d0a671235ff9fb5447efd59abbc60f7

The branch, branch-1-10 has been updated
       via  4272758c3d0a671235ff9fb5447efd59abbc60f7 (commit)
      from  5b855aee5c392a6d4f503ce81368487aa85381f6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4272758c3d0a671235ff9fb5447efd59abbc60f7
Author: Ralf Wildenhues <address@hidden>
Date:   Tue Mar 3 21:10:43 2009 +0100

    Fix w32 path handling in the `compile' script.
    
    * lib/compile: Handle colons and backslashes in win32 paths.
    * tests/compile2.test: New test.
    * tests/Makefile.am: Update.
    Report and initial patch by Peter Rosin.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog           |    9 +++++
 lib/compile         |   11 +++---
 tests/Makefile.am   |    1 +
 tests/Makefile.in   |    1 +
 tests/compile2.test |   85 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 102 insertions(+), 5 deletions(-)
 create mode 100755 tests/compile2.test

diff --git a/ChangeLog b/ChangeLog
index fe0ed4e..63fe1af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-03-03  Ralf Wildenhues  <address@hidden>
+           Peter Rosin  <address@hidden>
+
+       Fix w32 path handling in the `compile' script.
+       * lib/compile: Handle colons and backslashes in win32 paths.
+       * tests/compile2.test: New test.
+       * tests/Makefile.am: Update.
+       Report and initial patch by Peter Rosin.
+
 2009-03-01  Ralf Wildenhues  <address@hidden>
 
        Fix recursive html and install-* doc rules for BSD make.
diff --git a/lib/compile b/lib/compile
index 1b1d232..61e0321 100755
--- a/lib/compile
+++ b/lib/compile
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2005-05-14.22
+scriptversion=2009-03-03.21
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
+# Foundation, Inc.
 # Written by Tom Tromey <address@hidden>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -103,13 +104,13 @@ if test -z "$ofile" || test -z "$cfile"; then
 fi
 
 # Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
 while true; do
   if mkdir "$lockdir" >/dev/null 2>&1; then
     break
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6d8bd2b..3f55ea9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -115,6 +115,7 @@ comment8.test \
 comment9.test \
 commen10.test \
 compile.test \
+compile2.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 305d465..ca68641 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -249,6 +249,7 @@ comment8.test \
 comment9.test \
 commen10.test \
 compile.test \
+compile2.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
diff --git a/tests/compile2.test b/tests/compile2.test
new file mode 100755
index 0000000..9f5d7b3
--- /dev/null
+++ b/tests/compile2.test
@@ -0,0 +1,85 @@
+#! /bin/sh
+# Copyright (C) 2009  Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure `compile' deals correctly with w32 style paths.
+
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/compile" .
+
+cat >mycc <<'END'
+source_seen=no
+for arg
+do
+  test "X$arg" = X-o && exit 1
+  test "X$arg" = "X$amtest_source" && source_seen=yes
+done
+if test "$source_seen" != yes; then
+  echo "$0: no source file seen" >&2
+  exit 1
+fi
+if test ! -f "$amtest_source"; then
+  echo "$0: $amtest_source not readable" >&2
+  exit 1
+fi
+if test ! -d "$amtest_lock"; then
+  echo "$0: no lockdir $amtest_lock" >&2
+  exit 1
+fi
+touch "$amtest_obj"
+END
+
+chmod +x ./mycc
+
+# In case this test runs on a system with backslash directory separators:
+mkdir libltdl libltdl/libltdl
+
+# Backslashes in the input and the output name should be accepted.
+# Since this test might run on non-w32 systems, we need to be careful not
+# to use any backslash sequences which might be interpreted by `echo'.
+amtest_source='libltdl\libltdl\slist.c'
+amtest_object='libtldl\libltdl\libltdl_libltdl_la-slist.obj'
+amtest_obj='slist.o'
+amtest_lock='slist_o.d'
+export amtest_source amtest_object amtest_obj amtest_lock
+
+: > "$amtest_source"
+./compile ./mycc -c "$amtest_source" -o "$amtest_object"
+test -f "$amtest_object"
+
+
+# Absolute w32 paths should be accepted.
+# Do not actually run this test on anything that could be w32.
+test -d "C:\\" && exit 77
+# This test is taken from Autoconf's _AS_PATH_SEPARATOR_PREPARE.
+(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+  (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+    exit 77
+}
+
+amtest_source='C:\libltdl\libltdl\slist.c'
+amtest_object='C:\libtldl\libltdl\libltdl_libltdl_la-slist.obj'
+amtest_obj='slist.o'
+amtest_lock='slist_o.d'
+export amtest_source amtest_object amtest_obj amtest_lock
+
+: > "$amtest_source"
+./compile ./mycc -c "$amtest_source" -o "$amtest_object"
+test -f "$amtest_object"
+
+:


hooks/post-receive
--
GNU Automake




reply via email to

[Prev in Thread] Current Thread [Next in Thread]