41 lines
1.1 KiB
Makefile
41 lines
1.1 KiB
Makefile
# $NetBSD: shell-csh.mk,v 1.8 2021/04/04 09:58:51 rillig Exp $
|
|
#
|
|
# Tests for using a C shell for running the commands.
|
|
|
|
CSH!= which csh 2> /dev/null || true
|
|
|
|
# The shell path must be an absolute path.
|
|
# This is only obvious in parallel mode since in compat mode,
|
|
# simple commands are executed via execve directly.
|
|
.if ${CSH} != ""
|
|
.SHELL: name="csh" path="${CSH}"
|
|
.endif
|
|
|
|
# In parallel mode, the shell->noPrint command is filtered from
|
|
# the output, rather naively (in PrintOutput).
|
|
#
|
|
# Until 2020-10-03, the output in parallel mode was garbled because
|
|
# the definition of the csh had been wrong since 1993 at least.
|
|
.MAKEFLAGS: -j1
|
|
|
|
all:
|
|
.if ${CSH} != ""
|
|
# This command is both printed and executed.
|
|
echo normal
|
|
|
|
# This command is only executed.
|
|
@echo hidden
|
|
|
|
# This command is both printed and executed.
|
|
+echo always
|
|
|
|
# This command is both printed and executed.
|
|
-echo ignore errors
|
|
|
|
# In the C shell, "unset verbose" is set as the noPrint command.
|
|
# Therefore it is filtered from the output, rather naively.
|
|
@echo 'They chatted in the sunset verbosely.'
|
|
.else
|
|
@sed '$$d' ${MAKEFILE:.mk=.exp} # This is cheated.
|
|
.endif
|