1*98875883SSimon J. Gerraty# $NetBSD: varname-dot-make-jobs.mk,v 1.5 2023/09/10 16:25:32 sjg Exp $ 22c3632d1SSimon J. Gerraty# 39f45a3c8SSimon J. Gerraty# Tests for the special .MAKE.JOBS variable, which is defined in jobs mode 49f45a3c8SSimon J. Gerraty# only. There it contains the number of jobs that may run in parallel. 52c3632d1SSimon J. Gerraty 69f45a3c8SSimon J. Gerraty.MAIN: all 79f45a3c8SSimon J. Gerraty 89f45a3c8SSimon J. Gerratyecho: .PHONY 99f45a3c8SSimon J. Gerraty @echo ${.MAKE.JOBS:Uundefined} 102c3632d1SSimon J. Gerraty 112c3632d1SSimon J. Gerratyall: 129f45a3c8SSimon J. Gerraty @${MAKE} -r -f ${MAKEFILE} echo 139f45a3c8SSimon J. Gerraty @${MAKE} -r -f ${MAKEFILE} echo -j1 149f45a3c8SSimon J. Gerraty @${MAKE} -r -f ${MAKEFILE} echo -j5 159f45a3c8SSimon J. Gerraty @${MAKE} -r -f ${MAKEFILE} echo -j20 169f45a3c8SSimon J. Gerraty @${MAKE} -r -f ${MAKEFILE} echo -j00000000000000000000000000000001 179f45a3c8SSimon J. Gerraty 18*98875883SSimon J. Gerraty.if !make(echo) && ${.MAKE.JOBS.C} == "yes" 19*98875883SSimon J. Gerraty# These results will not be static, we need NCPU 20*98875883SSimon J. Gerraty# to compute expected results. 21*98875883SSimon J. Gerratyall: jC 22*98875883SSimon J. Gerraty 23*98875883SSimon J. GerratyNCPU!= ${MAKE} -r -f /dev/null -jC -V .MAKE.JOBS 24*98875883SSimon J. Gerraty 25*98875883SSimon J. Gerraty# If -j arg is floating point or ends in C; 26*98875883SSimon J. Gerraty# .MAKE.JOBS is a multiple of _SC_NPROCESSORS_ONLN 27*98875883SSimon J. Gerraty# No news is good news here. 28*98875883SSimon J. GerratyjCvals ?= 1 1.2 2 29*98875883SSimon J. Gerraty 30*98875883SSimon J. GerratyjC: 31*98875883SSimon J. Gerraty @for j in ${jCvals}; do \ 32*98875883SSimon J. Gerraty e=`echo "${NCPU} * $$j" | bc | sed 's/\.[0-9]*//'`; \ 33*98875883SSimon J. Gerraty g=`${MAKE} -r -f /dev/null -V .MAKE.JOBS -j$${j}C`; \ 34*98875883SSimon J. Gerraty test $$g = $$e || echo "$$g != $$e"; \ 35*98875883SSimon J. Gerraty done 36*98875883SSimon J. Gerraty 37*98875883SSimon J. Gerraty.endif 38*98875883SSimon J. Gerraty 399f45a3c8SSimon J. Gerraty# expect: undefined 409f45a3c8SSimon J. Gerraty# expect: 1 419f45a3c8SSimon J. Gerraty# expect: 5 429f45a3c8SSimon J. Gerraty# expect: 20 43*98875883SSimon J. Gerraty# expect: 1 44