summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2006-03-08 20:15:08 +0000
committerPaul Smith <psmith@gnu.org>2006-03-08 20:15:08 +0000
commitafc4906acaeb7191e4ec085d7be4ca5b036b821d (patch)
tree1772315a4dfcbe1d8f8470b2ddcc0f24900bbf96
parent8af9389f87e25aea721071516cf00ed13360ab9c (diff)
downloadgunmake-afc4906acaeb7191e4ec085d7be4ca5b036b821d.tar.gz
Some test updates for Windows.
Handle SHELL set on the command line properly for windows.
-rw-r--r--ChangeLog6
-rw-r--r--NEWS17
-rw-r--r--tests/ChangeLog8
-rwxr-xr-xtests/run_make_tests.pl2
-rw-r--r--tests/scripts/features/default_names36
-rw-r--r--tests/scripts/features/targetvars2
-rw-r--r--tests/scripts/options/dash-W2
-rw-r--r--variable.c3
8 files changed, 37 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index b2cde4f..b32ece5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-04 Eli Zaretskii <eliz@gnu.org>
+
+ * variable.c (do_variable_definition) [WINDOWS32]: Call the shell
+ locator function find_and_set_default_shell if SHELL came from the
+ command line.
+
2006-02-20 Paul D. Smith <psmith@gnu.org>
* variable.c (merge_variable_set_lists): It's legal for *setlist0
diff --git a/NEWS b/NEWS
index 3778954..ffaa0f3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*-
History of user-visible changes.
- 19 February 2006
+ 8 March 2006
See the end of this file for copyrights and conditions.
@@ -9,7 +9,7 @@ manual, which is contained in this distribution as the file doc/make.texi.
See the README file and the GNU make manual for instructions for
reporting bugs.
-Version 3.81rc1
+Version 3.81rc2
* GNU make is ported to OS/2.
@@ -18,7 +18,6 @@ Version 3.81rc1
details.
* WARNING: Backward-incompatibility!
-
GNU make now implements a generic "second expansion" feature on the
prerequisites of both explicit and implicit (pattern) rules. In order
to enable this feature, the special target '.SECONDEXPANSION' must be
@@ -41,8 +40,16 @@ Version 3.81rc1
backslash-newline sequences in command strings has changed. If your
makefiles use backslash-newline sequences inside of single-quoted
strings in command scripts you will be impacted by this change. See
- the GNU make manual section "Command Execution" (node "Execution") for
- details.
+ the GNU make manual subsection "Splitting Command Lines" (node
+ "Splitting Lines"), in section "Command Syntax", chapter "Writing the
+ Commands in Rules", for details.
+
+* WARNING: Backward-incompatibility!
+ Some previous versions of GNU make had a bug where "#" in a function
+ invocation such as $(shell ...) was treated as a make comment. A
+ workaround was to escape these with backslashes. This bug has been
+ fixed: if your makefile uses "\#" in a function invocation the
+ backslash is now preserved, so you'll need to remove it.
* New command-line option: -L (--check-symlink-times). On systems that
support symbolic links, if this option is given then GNU make will
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 57dec0d..3db7cc3 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,11 @@
+2006-03-05 Paul D. Smith <psmith@gnu.org>
+
+ * run_make_tests.pl (set_more_defaults): Add CYGWIN_NT as a port
+ type W32. Fixed Savannah bug #15937.
+
+ * scripts/features/default_names: Don't call error() when the test
+ fails. Fixes Savannah bug #15941.
+
2006-02-17 Paul D. Smith <psmith@gnu.org>
* scripts/features/targetvars: Test a complex construction which
diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
index ae7536f..689ce2e 100755
--- a/tests/run_make_tests.pl
+++ b/tests/run_make_tests.pl
@@ -238,7 +238,7 @@ sub set_more_defaults
#
# This is probably not specific enough.
#
- if ($osname =~ /Windows/i || $osname =~ /MINGW32/i) {
+ if ($osname =~ /Windows/i || $osname =~ /MINGW32/i || $osname =~ /CYGWIN_NT/i) {
$port_type = 'W32';
}
# Bleah, the osname is so variable on DOS. This kind of bites.
diff --git a/tests/scripts/features/default_names b/tests/scripts/features/default_names
index 501f1fc..e53127e 100644
--- a/tests/scripts/features/default_names
+++ b/tests/scripts/features/default_names
@@ -7,59 +7,35 @@ default makefiles in the correct order (GNUmakefile,makefile,Makefile)";
$makefile = "GNUmakefile";
open(MAKEFILE,"> $makefile");
-
print MAKEFILE "FIRST: ; \@echo It chose GNUmakefile\n";
-
close(MAKEFILE);
# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
# Just test what we can here (avoid Makefile versus makefile test).
-#
-if ($port_type eq 'UNIX')
-{
+
+if ($port_type eq 'UNIX') {
# Create another makefile called "makefile"
open(MAKEFILE,"> makefile");
-
print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
-
close(MAKEFILE);
}
-
# Create another makefile called "Makefile"
open(MAKEFILE,"> Makefile");
-
print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
-
close(MAKEFILE);
&run_make_with_options("","",&get_logfile);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "It chose GNUmakefile\n";
-
-# COMPARE RESULTS
-
-&compare_output($answer,&get_logfile(1)) || &error("abort");
+&compare_output("It chose GNUmakefile\n",&get_logfile(1));
unlink $makefile;
-# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
-# Just test what we can here (avoid Makefile versus makefile test).
-#
-if ($port_type eq 'UNIX')
-{
- $answer = "It chose makefile\n";
-
+if ($port_type eq 'UNIX') {
&run_make_with_options("","",&get_logfile);
-
- &compare_output($answer,&get_logfile(1)) || &error("abort");
+ &compare_output("It chose makefile\n",&get_logfile(1));
unlink "makefile";
}
-$answer = "It chose Makefile\n";
-
&run_make_with_options("","",&get_logfile);
-
-&compare_output($answer,&get_logfile(1)) || &error("abort");
+&compare_output("It chose Makefile\n",&get_logfile(1));
unlink "Makefile";
diff --git a/tests/scripts/features/targetvars b/tests/scripts/features/targetvars
index c22ce13..18dd023 100644
--- a/tests/scripts/features/targetvars
+++ b/tests/scripts/features/targetvars
@@ -272,7 +272,7 @@ $answer = "no build information\n";
# Test a merge of set_lists for files, where one list is much longer
# than the other. See Savannah bug #15757.
-mkdir('t1');
+mkdir('t1', 0777);
touch('t1/rules.mk');
run_make_test('
diff --git a/tests/scripts/options/dash-W b/tests/scripts/options/dash-W
index 50745f7..d3fde87 100644
--- a/tests/scripts/options/dash-W
+++ b/tests/scripts/options/dash-W
@@ -60,7 +60,7 @@ rmfiles('foo.x', 'bar.x');
# Test -W on vpath-found files: it should take effect.
# Savannah bug # 15341
-mkdir('x-dir');
+mkdir('x-dir', 0777);
utouch(-20, 'x-dir/x');
touch('y');
diff --git a/variable.c b/variable.c
index 54bbc02..f23f7d1 100644
--- a/variable.c
+++ b/variable.c
@@ -1168,7 +1168,8 @@ do_variable_definition (const struct floc *flocp, const char *varname,
else
#endif /* __MSDOS__ */
#ifdef WINDOWS32
- if ((origin == o_file || origin == o_override) && streq (varname, "SHELL"))
+ if ((origin == o_file || origin == o_override || origin == o_command)
+ && streq (varname, "SHELL"))
{
extern char *default_shell;