|
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