]> git.ipfire.org Git - thirdparty/make.git/commit
Add support for .WARNINGS special variable
authorPaul Smith <psmith@gnu.org>
Sat, 18 Mar 2023 21:24:45 +0000 (17:24 -0400)
committerPaul Smith <psmith@gnu.org>
Sun, 2 Apr 2023 14:02:18 +0000 (10:02 -0400)
commita0d1e76d604df5bd006fd5ed6a69963d3c6b4d7a
tree02d739d8168207be28535f359b0a6583f231f047
parent03ecd94488b85adc38746ec3e7c2a297a522598e
Add support for .WARNINGS special variable

Create a new special variable, .WARNINGS, to allow per-makefile
control over warnings.  The command line settings will override
this.

Move the handling of warning flags to a new file: src/warning.c.
Allow the decode to work with generic strings, and call it from
decode_switches().

* Makefile.am: Add new file src/warning.c.
* build_w32.bat: Ditto.
* builddos.bat: Ditto.
* po/POTFILES.in: Ditto.
* src/makeint.h: #define for the .WARNINGS variable name.
* src/warning.h: Add declarations for methods moved from main.c.
Rename the enum warning_state to warning_action.
* src/warning.c: New file.  Move all warning encode/decode here
from main.c.
* src/main.c: Move methods into warning.c and call those methods
instead.
(main): Set .WARNINGS as a special variable.
* src/job.c (construct_command_argv): Rename to warning_action.
* src/read.c (tilde_expand): Ditto.
* src/variable.c (set_special_var): Update warnings when the
.WARNINGS special variable is set.
* tests/scripts/options/warn: Check invalid warning options.
* tests/scripts/variables/WARNINGS: Add tests for the .WARNINGS
special variable.
17 files changed:
Makefile.am
build_w32.bat
builddos.bat
doc/make.texi
po/POTFILES.in
src/expand.c
src/job.c
src/main.c
src/makeint.h
src/misc.c
src/output.c
src/read.c
src/variable.c
src/warning.c [new file with mode: 0644]
src/warning.h
tests/scripts/options/warn
tests/scripts/variables/WARNINGS [new file with mode: 0644]