]> git.tuebingen.mpg.de Git - paraslash.git/commit
build: Use .ONESHELL.
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 5 Aug 2017 22:55:50 +0000 (00:55 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 23 Dec 2018 01:07:53 +0000 (02:07 +0100)
commitece3b9ff875a28473a4f840bb016f8debb2531fc
tree4623947d89233dbf6a0d0d8aec37c1c37f44d085
parentf5c010bd27e131fca0c2ae58ebdde80e44655dcc
build: Use .ONESHELL.

This instructs "make" to pass all the lines in the recipe to a
single invocation of the shell. This has no disadvantage and improves
performance slightly. Best out of five "make -j 4" runs:

Before: 0m3.510s
After:  0m3.280s
Speedup: 6.55%

With .ONESHELL given, only the first line of each recipe will be
checked for the special '@' prefix character. This made it necessary
to modify the "Q" macro slightly. Rename it to "SAY" while at it.

The second issue with .ONESHELL is that a failure of any but the
final recipe line will not be noticed by make. To work around this,
we set .SHELLFLAGS to '-ec'. The '-e' flag instructs the shell to
exit at any failure anywhere in the command line.
Makefile.real
m4/lls/makefile
t/makefile.test