Home | History | Annotate | Line # | Download | only in unit-tests
      1 # $NetBSD: opt-jobs-internal.mk,v 1.6 2025/05/23 21:05:56 rillig Exp $
      2 #
      3 # Tests for the (intentionally undocumented) internal -J command line option.
      4 
      5 all: .PHONY
      6 	@${MAKE} -f ${MAKEFILE} -j1 direct
      7 	@${MAKE} -f ${MAKEFILE} -j1 direct-syntax
      8 	@${MAKE} -f ${MAKEFILE} -j1 direct-open
      9 	@${MAKE} -f ${MAKEFILE} -j1 indirect-open
     10 	@${MAKE} -f ${MAKEFILE} -j1 indirect-expr
     11 	@${MAKE} -f ${MAKEFILE} -j1 indirect-comment
     12 	@${MAKE} -f ${MAKEFILE} -j1 indirect-silent-comment
     13 	@${MAKE} -f ${MAKEFILE} -j1 indirect-expr-empty
     14 
     15 detect-mode: .PHONY
     16 	@mode=parallel
     17 	@echo ${HEADING}: mode=$${mode:-compat}
     18 
     19 # expect: direct: mode=parallel
     20 direct: .PHONY
     21 	@mode=parallel
     22 	@echo ${.TARGET}: mode=$${mode:-compat}
     23 
     24 # expect: make: error: invalid internal option "-J garbage" in "<curdir>"
     25 direct-syntax: .PHONY
     26 	@${MAKE} -f ${MAKEFILE} -J garbage unexpected-target || :
     27 
     28 # expect: direct-open: mode=compat
     29 direct-open: .PHONY
     30 	@${MAKE} -f ${MAKEFILE} -J 31,32 detect-mode HEADING=${.TARGET}
     31 
     32 # expect: indirect-open: mode=compat
     33 indirect-open: .PHONY
     34 	@${MAKE:U} -f ${MAKEFILE} detect-mode HEADING=${.TARGET}
     35 
     36 # When a command in its unexpanded form contains the expression "${MAKE}"
     37 # without any modifiers, the file descriptors get passed around.
     38 # expect: indirect-expr: mode=parallel
     39 indirect-expr: .PHONY
     40 	@${MAKE} -f ${MAKEFILE} detect-mode HEADING=${.TARGET}
     41 
     42 # The "# make" comment starts directly after the leading tab and is thus not
     43 # considered a shell command line. No file descriptors are passed around.
     44 # expect: indirect-comment: mode=compat
     45 indirect-comment: .PHONY
     46 	# make
     47 	@${MAKE:U} -f ${MAKEFILE} detect-mode HEADING=${.TARGET}
     48 
     49 # When the "# make" comment is prefixed with "@", it becomes a shell command.
     50 # As that shell command contains the plain word "make", the file descriptors
     51 # get passed around.
     52 # expect: indirect-silent-comment: mode=parallel
     53 indirect-silent-comment: .PHONY
     54 	@# make
     55 	@${MAKE:U} -f ${MAKEFILE} detect-mode HEADING=${.TARGET}
     56 
     57 # When a command in its unexpanded form contains the plain word "make", the
     58 # file descriptors get passed around.
     59 # expect: indirect-expr-empty: mode=parallel
     60 indirect-expr-empty: .PHONY
     61 	@${:D make}
     62 	@${MAKE:U} -f ${MAKEFILE} detect-mode HEADING=${.TARGET}
     63