1
0
mirror of https://github.com/mirror/make.git synced 2025-04-14 21:40:24 +08:00

Some test updates for Windows.

Handle SHELL set on the command line properly for windows.
This commit is contained in:
Paul Smith 2006-03-08 20:15:08 +00:00
parent 8af9389f87
commit afc4906aca
8 changed files with 37 additions and 39 deletions

View File

@ -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

17
NEWS
View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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";

View File

@ -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('

View File

@ -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');

View File

@ -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;