[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, branch-1-10, updated. v1.10.2-28-g4272758,
Ralf Wildenhues <=