11 lines
552 B
Plaintext
11 lines
552 B
Plaintext
|
# Macros to constrain resource use during the build process
|
||
|
|
||
|
# m: memory limit in MBs per core; default is 1024
|
||
|
%limit_build(m:) \
|
||
|
_mem_per_process="%{-m:%{-m*}}%{!-m:1024}" \
|
||
|
_max_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo) \
|
||
|
_max_jobs="$(($_max_mem / ($_mem_per_process * 1024)))" \
|
||
|
_cur_max_jobs="%{_smp_build_ncpus}" \
|
||
|
test "${_cur_max_jobs}" -gt "${_max_jobs}" && _cur_max_jobs="${_max_jobs}" && echo "Warning: Reducing build parallelism to -j${_max_jobs} because of memory limits" \
|
||
|
%global _smp_build_ncpus "${_cur_max_jobs}"
|