[build] Ensure make world
builds all targets present in make install
#14233
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It is important to ensure a phase separation of
make world
andmake install
as this last one may be called usingsudo
in some contextsand thus create build objects under the root user, which leads to
disaster usually.
In order to fix that quickly, we just extend the
world
target to becomprehensive.
Note that dune upstream enforced this by forbidding
dune install
tobuild anything, but there is a bit more convenient as the
foo.install
file depends on all the objects to installed already byconstruction.
We should follow a similar path in our make wrappers, but that would
require a bit of rewrite / design, with given the status of the code
may not be a bad idea as it has gotten to a point where cleanup would
be nice.
Fixes #14228 , keeping #14232 open as to try to improve install
locations a little bit for 8.14, tho the issue is subtle.