|
5 | 5 | # SPDX-License-Identifier: MIT
|
6 | 6 |
|
7 | 7 | import os
|
| 8 | +import multiprocessing |
8 | 9 | import sys
|
9 | 10 | import subprocess
|
10 | 11 | import shutil
|
|
27 | 28 |
|
28 | 29 | languages = build_info.get_languages()
|
29 | 30 | exit_status = 0
|
| 31 | +cores = multiprocessing.cpu_count() |
| 32 | +print('building boards with parallelism {}'.format(cores)) |
30 | 33 | for board in build_boards:
|
31 | 34 | bin_directory = "../bin/{}/".format(board)
|
32 | 35 | os.makedirs(bin_directory, exist_ok=True)
|
|
41 | 44 | # But sometimes a particular language needs to be built from scratch, if, for instance,
|
42 | 45 | # CFLAGS_INLINE_LIMIT is set for a particular language to make it fit.
|
43 | 46 | clean_build_check_result = subprocess.run(
|
44 |
| - "make -C ../ports/{port} TRANSLATION={language} BOARD={board} check-release-needs-clean-build | fgrep 'RELEASE_NEEDS_CLEAN_BUILD = 1'".format( |
45 |
| - port = board_info["port"], language=language, board=board), |
| 47 | + "make -C ../ports/{port} TRANSLATION={language} BOARD={board} check-release-needs-clean-build -j {cores} | fgrep 'RELEASE_NEEDS_CLEAN_BUILD = 1'".format( |
| 48 | + port = board_info["port"], language=language, board=board, cores=cores), |
46 | 49 | shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
47 | 50 | clean_build = clean_build_check_result.returncode == 0
|
48 | 51 |
|
|
51 | 54 | build_dir += "-{language}".format(language=language)
|
52 | 55 |
|
53 | 56 | make_result = subprocess.run(
|
54 |
| - "make -C ../ports/{port} TRANSLATION={language} BOARD={board} BUILD={build}".format( |
55 |
| - port = board_info["port"], language=language, board=board, build=build_dir), |
| 57 | + "make -C ../ports/{port} TRANSLATION={language} BOARD={board} BUILD={build} -j {cores}".format( |
| 58 | + port = board_info["port"], language=language, board=board, build=build_dir, cores=cores), |
56 | 59 | shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
57 | 60 |
|
58 | 61 | build_duration = time.monotonic() - start_time
|
|
0 commit comments