diff options
author | Paul Smith <psmith@gnu.org> | 2009-10-03 20:08:20 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2009-10-03 20:08:20 +0000 |
commit | f87715a62c2e6a5660c2a176fffc0d7333bcfd8c (patch) | |
tree | 815c7f2dcc9e2220f7f21c7d30f7533fdd2a4542 | |
parent | 56653d852446e74a4d998c7d91e6591e28c240f9 (diff) | |
download | gunmake-f87715a62c2e6a5660c2a176fffc0d7333bcfd8c.tar.gz |
- Include <alloca.h> even on non-__GNUC__ systems.
- Add some tests for unresolved bugs.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | function.c | 3 | ||||
-rw-r--r-- | make.h | 25 | ||||
-rw-r--r-- | tests/ChangeLog | 9 | ||||
-rw-r--r-- | tests/scripts/features/include | 11 | ||||
-rw-r--r-- | tests/scripts/variables/MAKE | 45 | ||||
-rw-r--r-- | tests/scripts/variables/MAKEFLAGS | 43 |
7 files changed, 99 insertions, 43 deletions
@@ -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; } @@ -23,28 +23,25 @@ this program. If not, see <http://www.gnu.org/licenses/>. */ #undef HAVE_CONFIG_H #define HAVE_CONFIG_H 1 +/* 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. */ -#ifndef __GNUC__ -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX +#if HAVE_ALLOCA_H +# include <alloca.h> +#else +# ifdef _AIX #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ +# 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 - - #ifdef CRAY /* This must happen before #include <signal.h> so that the declaration therein is changed. */ diff --git a/tests/ChangeLog b/tests/ChangeLog index 77b37e3..aeee9b4 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -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 diff --git a/tests/scripts/features/include b/tests/scripts/features/include index 7ad4112..ba8908c 100644 --- a/tests/scripts/features/include +++ b/tests/scripts/features/include @@ -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; diff --git a/tests/scripts/variables/MAKE b/tests/scripts/variables/MAKE index 079c57e..d1081da 100644 --- a/tests/scripts/variables/MAKE +++ b/tests/scripts/variables/MAKE @@ -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"); - -# The Contents of the MAKEFILE ... - -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)); +run_make_test(q! +TMP := $(MAKE) +MAKE := $(subst X=$(X),,$(MAKE)) +all: + @echo $(TMP) + $(MAKE) -f #MAKEFILE# foo + +foo: + @echo $(MAKE) +!, + '', + "#MAKEPATH#\n#MAKEPATH# -f #MAKEFILE# foo\n" + . "#MAKE#[1]: Entering directory `#PWD#'\n" + . "#MAKEPATH#\n#MAKE#[1]: Leaving directory `#PWD#'\n"); + +rmfiles("foo"); 1; diff --git a/tests/scripts/variables/MAKEFLAGS b/tests/scripts/variables/MAKEFLAGS new file mode 100644 index 0000000..0b567e8 --- /dev/null +++ b/tests/scripts/variables/MAKEFLAGS @@ -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; |