Makefile: setup: fix missing dependencies. #388
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.
The Makefile was using a "Match-Anything Pattern Rule" (see https://www.gnu.org/software/make/manual/html_node/Match_002dAnything-Rules.html) as a hand-wavy way of calling target rules into the caravel repository.
Despite the fact this rule depends on 'check-caravel', there was no actual dependency on the caravel repository being fully cloned. Indeed, when the
install
rule was called (the one cloning caravel), the directorycaravel
is created as one of the first step, but actual checkouts of the files within that repository is delayed after full cloning and compression of the repository. As such, any rule dependending on the caravel Makefile could fail.In order to clean this up a little:
The ambiguous rule 'install' was renamed to 'install_caravel'
The "Match-Anything Pattern Rule" is removed in favour of a more explicit rule, still using pattern matching, and depending explicitly on
install_caravel
, enforcing the latter has finished before the former starts.The Makefile definitely would need a bit of love at this point though... so this is just temporary band-aid in the hope it'd be useful for the next person hitting this problem.