xref: /freebsd/contrib/bmake/unit-tests/varname-dot-make-jobs.mk (revision 988758838533b24f5893b36514fe2c68a3f911a2)
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