]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Fixed a number of documentation bugs, plus some build/install issues:
authorPaul Smith <psmith@gnu.org>
Sun, 1 Oct 2006 05:38:38 +0000 (05:38 +0000)
committerPaul Smith <psmith@gnu.org>
Sun, 1 Oct 2006 05:38:38 +0000 (05:38 +0000)
  16304, 16468, 16577, 17701, 17880, 16051, 16652, 16698
Plus some from the mailing list.

Imported a patch from Eli to allow Cygwin builds to support DOS-style
pathnames.

19 files changed:
ChangeLog
README.OS2.template
README.cvs
config.h.W32.template
config/.cvsignore
config/dospaths.m4
configure.in
doc/make.texi
job.c
maintMakefile
make.1
make.h
remake.c
tests/ChangeLog
tests/run_make_tests.pl
tests/scripts/variables/automatic
tests/test_driver.pl
variable.c
variable.h

index 39867936000ea6634eb308e8a47718002e034a85..1eb3ca3cf97b562ad2eeb627687a170350bbe52f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,69 @@
+2006-09-30  Paul Smith  <psmith@paulandlesley.org>
+
+       * doc/make.texi (MAKEFILE_LIST Variable): Modify reference to
+       point to lastword since the example was updated.
+       Fixes Savannah bug #16304.
+       (Secondary Expansion): Correct example description.
+       Fixes Savannah bug #16468.
+       (Makefile Contents): Clarify that comments cannot appear within
+       variable references or function calls.
+       Fixes Savannah bug #16577.
+       (Special Targets): Clarify how .NOTPARALLEL works in recursion.
+       Fixes Savannah bug #17701.
+       Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:
+       (Prerequisite Types): Added an example of using order-only
+       prerequisites.  Fixes Savannah bug #17880.
+       (Rule Syntax): "lise" -> "list"
+       (Multiple Rules): ... -> @dots{}
+       (Splitting Lines): ditto.
+
+       * remake.c (update_file_1): Prereqs that don't exist should be
+       considered changed, for the purposes of $?.
+       Fixes Savannah bug #16051.
+
+       * make.1: Remove extraneous "+".
+       Fixes Savannah bug #16652.
+
+2006-09-06  Paul D. Smith  <psmith@gnu.org>
+
+       * configure.in: Include sys/types.h when checking for sys/wait.h.
+
+2006-08-18  Eli Zaretskii  <eliz@gnu.org>
+
+       * configure.in (PATH_SEPARATOR_CHAR): Define to the value of
+       $PATH_SEPARATOR.
+
+       * make.h (PATH_SEPARATOR_CHAR): Define only if still undefined.
+       Normally, it is defined in config.h.
+
+       * config/dospaths.m4 <ac_cv_dos_paths>: Define to yes on Cygwin as
+       well.
+
+       * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Define
+       sh_chars_sh for Windows platforms that emulate Unix.
+
+2006-05-07  Paul D. Smith  <psmith@gnu.org>
+
+       * README.OS2.template: Updates provided by Andreas Buening
+       <andreas.buening@nexgo.de>.
+
+2006-04-30  Paul D. Smith  <psmith@gnu.org>
+
+       * make.h: Include <direct.h> if HAVE_DIRECT_H.
+       * config.h.W32.template (HAVE_DIRECT_H): Set it if it's available.
+
+2006-04-26  Paul D. Smith  <psmith@gnu.org>
+
+       * README.cvs: Add a reminder to notify the GNU translation robot.
+
+       * doc/make.texi: Change @direcategory (requested by Karl Berry).
+
+2006-04-20  Paul D. Smith  <psmith@gnu.org>
+
+       * maintMakefile (po-check): Use Perl instead of grep -E, for systems
+       that don't have extended grep.
+       (cvsclean): Use $(PERL) instead of perl.
+
 2006-04-09  Paul D. Smith  <psmith@gnu.org>
 
        * maintMakefile: Add some extra warning options (GCC 4.1 only?)
index 77b6bf075eecc0ec440bd843a6eca2a3a37ea5be..0495b2ed2fed965f51d6b63d091dec5c4b38cec8 100644 (file)
@@ -13,7 +13,7 @@ GNU make supports both shell types. The following list defines the order
 that is used to determine the shell:
 
  1. The shell specified by the environment variable MAKESHELL.
- 2. The shell specified by the SHELL variable within a Makefile. As on
+ 2. The shell specified by the SHELL variable within a Makefile. Like
     Unix, SHELL is NOT taken from the environment.
  3. The shell specified by the COMSPEC environment variable.
  4. The shell specified by the OS2_SHELL environment variable.
@@ -64,7 +64,7 @@ A standard Unix like build environment:
  - GNU texinfo (you can use 3.1 (gnuinfo.zip), but I recommend 4.0)
 
 If you want to recreate the configuration files (developers only!)
-you need also: GNU m4 1.4, autoconf 2.59, automake 1.8.2 (or compatible)
+you need also: GNU m4 1.4, autoconf 2.59, automake 1.9.6 (or compatible)
 
 
 III. ***** COMPILATION AND INSTALLATION *****
@@ -83,7 +83,7 @@ b) Installation into x:/usr
 
    Note: Although it is possible to compile make using "./configure",
          "make", "make install" this is not recommended.  In particular,
-         you must ALWAYS use LDFLAGS="-Zstack 0x8000" because the default
+         you must ALWAYS use LDFLAGS="-Zstack 0x6000" because the default
          stack size is far to small and make will not work properly!
 
 Recommended environment variables and installation options:
@@ -91,13 +91,13 @@ Recommended environment variables and installation options:
     export ac_executable_extensions=".exe"
     export CPPFLAGS="-D__ST_MT_ERRNO__"
     export CFLAGS="-O2 -Zomf -Zmt"
-    export LDFLAGS="-Zcrtdll -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
+    export LDFLAGS="-Zcrtdll -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x6000"
     export RANLIB="echo"
     ./configure --prefix=x:/usr --infodir=x:/usr/share/info --mandir=x:/usr/share/man --without-included-gettext
     make AR=emxomfar
     make install
 
-Note: If you use gcc 2.9.x or higher I recommend to set also LIBS="-lgcc"
+Note: If you use gcc 2.9.x I recommend to set also LIBS="-lgcc"
 
 Note: You can add -DNO_CMD_DEFAULT and -DNO_CHDIR2 to CPPFLAGS.
       See section I. for details.
@@ -148,15 +148,15 @@ To run the testsuite do the following:
 
   export CPPFLAGS="-D__ST_MT_ERRNO__ -DNO_CMD_DEFAULT -DNO_CHDIR2"
   export CFLAGS="-Zomf -O2 -Zmt"
-  export LDFLAGS="-Zcrtdll -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
+  export LDFLAGS="-Zcrtdll -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x6000"
   export RANLIB="echo"
   ./configure --prefix=x:/usr --disable-nls
   make AR=emxomfar
   make check
 
-All tests should work fine with the exception of "default_names" which
-is because OS/2 file systems are not case sensitive ("makefile" and
-"Makefile" specify the same file).
+All tests should work fine with the exception of one of the "INCLUDE_DIRS"
+tests which will fail if your /usr/include directory is on a drive different
+from the make source tree.
 
 \f
 -------------------------------------------------------------------------------
index 9194f00a33b8422c757736235945c879fbc2fa59..59a9d951836d6f759c4f8eb23e8776300c973bd0 100644 (file)
@@ -169,6 +169,13 @@ what you do:
 It will ask for the GPG passphrase _THREE_ times.  Sigh.
 
 
+For both final releases and pre-releases, send an email with the URL of
+the package to the GNU translation robot to allow the translators to
+work on it:
+
+     <translation@iro.umontreal.ca>
+
+
 Where to Announce
 -----------------
 
index e1d92ca0de1531181a9332b3884661f85684a183..fc7fccc33cdc6a54919973bd73e725ad8a5a4b60 100644 (file)
@@ -81,6 +81,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    */
 #define HAVE_DIRENT_H 1
 
+/* Define to 1 if you have the <direct.h> header file, and it defines getcwd()
+   and chdir().
+   */
+#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(__INTERIX)
+# define HAVE_DIRECT_H 1
+#endif
+
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 /* #undef HAVE_DOPRNT */
 
index 8789912bbc04b62e8c11dd4ed8a080e364941a14..b95b83b544c9df937cb2e9e29c76a9a4a3c12c69 100644 (file)
@@ -3,5 +3,9 @@ config.*
 mkinstalldirs
 texinfo.tex
 mdate-sh
+compile
+depcomp
+install-sh
+missing
 
 Makefile Makefile.in
index 1f40640d9c89a47972d90eebb9bff00ba24e080c..3d55cee71f4414e997f2b1c4a9abe9c835a383b9 100644 (file)
@@ -22,7 +22,7 @@ AC_DEFUN([pds_AC_DOS_PATHS],
     AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths],
       [
         AC_COMPILE_IFELSE([
-#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__
+#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__
 neither MSDOS nor Windows nor OS2
 #endif
 ],
index c842ac5a202149eef4d3d817de013a4f4629e81b..6bc76f8bb42713e157b09d5c5731d05828ae2bbd 100644 (file)
@@ -191,7 +191,7 @@ AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], , ,
 
 
 # Check out the wait reality.
-AC_CHECK_HEADERS(sys/wait.h)
+AC_CHECK_HEADERS(sys/wait.h,,,[[#include <sys/types.h>]])
 AC_CHECK_FUNCS(waitpid wait3)
 AC_MSG_CHECKING(for union wait)
 AC_CACHE_VAL(make_cv_union_wait, [dnl
@@ -381,6 +381,8 @@ case "$host" in
     ;;
 esac
 
+AC_DEFINE_UNQUOTED(PATH_SEPARATOR_CHAR,'$PATH_SEPARATOR',[Define to the character that separates directories in PATH.])
+
 # Include the Maintainer's Makefile section, if it's here.
 
 MAINT_MAKEFILE=/dev/null
index 904d1c24235fdbde8106855e035056e3f1ce249e..4680dec363dae458e98e7cc45c0a3d9675f8eb1e 100644 (file)
@@ -50,7 +50,7 @@ Software Foundation raise funds for GNU development.''
 @c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
 
 
-@dircategory GNU Packages
+@dircategory Software development
 @direntry
 * Make: (make).            Remake files automatically.
 @end direntry
@@ -1009,6 +1009,10 @@ it) is effectively blank, and is ignored.  If you want a literal
 appear on any line in the makefile, although they are treated
 specially in certain situations.
 
+You cannot use comments within variable references or function calls:
+any instance of @code{#} will be treated literally (rather than as the
+start of a comment) inside a variable reference or function call.
+
 Within a command script (if the line begins with a TAB character) the
 entire line is passed to the shell, just as with any other line that
 begins with a TAB.  The shell decides how to interpret the text:
@@ -1251,10 +1255,10 @@ name2 = inc.mk
 @end group
 @end example
 
-@xref{Text Functions}, for more information on the @code{word} and
-@code{words} functions used above.  @xref{Flavors, The Two Flavors of
-Variables}, for more information on simply-expanded (@code{:=})
-variable definitions.
+@xref{Text Functions}, for more information on the @code{lastword}
+function used above.  @xref{Flavors, The Two Flavors of Variables},
+for more information on simply-expanded (@code{:=}) variable
+definitions.
 
 @node Special Variables, Remaking Makefiles, MAKEFILE_LIST Variable, Makefiles
 @comment  node-name,  next,  previous,  up
@@ -1744,7 +1748,7 @@ In the first prerequisite list, all three variables (@code{$$<},
 second, they will have values @code{foo.1}, @code{foo.1 bar.1}, and
 @code{foo.1 bar.1} respectively.  In the third they will have values
 @code{foo.1}, @code{foo.1 bar.1 foo.2 bar.2}, and @code{foo.1 bar.1
-foo.2 bar.2} respectively.
+foo.2 bar.2 foo.1 foo.1 bar.1 foo.1 bar.1} respectively.
 
 Rules undergo secondary expansion in makefile order, except that
 the rule with the command script is always evaluated last.
@@ -1937,7 +1941,7 @@ references, if you really want a dollar sign in a target or
 prerequisite you must write two of them, @samp{$$} (@pxref{Using
 Variables, ,How to Use Variables}).  If you have enabled secondary
 expansion (@pxref{Secondary Expansion}) and you want a literal dollar
-sign in the prerequisites lise, you must actually write @emph{four}
+sign in the prerequisites list, you must actually write @emph{four}
 dollar signs (@samp{$$$$}).
 
 You may split a long line by inserting a backslash followed by a
@@ -2000,10 +2004,41 @@ symbol are normal; any prerequisites to the right are order-only:
 
 The normal prerequisites section may of course be empty.  Also, you
 may still declare multiple lines of prerequisites for the same target:
-they are appended appropriately.  Note that if you declare the same
-file to be both a normal and an order-only prerequisite, the normal
-prerequisite takes precedence (since they are a strict superset of the
-behavior of an order-only prerequisite).
+they are appended appropriately (normal prerequisites are appended to
+the list of normal prerequisites; order-only prerequisites are
+appended to the list of order-only prerequisites).  Note that if you
+declare the same file to be both a normal and an order-only
+prerequisite, the normal prerequisite takes precedence (since they
+have a strict superset of the behavior of an order-only prerequisite).
+
+Consider an example where your targets are to be placed in a separate
+directory, and that directory might not exist before @code{make} is
+run.  In this situation, you want the directory to be created before
+any targets are placed into it but, because the timestamps on
+directories change whenever a file is added, removed, or renamed, we
+certainly don't want to rebuild all the targets whenever the
+directory's timestamp changes.  One way to manage this is with
+order-only prerequisites: make the directory an order-only
+prerequisite on all the targets:
+
+@example
+OBJDIR := objdir
+OBJS := $(addprefix $(OBJDIR)/,foo.o bar.o baz.o)
+
+$(OBJDIR)/%.o : %.c
+        $(COMPILE.c) $(OUTPUT_OPTION) $<
+
+all: $(OBJS)
+
+$(OBJS): | $(OBJDIR)
+
+$(OBJDIR):
+        mkdir $(OBJDIR)
+@end example
+
+Now the rule to create the @file{objdir} directory will be run, if
+needed, before any @samp{.o} is built, but no @samp{.o} will be built
+because the @file{objdir} directory timestamp changed.
 
 @node Wildcards, Directory Search, Prerequisite Types, Rules
 @section Using Wildcard Characters in File Names
@@ -2995,11 +3030,11 @@ Sub-@code{make}}.
 @item .NOTPARALLEL
 @cindex parallel execution, overriding
 
-If @code{.NOTPARALLEL} is mentioned as a target, then this invocation of
-@code{make} will be run serially, even if the @samp{-j} option is
-given.  Any recursively invoked @code{make} command will still be run in
-parallel (unless its makefile contains this target).  Any prerequisites
-on this target are ignored.
+If @code{.NOTPARALLEL} is mentioned as a target, then this invocation
+of @code{make} will be run serially, even if the @samp{-j} option is
+given.  Any recursively invoked @code{make} command will still run
+commands in parallel (unless its makefile also contains this target).
+Any prerequisites on this target are ignored.
 @end table
 
 Any defined implicit rule suffix also counts as a special target if it
@@ -3093,7 +3128,7 @@ more than one rule gives commands for the same file, @code{make} uses
 the last set given and prints an error message.  (As a special case,
 if the file's name begins with a dot, no error message is printed.
 This odd behavior is only for compatibility with other implementations
-of @code{make}... you should avoid using it).  Occasionally it is
+of @code{make}@dots{} you should avoid using it).  Occasionally it is
 useful to have the same target invoke multiple commands which are
 defined in different parts of your makefile; you can use
 @dfn{double-colon rules} (@pxref{Double-Colon}) for this.
@@ -3652,11 +3687,12 @@ hello     world
 @end example
 
 @noindent
-Notice how the backslash/newline pair was removed inside the string quoted
-with double quotes (@code{"..."}), but not from the string quoted with single
-quotes (@code{'...'}).  This is the way the default shell (@file{/bin/sh})
-handles backslash/newline pairs.  If you specify a different shell in your
-makefiles it may treat them differently.
+Notice how the backslash/newline pair was removed inside the string
+quoted with double quotes (@code{"@dots{}"}), but not from the string
+quoted with single quotes (@code{'@dots{}'}).  This is the way the
+default shell (@file{/bin/sh}) handles backslash/newline pairs.  If
+you specify a different shell in your makefiles it may treat them
+differently.
 
 Sometimes you want to split a long line inside of single quotes, but
 you don't want the backslash-newline to appear in the quoted content.
@@ -3942,7 +3978,9 @@ GNU @code{make} knows how to execute several commands at once.
 Normally, @code{make} will execute only one command at a time, waiting
 for it to finish before executing the next.  However, the @samp{-j} or
 @samp{--jobs} option tells @code{make} to execute many commands
-simultaneously.@refill
+simultaneously.  You can inhibit parallelism in a particular makefile
+with the @code{.NOTPARALLEL} pseudo-target (@pxref{Special
+Targets,Special Built-in Target Names}).@refill
 
 On MS-DOS, the @samp{-j} option has no effect, since that system doesn't
 support multi-processing.
diff --git a/job.c b/job.c
index 50c6d8f6518653d07346e2412e32bcf1424cb1dc..79bdb0d562dee827e61ca89c33fe502e329ec514 100644 (file)
--- a/job.c
+++ b/job.c
@@ -2307,6 +2307,12 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
                              "login", "logout", "read", "readonly", "set",
                              "shift", "switch", "test", "times", "trap",
                              "umask", "wait", "while", 0 };
+# ifdef HAVE_DOS_PATHS
+  /* This is required if the MSYS/Cygwin ports (which do not define
+     WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses
+     sh_chars_sh[] directly (see below).  */
+  static char *sh_chars_sh = sh_chars;
+# endif         /* HAVE_DOS_PATHS */
 #endif
   int i;
   char *p;
index 457a39e1654e9def7f92b4586324194749862269..4599e156ae7deb9b448ff7c115e7e0669e953408 100644 (file)
@@ -91,11 +91,12 @@ CVS-CLEAN-FILES +=  $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \
 # This rule tries to clean the tree right down to how it looks when you do a
 # virgin CVS checkout.
 
-# This is potentially dangerous since it removes _ANY FILE_ that is not in
-# CVS.  Including files you might mean to add to CVS but haven't yet...
-# I only use this in subdirectories where it's unlikely we have any new
-# files.  Stil...
-cvsclean = perl -e '$$k{CVS} = 1; open(E,"< CVS/Entries") || die "CVS/Entries: $$!\n"; while (defined ($$_ = <E>)) { m%^/([^/]*)% or next; $$k{$$1} = 1; } close(E) || die "CVS/Entries: $$!\n"; opendir(D, ".") || die ".: $$!\n"; while (defined ($$_ = readdir(D))) { -f $$_ && ! exists $$k{$$_} && unlink($$_); } closedir(D) || die ".: $$!\n";'
+# This target is potentially dangerous since it removes _ANY FILE_ that
+# is not in CVS.  Including files you might mean to add to CVS but
+# haven't yet...  I only use this in subdirectories where it's unlikely
+# we have any new files.  Still... be careful!!
+
+cvsclean = $(PERL) -e '$$k{CVS} = 1; open(E,"< CVS/Entries") || die "CVS/Entries: $$!\n"; while (defined ($$_ = <E>)) { m%^/([^/]*)% or next; $$k{$$1} = 1; } close(E) || die "CVS/Entries: $$!\n"; opendir(D, ".") || die ".: $$!\n"; while (defined ($$_ = readdir(D))) { -f $$_ && ! exists $$k{$$_} && unlink($$_); } closedir(D) || die ".: $$!\n";'
 
 .PHONY: cvs-clean
 cvs-clean: maintainer-clean
@@ -214,8 +215,8 @@ changelog-check:
 # Ignore make.h; it defines _().
 po-check:
        if test -f po/POTFILES.in; then \
-         grep -E -v '^(#|$$)' po/POTFILES.in | sort > $@-1; \
-         grep -E -l '\b_\(' *.c *.h | grep -v make.h | sort > $@-2; \
+         grep '^[^#]' po/POTFILES.in | sort > $@-1; \
+         $(PERL) -wn -e 'if (/\b_\(/) { $$ARGV eq "make.h" || print "$$ARGV\n" and close ARGV }' *.c *.h | sort > $@-2; \
          diff -u $@-1 $@-2 || exit 1; \
          rm -f $@-1 $@-2; \
        fi
diff --git a/make.1 b/make.1
index d11c4e60fa29abc024c285993c5b0bad89f4a3f9..5958b2e849c65636e88c2242fd3b99d106219806 100644 (file)
--- a/make.1
+++ b/make.1
@@ -164,7 +164,7 @@ for debugging while remaking makefiles.
 Give variables taken from the environment precedence
 over variables from makefiles.
 .TP 0.5i
-+\fB\-f\fR \fIfile\fR, \fB\-\-file\fR=\fIfile\fR, \fB\-\-makefile\fR=\fIFILE\fR
+\fB\-f\fR \fIfile\fR, \fB\-\-file\fR=\fIfile\fR, \fB\-\-makefile\fR=\fIFILE\fR
 Use
 .I file
 as a makefile.
diff --git a/make.h b/make.h
index 949f35a1502bb94442307c1af2b87efb0ffaf175..316d9c70c3c2eec9bd03c20c3594f82d9c77927e 100644 (file)
--- a/make.h
+++ b/make.h
@@ -311,16 +311,18 @@ int strcmpi (const char *,const char *);
 #define S_(msg1,msg2,num)   ngettext (msg1,msg2,num)
 
 /* Handle other OSs.  */
-#if defined(HAVE_DOS_PATHS)
-# define PATH_SEPARATOR_CHAR ';'
-#elif defined(VMS)
-# define PATH_SEPARATOR_CHAR ','
-#else
-# define PATH_SEPARATOR_CHAR ':'
+#ifndef PATH_SEPARATOR_CHAR
+# if defined(HAVE_DOS_PATHS)
+#  define PATH_SEPARATOR_CHAR ';'
+# elif defined(VMS)
+#  define PATH_SEPARATOR_CHAR ','
+# else
+#  define PATH_SEPARATOR_CHAR ':'
+# endif
 #endif
 
-/* This is needed for getcwd() and chdir().  */
-#if defined(_MSC_VER) || defined(__BORLANDC__)
+/* This is needed for getcwd() and chdir(), on some W32 systems.  */
+#if defined(HAVE_DIRECT_H)
 # include <direct.h>
 #endif
 
index 363b9290ee0d2345ac34bed954a4e58c29c8590c..8d17ce71e02f5c68ed5582fcfae6eb5c047302dd 100644 (file)
--- a/remake.c
+++ b/remake.c
@@ -535,11 +535,9 @@ update_file_1 (struct file *file, unsigned int depth)
 
       if (!running)
         /* The prereq is considered changed if the timestamp has changed while
-           it was built, OR it doesn't exist.
-          This causes the Linux kernel build to break.  We'll defer this
-          fix until GNU make 3.82 to give them time to update.  */
+           it was built, OR it doesn't exist.  */
        d->changed = ((file_mtime (d->file) != mtime)
-                      /* || (mtime == NONEXISTENT_MTIME) */);
+                      || (mtime == NONEXISTENT_MTIME));
 
       lastd = d;
       d = d->next;
index 3e3520f2ecc60f18bca7794a010139d482ad4103..2fca415c444b186eb4765f4fa3287ccf0741bced 100644 (file)
@@ -1,3 +1,14 @@
+2006-10-01  Paul Smith  <psmith@paulandlesley.org>
+
+       * run_make_tests.pl (set_more_defaults): Remove setting of LANG in
+       ENV here.  This doesn't always work.
+       * test_driver.pl (toplevel): Set LC_ALL to 'C' in the make
+       environment.  Fixes Savannah bug #16698.
+
+2006-09-30  Paul Smith  <psmith@paulandlesley.org>
+
+       * scripts/variables/automatic: Add back the test for bug #8154.
+
 2006-04-01  Paul D. Smith  <psmith@gnu.org>
 
        * scripts/functions/realpath: Don't run tests with multiple
index 689ce2e628672e294f186db013e75bb6ed92311f..0419fef57400421e4fb824b39c43360e4d0f4141 100755 (executable)
@@ -228,11 +228,6 @@ sub set_more_defaults
    local($string);
    local($index);
 
-   # Make sure we're in the C locale for those systems that support it,
-   # so sorting, etc. is predictable.
-   #
-   $ENV{LANG} = 'C';
-
    # find the type of the port.  We do this up front to have a single
    # point of change if it needs to be tweaked.
    #
index 7237fe2bdaa003e981b039f72cee22532d74bd24..c0fdff842c7d41b54c0cc598a26a86d7e79a1be4 100644 (file)
@@ -95,17 +95,16 @@ mbr.src: ; @:',
 # Make sure that nonexistent prerequisites are listed in $?, since they are
 # considered reasons for the target to be rebuilt.
 #
-# This was undone due to Savannah bug #16002.  We'll re-do it in the next
-# release.  See Savannah bug #16051.
+# See also Savannah bugs #16002 and #16051.
 
-#touch('foo');
-#
-#run_make_test('
-#foo: bar ; @echo "\$$? = $?"
-#bar: ;',
-#              '',
-#              '$? = bar');
-#
-#unlink('foo');
+touch('foo');
+
+run_make_test('
+foo: bar ; @echo "\$$? = $?"
+bar: ;',
+              '',
+              '$? = bar');
+
+unlink('foo');
 
 1;
index c5ee1577a4d310a605e3c956ec380d05359775ea..dd1b33b243eabf190c539470d12bb394fb7ef47a 100644 (file)
@@ -78,9 +78,9 @@ sub resetENV
 sub toplevel
 {
   # Pull in benign variables from the user's environment
-  #
+
   foreach (# UNIX-specific things
-           'TZ', 'LANG', 'TMPDIR', 'HOME', 'USER', 'LOGNAME', 'PATH',
+           'TZ', 'TMPDIR', 'HOME', 'USER', 'LOGNAME', 'PATH',
            # Purify things
            'PURIFYOPTIONS',
            # Windows NT-specific stuff
@@ -92,6 +92,10 @@ sub toplevel
     $makeENV{$_} = $ENV{$_} if $ENV{$_};
   }
 
+  # Make sure our compares are not foiled by locale differences
+
+  $makeENV{LC_ALL} = 'C';
+
   # Replace the environment with the new one
   #
   %origENV = %ENV;
index 37d3f72dd8fa6d0fbf5358953f2cb440731388b9..098a941f053da495af051e37c9e92cbb65f08b58 100644 (file)
@@ -437,7 +437,7 @@ lookup_variable_in_set (const char *name, unsigned int length,
    rule, then we will use the "root" double-colon target's variable set as the
    parent of FILE's variable set.
 
-   If we're READing a makefile, don't do the pattern variable search now,
+   If we're READING a makefile, don't do the pattern variable search now,
    since the pattern variable might not have been defined yet.  */
 
 void
index a404abbcf3f9b30efcd57723300e24d2a85b31ec..783fb62513a75cde0d7f176e2922535047a8f5e3 100644 (file)
@@ -138,7 +138,7 @@ void free_variable_set (struct variable_set_list *);
 struct variable_set_list *push_new_variable_scope (void);
 void pop_variable_scope (void);
 void define_automatic_variables (void);
-void initialize_file_variables (struct file *file, int read);
+void initialize_file_variables (struct file *file, int reading);
 void print_file_variables (struct file *file);
 void print_variable_set (struct variable_set *set, char *prefix);
 void merge_variable_set_lists (struct variable_set_list **to_list,