mirror of
https://github.com/mirror/make.git
synced 2025-01-27 21:00:22 +08:00
- Include <alloca.h> even on non-__GNUC__ systems.
- Add some tests for unresolved bugs.
This commit is contained in:
parent
56653d8524
commit
f87715a62c
@ -1,3 +1,9 @@
|
||||
2009-10-03 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* make.h: Include <alloca.h> even on systems where __GNUC__ is
|
||||
defined. Not sure why it was done the other way.
|
||||
Requested by David Boyce <dsb@boyski.com>.
|
||||
|
||||
2009-09-30 Boris Kolpackov <boris@codesynthesis.com>
|
||||
|
||||
* dep.h (dep): Add the DONTCARE bitfield.
|
||||
|
@ -382,7 +382,8 @@ string_glob (char *line)
|
||||
idx += len;
|
||||
result[idx++] = ' ';
|
||||
|
||||
free (chain->name);
|
||||
/* Because we used PARSEFS_NOCACHE above, we have to free() NAME. */
|
||||
free ((char *)chain->name);
|
||||
free (chain);
|
||||
chain = next;
|
||||
}
|
||||
|
29
make.h
29
make.h
@ -23,27 +23,24 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#undef HAVE_CONFIG_H
|
||||
#define HAVE_CONFIG_H 1
|
||||
|
||||
/* AIX requires this to be the first thing in the file. */
|
||||
#ifndef __GNUC__
|
||||
# if HAVE_ALLOCA_H
|
||||
# include <alloca.h>
|
||||
# else
|
||||
# ifdef _AIX
|
||||
#pragma alloca
|
||||
# else
|
||||
# ifndef alloca /* predefined by HP cc +Olibcalls */
|
||||
char *alloca ();
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Specify we want GNU source code. This must be defined before any
|
||||
system headers are included. */
|
||||
|
||||
#define _GNU_SOURCE 1
|
||||
|
||||
/* AIX requires this to be the first thing in the file. */
|
||||
#if HAVE_ALLOCA_H
|
||||
# include <alloca.h>
|
||||
#else
|
||||
# ifdef _AIX
|
||||
#pragma alloca
|
||||
# else
|
||||
# ifndef alloca /* predefined by HP cc +Olibcalls */
|
||||
char *alloca ();
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CRAY
|
||||
/* This must happen before #include <signal.h> so
|
||||
|
@ -1,3 +1,12 @@
|
||||
2009-10-03 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* scripts/variables/MAKE: Rewrite for new run_make_test() format.
|
||||
|
||||
* scripts/variables/MAKEFLAGS: Created.
|
||||
Add test for Savannah bug #2216 (still open).
|
||||
|
||||
* scripts/features/include: Test for Savannah bug #102 (still open).
|
||||
|
||||
2009-09-30 Boris Kolpackov <boris@codesynthesis.com>
|
||||
|
||||
* scripts/features/include: Add diagnostics issuing tests for
|
||||
|
@ -165,4 +165,15 @@ baz: end
|
||||
#MAKE#: *** No rule to make target `end', needed by `baz'. Stop.\n",
|
||||
512);
|
||||
|
||||
if ($all_tests) {
|
||||
# Test that include of a rebuild-able file doesn't show a warning
|
||||
# Savannah bug #102
|
||||
run_make_test(q!
|
||||
include foo
|
||||
foo: ; @echo foo = bar > $@
|
||||
!,
|
||||
'', "#MAKE#: `foo' is up to date.\n");
|
||||
rmfiles('foo');
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -1,35 +1,24 @@
|
||||
# -*-perl-*-
|
||||
|
||||
$description = "The following test creates a makefile to test MAKE \n"
|
||||
."(very generic)";
|
||||
$description = "Test proper behavior of the MAKE variable";
|
||||
|
||||
$details = "DETAILS";
|
||||
|
||||
open(MAKEFILE,"> $makefile");
|
||||
run_make_test(q!
|
||||
TMP := $(MAKE)
|
||||
MAKE := $(subst X=$(X),,$(MAKE))
|
||||
all:
|
||||
@echo $(TMP)
|
||||
$(MAKE) -f #MAKEFILE# foo
|
||||
|
||||
# The Contents of the MAKEFILE ...
|
||||
foo:
|
||||
@echo $(MAKE)
|
||||
!,
|
||||
'',
|
||||
"#MAKEPATH#\n#MAKEPATH# -f #MAKEFILE# foo\n"
|
||||
. "#MAKE#[1]: Entering directory `#PWD#'\n"
|
||||
. "#MAKEPATH#\n#MAKE#[1]: Leaving directory `#PWD#'\n");
|
||||
|
||||
print MAKEFILE "TMP := \$(MAKE)\n";
|
||||
print MAKEFILE "MAKE := \$(subst X=\$(X),,\$(MAKE))\n\n";
|
||||
print MAKEFILE "all:\n";
|
||||
print MAKEFILE "\t\@echo \$(TMP)\n";
|
||||
print MAKEFILE "\t\$(MAKE) -f $makefile foo\n\n";
|
||||
print MAKEFILE "foo:\n";
|
||||
print MAKEFILE "\t\@echo \$(MAKE)\n";
|
||||
|
||||
# END of Contents of MAKEFILE
|
||||
|
||||
close(MAKEFILE);
|
||||
|
||||
# Create the answer to what should be produced by this Makefile
|
||||
$answer = "$mkpath\n$mkpath -f $makefile foo\n"
|
||||
. "${make_name}[1]: Entering directory `$pwd'\n"
|
||||
. "$mkpath\n${make_name}[1]: Leaving directory `$pwd'\n";
|
||||
|
||||
&run_make_with_options($makefile,"",&get_logfile,0);
|
||||
|
||||
&rmfiles("foo");
|
||||
# COMPARE RESULTS
|
||||
&compare_output($answer,&get_logfile(1));
|
||||
rmfiles("foo");
|
||||
|
||||
1;
|
||||
|
43
tests/scripts/variables/MAKEFLAGS
Normal file
43
tests/scripts/variables/MAKEFLAGS
Normal file
@ -0,0 +1,43 @@
|
||||
# -*-perl-*-
|
||||
|
||||
$description = "Test proper behavior of MAKEFLAGS";
|
||||
|
||||
$details = "DETAILS";
|
||||
|
||||
# Normal flags aren't prefixed with "-"
|
||||
run_make_test(q!
|
||||
all: ; @echo $(MAKEFLAGS)
|
||||
!,
|
||||
'-e -r -R', 'Rre');
|
||||
|
||||
# Long arguments mean everything is prefixed with "-"
|
||||
run_make_test(q!
|
||||
all: ; @echo $(MAKEFLAGS)
|
||||
!,
|
||||
'--no-print-directory -e -r -R', '--no-print-directory -Rre');
|
||||
|
||||
|
||||
if ($all_tests) {
|
||||
# Recursive invocations of make should accumulate MAKEFLAGS values.
|
||||
# Savannah bug #2216
|
||||
run_make_test(q!
|
||||
MSG = Fails
|
||||
all:
|
||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
||||
@MSG=Works $(MAKE) -e -f #MAKEFILE# jump
|
||||
jump:
|
||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
||||
@$(MAKE) -f #MAKEFILE# print
|
||||
print:
|
||||
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
|
||||
@echo $(MSG)
|
||||
.PHONY: all jump print
|
||||
!,
|
||||
'--no-print-directory',
|
||||
'all: MAKEFLAGS= --no-print-directory
|
||||
jump: MAKEFLAGS= --no-print-directory -e
|
||||
print: MAKEFLAGS= --no-print-directory -e
|
||||
Works');
|
||||
}
|
||||
|
||||
1;
|
Loading…
Reference in New Issue
Block a user