libffi build logic is quite spread out
The rules for building libffi are in
Rules.Libffi and at a first glance they just use the normal
Make builder in order to build the project. However, if one looks carefully, you actually need to run
make install so the normal
Make builder has an argument appended in
The problem here is that the two modules are completely unrelated to each other. In order to discover this I had to wonder why the build was failing to copy a file and then by chance guess that it wasn't running
make install. I think grepped for
"install" and managed to find this additional rule.
Is there a way to move this logic into one place? I considered two possibilities but it didn't seem to be "how things are done".
- Modify the
Makebuilder to take an additional argument which indicates whether to add the
- Move the override of
Makefor libffi into
Rules.Libffiand then import it into
Settings.Builders.Make. This seems better but you still not entirely obvious what is going on.
Do the hadrian experts have any opinion on this?