Add `--jobserver-style`, `--shuffle` and `--trace` options
And delete '--warn-undefined-functions' option. This option was implemented
only in redhat's older make and the official gnu make has never supported it.
Use 'make -nqp' to ensure nothing is actually built by completion.
Also include some performance improvements, but it can be still
rather slow in a large project's source tree.
Using ".PHONY" might actually execute (phony) targets then, while
"--always-make" triggers processing of all targets, respecting `-n`
(`--dry-run`).
(This can be seen with `make -nsp .PHONY` in
https://github.com/neomake/neomake/tree/76b110d49a, where it actually
causes infinite processing then)
".PHONY" was used since the beginning here (37012f06a [1]).
As for bmake (which also uses `.PHONY`): there does not appear to be a
similar option for it.
While it might work better there (i.e. not causing targets to be run),
it causes an error at least when testing it quickly - which indicates
that it behaves as if using any other non-existing (or special) target
there maybe:
> bmake: don't know how to make .PHONY. Stop
This was added in ecc0a5ece [2] (workers-39654).
Since it uses `-s -f "$file" -V.ALLTARGETS` with `bmake` before to get
targets explicitly, there might not be a reason for calling `bmake` with
`-nsdg1Fstdout … .PHONY` additionally in the first place?!
1: https://github.com/danielshahaf/zsh/commit/37012f06a
2: https://github.com/danielshahaf/zsh/commit/ecc0a5ece
The use case is completing files that are actual targets, generated
using $(wildcard …).
Q: Could this be made to only complete files if make targets and vars
are empty?
"|" is now found properly by looking for words that come
from the lexical analyser, rather than hacking a pattern
returned in one dollop.
Update some completion functions that need extra quoting
as a result.
Add test for new parsing.
Update version number to 5.0.8-dev-3 because of wordcode
incompatibility.
ake care of mutually exclusive options.
Add _description using $state_descr.
Add completions for --debug=flag.
Fix typo (pointed out by Daniel Shahaf).
of awk or perl. That function has been enhanced to follow includes
and to expand variables (which makes a target such as foo$(EXEEXT)
expand into the right executable extention for the current system).