1 1.3 rillig # $NetBSD: opt-jobs.mk,v 1.3 2023/09/10 11:00:55 rillig Exp $ 2 1.1 rillig # 3 1.3 rillig # Tests for the -j command line option, which creates the targets in parallel. 4 1.1 rillig 5 1.1 rillig 6 1.3 rillig # The option '-j <integer>' specifies the number of targets that can be made 7 1.3 rillig # in parallel. 8 1.3 rillig ARGS= 0 1 2 8 08 0x10 -5 1000 9 1.3 rillig EXPECT.0= illegal argument to -j -- must be positive integer! exit 2 10 1.3 rillig EXPECT.1= 1 11 1.3 rillig EXPECT.2= 2 12 1.3 rillig EXPECT.8= 8 13 1.3 rillig EXPECT.08= illegal argument to -j -- must be positive integer! exit 2 14 1.3 rillig EXPECT.0x10= 16 15 1.3 rillig EXPECT.-5= illegal argument to -j -- must be positive integer! exit 2 16 1.3 rillig EXPECT.1000= 1000 17 1.3 rillig 18 1.3 rillig .for arg in ${ARGS} 19 1.3 rillig OUTPUT!= ${MAKE} -r -f /dev/null -j ${arg} -v .MAKE.JOBS 2>&1 || echo exit $$? 20 1.3 rillig . if ${OUTPUT:[2..-1]} != ${EXPECT.${arg}} 21 1.3 rillig . warning ${arg}:${.newline} have: ${OUTPUT:[2..-1]}${.newline} want: ${EXPECT.${arg}} 22 1.3 rillig . endif 23 1.3 rillig .endfor 24 1.3 rillig 25 1.3 rillig 26 1.3 rillig # The options '-j <float>' and '-j <integer>C' multiply the given number with 27 1.3 rillig # the number of available CPUs. 28 1.3 rillig ARGS= 0.0 .5 .5C 1C 1CPUs 1.2 .5e1C 07.5C 08.5C 29 1.3 rillig EXPECT.0.0= illegal argument to -j -- must be positive integer! exit 2 30 1.3 rillig EXPECT..5= <integer> # rounded up to 1 if necessary 31 1.3 rillig EXPECT..5C= <integer> # rounded up to 1 if necessary 32 1.3 rillig EXPECT.1C= <integer> 33 1.3 rillig EXPECT.1CPUs= <integer> 34 1.3 rillig EXPECT.1.2= <integer> 35 1.3 rillig EXPECT..5e1C= <integer> # unlikely to occur in practice 36 1.3 rillig EXPECT.07.5C= <integer> 37 1.3 rillig EXPECT.08.5C= illegal argument to -j -- must be positive integer! exit 2 38 1.3 rillig 39 1.3 rillig .if ${.MAKE.JOBS.C} 40 1.3 rillig . for arg in ${ARGS} 41 1.3 rillig OUTPUT!= ${MAKE} -r -f /dev/null -j ${arg} -v .MAKE.JOBS 2>&1 || echo exit $$? 42 1.3 rillig . if ${OUTPUT:C,^[0-9]+$,numeric,W} == numeric 43 1.3 rillig OUTPUT= <integer> 44 1.3 rillig . endif 45 1.3 rillig . if ${OUTPUT:[2..-1]} != ${EXPECT.${arg}} 46 1.3 rillig . warning ${arg}:${.newline} have: ${OUTPUT:[2..-1]}${.newline} want: ${EXPECT.${arg}} 47 1.3 rillig . endif 48 1.3 rillig . endfor 49 1.3 rillig .endif 50 1.3 rillig 51 1.3 rillig all: .PHONY 52