Home | History | Annotate | Line # | Download | only in unit-tests
shell-csh.mk revision 1.6
      1 # $NetBSD: shell-csh.mk,v 1.6 2020/12/10 21:09:58 rillig Exp $
      2 #
      3 # Tests for using a C shell for running the commands.
      4 
      5 CSH!=	which csh || 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 execve directly.
     10 .if ${CSH} != ""
     11 .SHELL: name="csh" path="${CSH}"
     12 .endif
     13 
     14 # In parallel mode, the shell->noPrint command is filtered from
     15 # the output, rather naively (in JobOutput).
     16 #
     17 # Until 2020-10-03, the output in parallel mode was garbled because
     18 # the definition of the csh had been wrong since 1993 at least.
     19 .MAKEFLAGS: -j1
     20 
     21 all:
     22 .if ${CSH} != ""
     23 	# This command is both printed and executed.
     24 	echo normal
     25 
     26 	# This command is only executed.
     27 	@echo hidden
     28 
     29 	# This command is both printed and executed.
     30 	+echo always
     31 
     32 	# This command is both printed and executed.
     33 	-echo ignore errors
     34 
     35 	# In the C shell, "unset verbose" is set as the noPrint command.
     36 	# Therefore it is filtered from the output, rather naively.
     37 	@echo 'They chatted in the sunset verbosely.'
     38 .else
     39 	@sed '$$d' ${MAKEFILE:.mk=.exp}	# This is cheated.
     40 .endif
     41