Merged in minor/makefile_optimisation (pull request #451)
2f36f44·Author: David Dickinson·Closed by: Peter Hill·2021-05-24
Description
Don't export some local utilities.
Seems to significantly speed up the build process when building in parallel
Switch = to := in a couple of definitions
Put export in main makefile to make it clearer that we export everything.
These small changes sped up compilation on a local machine by around 25%
Not sure why, but it looks a bit like the unexport bits help improve concurrency so the gain depends a bit on how many cores you’re using to build. For this reason we don’t see a significant gain in the gitlab CI as the runners only use a single core.
We could start adding some more things to an unexport in the main Makefile (and then hopefully switch to just explicitly exporting the minimum required, rather than everything).
Don't export some local utilities.
Seems to significantly speed up the build process when building in parallel
Switch
=
to:=
in a couple of definitionsPut export in main makefile to make it clearer that we export everything.
These small changes sped up compilation on a local machine by around 25%
Not sure why, but it looks a bit like the
unexport
bits help improve concurrency so the gain depends a bit on how many cores you’re using to build. For this reason we don’t see a significant gain in the gitlab CI as the runners only use a single core.We could start adding some more things to an
unexport
in the main Makefile (and then hopefully switch to just explicitly exporting the minimum required, rather than everything).