mirror of
https://github.com/mirror/make.git
synced 2025-01-26 20:30:36 +08:00
- Fix Savannah bug #13401
This commit is contained in:
parent
38b23bc3f0
commit
dceb954f9c
@ -1,5 +1,10 @@
|
||||
2009-06-13 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* doc/make.texi (MAKEFILES Variable): Be explicit that files
|
||||
included by MAKEFILES cannot give default goals.
|
||||
* read.c (eval): If set_default is not set, pass the no-default-goal
|
||||
value when we read included makefiles. Fixes Savannah bug #13401.
|
||||
|
||||
* ar.c (ar_name): Ensure that targets with empty parens aren't
|
||||
considered archive member references: archive members must have a
|
||||
non-empty "member" string. Fixes Savannah bug #18435.
|
||||
|
@ -1191,11 +1191,12 @@ For compatibility with some other @code{make} implementations,
|
||||
@vindex MAKEFILES
|
||||
If the environment variable @code{MAKEFILES} is defined, @code{make}
|
||||
considers its value as a list of names (separated by whitespace) of
|
||||
additional makefiles to be read before the others. This works much like
|
||||
the @code{include} directive: various directories are searched for those
|
||||
files (@pxref{Include, ,Including Other Makefiles}). In addition, the
|
||||
default goal is never taken from one of these makefiles and it is not an
|
||||
error if the files listed in @code{MAKEFILES} are not found.@refill
|
||||
additional makefiles to be read before the others. This works much
|
||||
like the @code{include} directive: various directories are searched
|
||||
for those files (@pxref{Include, ,Including Other Makefiles}). In
|
||||
addition, the default goal is never taken from one of these makefiles
|
||||
(or any makefile included by them) and it is not an error if the files
|
||||
listed in @code{MAKEFILES} are not found.@refill
|
||||
|
||||
@cindex recursion, and @code{MAKEFILES} variable
|
||||
The main use of @code{MAKEFILES} is in communication between recursive
|
||||
|
6
read.c
6
read.c
@ -857,8 +857,10 @@ eval (struct ebuffer *ebuf, int set_default)
|
||||
free (files);
|
||||
files = next;
|
||||
|
||||
r = eval_makefile (name, (RM_INCLUDED | RM_NO_TILDE
|
||||
| (noerror ? RM_DONTCARE : 0)));
|
||||
r = eval_makefile (name,
|
||||
(RM_INCLUDED | RM_NO_TILDE
|
||||
| (noerror ? RM_DONTCARE : 0)
|
||||
| (set_default ? 0 : RM_NO_DEFAULT_GOAL)));
|
||||
if (!r && !noerror)
|
||||
error (fstart, "%s: %s", name, strerror (errno));
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
2009-06-13 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* scripts/variables/MAKEFILES: Verify that MAKEFILES included
|
||||
files (and files included by them) don't set the default goal.
|
||||
Savannah bug #13401.
|
||||
|
||||
* scripts/functions/wildcard: Test that wildcards with
|
||||
non-existent glob matchers return empty.
|
||||
|
||||
|
@ -31,4 +31,23 @@ close(MAKEFILE);
|
||||
$answer = "DEFAULT RULE: M2=m2 M3=m3\n";
|
||||
&compare_output($answer,&get_logfile(1));
|
||||
|
||||
# TEST 2: Verify that included makefiles don't set the default goal.
|
||||
# See Savannah bug #13401.
|
||||
|
||||
create_file('xx-inc.mk', '
|
||||
include_goal: ; @echo $@
|
||||
include xx-ind.mk
|
||||
');
|
||||
|
||||
create_file('xx-ind.mk', '
|
||||
indirect_goal: ; @echo $@
|
||||
');
|
||||
|
||||
run_make_test(q!
|
||||
top: ; @echo $@
|
||||
!,
|
||||
'MAKEFILES=xx-inc.mk', "top\n");
|
||||
|
||||
unlink(qw(xx-inc.mk xx-ind.mk));
|
||||
|
||||
1;
|
||||
|
Loading…
Reference in New Issue
Block a user