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