From afc4906acaeb7191e4ec085d7be4ca5b036b821d Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Wed, 8 Mar 2006 20:15:08 +0000 Subject: Some test updates for Windows. Handle SHELL set on the command line properly for windows. --- ChangeLog | 6 ++++++ NEWS | 17 ++++++++++++----- tests/ChangeLog | 8 ++++++++ tests/run_make_tests.pl | 2 +- tests/scripts/features/default_names | 36 ++++++------------------------------ tests/scripts/features/targetvars | 2 +- tests/scripts/options/dash-W | 2 +- variable.c | 3 ++- 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 + + * 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 * 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 + + * 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 * 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; -- cgit v1.2.3