Home | History | Annotate | Line # | Download | only in unit-tests
      1 # $NetBSD: deptgt-delete_on_error.mk,v 1.4 2023/06/01 20:56:35 rillig Exp $
      2 #
      3 # Tests for the special target .DELETE_ON_ERROR in dependency declarations,
      4 # which controls whether the target is deleted if a shell command fails or
      5 # is interrupted.
      6 #
      7 # In compatibility mode, regular and phony targets are deleted, but precious
      8 # targets are preserved.
      9 #
     10 # In parallel mode, regular targets are deleted, while phony and precious
     11 # targets are preserved.
     12 #
     13 # See also:
     14 #	CompatDeleteTarget
     15 #	JobDeleteTarget
     16 
     17 THIS=		deptgt-delete_on_error
     18 TARGETS=	${THIS}-regular ${THIS}-regular-delete
     19 TARGETS+=	${THIS}-phony ${THIS}-phony-delete
     20 TARGETS+=	${THIS}-precious ${THIS}-precious-delete
     21 
     22 all:
     23 	@rm -f ${TARGETS}
     24 	@echo 'Compatibility mode'
     25 	@-${.MAKE} -f ${MAKEFILE} -k ${TARGETS}
     26 	@rm -f ${TARGETS}
     27 	@echo
     28 	@echo 'Parallel mode'
     29 	@-${.MAKE} -f ${MAKEFILE} -k -j1 ${TARGETS}
     30 	@rm -f ${TARGETS}
     31 
     32 ${THIS}-regular{,-delete}:
     33 	> ${.TARGET}; false
     34 
     35 ${THIS}-phony{,-delete}: .PHONY
     36 	> ${.TARGET}; false
     37 
     38 ${THIS}-precious{,-delete}: .PRECIOUS
     39 	> ${.TARGET}; false
     40 
     41 # The special target .DELETE_ON_ERROR is a global setting.
     42 # It does not apply to single targets.
     43 # The following line is therefore misleading but does not generate any
     44 # warning or even an error message.
     45 .DELETE_ON_ERROR: ${TARGETS:M*-delete}
     46