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