shell-ksh.mk revision 1.2 1 # $NetBSD: shell-ksh.mk,v 1.2 2025/06/05 21:56:54 rillig Exp $
2 #
3 # Tests for using a Korn shell for running the commands.
4
5 KSH!= which ksh 2> /dev/null || true
6
7 # The shell path must be an absolute path.
8 # This is only obvious in parallel mode since in compat mode,
9 # simple commands are executed via execvp directly.
10 .if ${KSH} != ""
11 .SHELL: name="ksh" path="${KSH}"
12 .endif
13
14 # In parallel mode, the shell->noPrint command is filtered from
15 # the output, rather naively (in PrintOutput).
16 .MAKEFLAGS: -j1
17
18 all:
19 .if ${KSH} != ""
20 # This command is both printed and executed.
21 echo normal
22
23 # This command is only executed.
24 @echo hidden
25
26 # This command is both printed and executed.
27 +echo always
28
29 # This command is both printed and executed.
30 -echo ignore errors
31
32 # In the Korn shell, "set +v" is set as the noPrint command.
33 # Therefore, it is filtered from the output, rather naively.
34 # FIXME: Don't assume a newline character in PrintFilteredOutput.
35 # expect: The "is filtered out.
36 @echo 'The "set +v" is filtered out.'
37 .else
38 @sed '$$d' ${MAKEFILE:.mk=.exp} # This is cheated.
39 .endif
40