summaryrefslogtreecommitdiff
path: root/usr.bin/make
AgeCommit message (Collapse)Author
2023-07-01tests/make: show how to use indirect conditions in the '?:' modifierrillig
2023-06-28tests/make: extend test for the 'empty' function in conditionsrillig
2023-06-28make.1: clean up wording, clarify scope of '!' in conditionsrillig
2023-06-24make: remove redundant 'extern' in function declarationrillig
No binary change.
2023-06-23tests/make: explain and extend tests for expansion in .for loopsrillig
2023-06-23make: sync a comment with realityrillig
No binary change.
2023-06-23make: clean up variable and function namesrillig
No functional change.
2023-06-23make: reduce indentation in pattern matching coderillig
No functional change.
2023-06-23make: warn about malformed patterns in ':M', ':N' and '.if make(...)'rillig
These patterns shouldn't occur in practice, as their results are tricky to predict. Generate a warning for now, and maybe an error later. Reviewed by sjg@.
2023-06-23tests/make: sort missing 'expect' comments by their locationrillig
2023-06-22tests/make: demonstrate inconsistency in pattern matching with rangesrillig
2023-06-22make: unclutter string matching coderillig
2023-06-22make: rename variables in string matching, remove redundant coderillig
No functional change.
2023-06-22tests/make: fix line numbers in test result, since the previous commitrillig
2023-06-22make: speed up pattern matching in the ':M' and ':N' modifiersrillig
In the code coverage report, the highest count for Str_Match goes from 5,298,924 down to 79,646.
2023-06-22make: clean up comments related to pattern matchingrillig
2023-06-22make: merge common code for handling the ':M' and ':N' modifiersrillig
No functional change.
2023-06-21Cleanup guard testssjg
The .PARSEFILE:tA tests add no value, the correct form is ${.PARSEDIR:tA}/${.PARSEFILE} but even there :tA rarely matters.
2023-06-21make: skip a file protected by a multiple-inclusion guard more oftenrillig
In practice, the common situation is that a file is first included, defines its multiple-inclusion guard and is then skipped instead of being included again. The other way round is that the multiple-inclusion guard is defined when the file is included first. In that case, the file is now regarded as guarded as well.
2023-06-21tests/make: document how wildcards behave in a dependency declarationrillig
2023-06-21tests/make: clean up and extend tests for multiple-inclusion guardsrillig
Multiple-inclusion guards can be defined either as variables or as targets. Rename the variable tests so they include the word 'variable'. Add tests to cover special characters in guard names (both variable and target), just in case ParseVarnameGuard gets removed someday. Document the pitfalls associated with choosing a naming scheme for guards that leads to name clashes, such as with .PARSEFILE without .PARSEDIR.
2023-06-21tests/make: document a few testsrillig
2023-06-21Allow guard targets to use variables.sjg
I commonly use __${.PARSEDIR:tA}__ where a unique guard is needed, __${.PARSEDIR}__ is also useful in many cases. Combination of patch from rillig and mine
2023-06-20make: allow targets to be used as multiple-inclusion guardsrillig
This style is used by FreeBSD, among others.
2023-06-19tests/make: test triple negation in '.ifndef'rillig
2023-06-19make: sort files in coverage report alphabeticallyrillig
2023-06-19make: add tests for full code coverage of multiple-inclusion guardsrillig
2023-06-19make: clean up code for skipping files with multiple-inclusion guardrillig
No functional change.
2023-06-19Test that .undef of readOnly variable failssjg
2023-06-19make: if a makefile is protected by a guard, only include it oncerillig
"looks reasonable" sjg@
2023-06-18tests/make: clean up test for multiple-inclusion guardsrillig
2023-06-18tests/make: align variable name in test for multiple-inclusion guardsrillig
2023-06-18tests/make: extend test for multiple-inclusion guardsrillig
2023-06-16make: do not allow delete of readOnly variable.sjg
Sometimes we mark a variable readOnly to guard against .undef
2023-06-16tests/make: add test for multiple-inclusion guardsrillig
2023-06-16tests/make: clean up tests for the ':M' and ':S' modifiersrillig
2023-06-16make: remove parameter names from function declarationsrillig
No binary change.
2023-06-03bsd.own.mk: rename GCC_NO_* to CC_WNO_*lukem
Rename compiler-warning-disable variables from GCC_NO_warning to CC_WNO_warning where warning is the full warning name as used by the compiler. GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
2023-06-01tests/make: force line-based diagnostics to be listed in the testsrillig
This way, contradictions between the intended output and the actual output are closer together and have a better chance of being spotted.
2023-06-01make: add more details to debug logging of .for loopsrillig
2023-06-01make: shorten function names, clean up commentsrillig
No functional change.
2023-06-01tests/make: clean up comments, extend a few testsrillig
2023-06-01make: error out on a .break directive with argumentsrillig
2023-05-10Make :mtime operate on each word in variable value.sjg
Reviewed by: rillig
2023-05-10make: don't print null filename in stack tracesrillig
~~~makefile != printf '%s\n' '.include "2.mk"' > 1.mk != printf '%s\n' '!= rm 1.mk' '.info message' > 2.mk .MAKEFLAGS: -dp .include "1.mk" .MAKEFLAGS: -d0 all: ~~~
2023-05-10make: clean up commentsrillig
2023-05-10tests/make: clean up comments in testsrillig
2023-05-10tests/make: clean up tests for .for loopsrillig
Most of the tests from forloop.mk were already in directive-for.mk.
2023-05-09make: improve error message for failed stat in ':mtime'rillig
2023-05-09make: :mtime=error throw error on stat(2) failuresjg
Sometimes we want fatal error if stat fails on the presumed pathname.