mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-11-28 01:06:48 +00:00
Fixed a number of documentation bugs, plus some build/install issues:
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.
This commit is contained in:
parent
c25294ad3b
commit
7595f38f62
19 changed files with 214 additions and 74 deletions
66
ChangeLog
66
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?)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
|
|
@ -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
|
||||
-----------------
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -3,5 +3,9 @@ config.*
|
|||
mkinstalldirs
|
||||
texinfo.tex
|
||||
mdate-sh
|
||||
compile
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
|
||||
Makefile Makefile.in
|
||||
|
|
|
@ -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
|
||||
],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
6
job.c
6
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;
|
||||
|
|
|
@ -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
|
||||
|
|
2
make.1
2
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.
|
||||
|
|
18
make.h
18
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
|
||||
|
||||
|
|
6
remake.c
6
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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
#
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue