Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.5     sjg # $NetBSD: varname-dot-make-jobs.mk,v 1.5 2023/09/10 16:25:32 sjg Exp $
      2  1.1  rillig #
      3  1.3  rillig # Tests for the special .MAKE.JOBS variable, which is defined in jobs mode
      4  1.3  rillig # only.  There it contains the number of jobs that may run in parallel.
      5  1.1  rillig 
      6  1.3  rillig .MAIN: all
      7  1.3  rillig 
      8  1.3  rillig echo: .PHONY
      9  1.3  rillig 	@echo ${.MAKE.JOBS:Uundefined}
     10  1.1  rillig 
     11  1.1  rillig all:
     12  1.3  rillig 	@${MAKE} -r -f ${MAKEFILE} echo
     13  1.3  rillig 	@${MAKE} -r -f ${MAKEFILE} echo -j1
     14  1.3  rillig 	@${MAKE} -r -f ${MAKEFILE} echo -j5
     15  1.3  rillig 	@${MAKE} -r -f ${MAKEFILE} echo -j20
     16  1.3  rillig 	@${MAKE} -r -f ${MAKEFILE} echo -j00000000000000000000000000000001
     17  1.3  rillig 
     18  1.5     sjg .if !make(echo) && ${.MAKE.JOBS.C} == "yes"
     19  1.4     sjg # These results will not be static, we need NCPU
     20  1.4     sjg # to compute expected results.
     21  1.5     sjg all:	jC
     22  1.4     sjg 
     23  1.5     sjg NCPU!= ${MAKE} -r -f /dev/null -jC -V .MAKE.JOBS
     24  1.4     sjg 
     25  1.4     sjg # If -j arg is floating point or ends in C;
     26  1.4     sjg # .MAKE.JOBS is a multiple of _SC_NPROCESSORS_ONLN
     27  1.4     sjg # No news is good news here.
     28  1.4     sjg jCvals ?= 1 1.2 2
     29  1.4     sjg 
     30  1.4     sjg jC:
     31  1.4     sjg 	@for j in ${jCvals}; do \
     32  1.4     sjg 	e=`echo "${NCPU} * $$j" | bc | sed 's/\.[0-9]*//'`; \
     33  1.4     sjg 	g=`${MAKE} -r -f /dev/null -V .MAKE.JOBS -j$${j}C`; \
     34  1.4     sjg 	test $$g = $$e || echo "$$g != $$e"; \
     35  1.4     sjg 	done
     36  1.4     sjg 
     37  1.4     sjg .endif
     38  1.4     sjg 
     39  1.3  rillig # expect: undefined
     40  1.3  rillig # expect: 1
     41  1.3  rillig # expect: 5
     42  1.3  rillig # expect: 20
     43  1.4     sjg # expect: 1
     44