Some test updates for Windows.
authorPaul Smith <psmith@gnu.org>
Wed, 8 Mar 2006 20:15:08 +0000 (20:15 +0000)
committerPaul Smith <psmith@gnu.org>
Wed, 8 Mar 2006 20:15:08 +0000 (20:15 +0000)
Handle SHELL set on the command line properly for windows.

ChangeLog
NEWS
tests/ChangeLog
tests/run_make_tests.pl
tests/scripts/features/default_names
tests/scripts/features/targetvars
tests/scripts/options/dash-W
variable.c

index b2cde4fe5cab8ab01a4b2aa209d729fb6c880c93..b32ece5f3a76722f9db364586bf17329e37980d9 100644 (file)
--- 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 3778954b9df8480ce27d24f06234a72126379767..ffaa0f36d9d1bad741555df14b6e24c388290cbe 100644 (file)
--- 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.
 \f
-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
index 57dec0d0908f94daf9af9199e062e69e8507e5f3..3db7cc33dbe631209eaef472373ecccb301b38dc 100644 (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
index ae7536f2296977bc944d69c331bb768c411fff1d..689ce2e628672e294f186db013e75bb6ed92311f 100755 (executable)
@@ -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.
index 501f1fc9b8ffe9b60c3ea842042e430c9a324028..e53127e10bc5587b23609dbf39e04c5b7e7327ab 100644 (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";
index c22ce135a541c8fd4b819a0247e2b8e9ed80caa0..18dd0239698bb83c121ed20cfdb524afdd899e45 100644 (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('
index 50745f727321f37ea7b1ae329c88b7a9019d7284..d3fde87c1ae9158d644f166693a0d218a65266c4 100644 (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');
 
index 54bbc02ae53f2a7304a9fdabd476746dbc276113..f23f7d12fe1e74d59b0965bfde5e8d00aad165af 100644 (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;