On Tue, 6 Sep 2022 13:19:48 GMT, Erik Joelsson <er...@openjdk.org> wrote:
>> Right, I confused `$?` and `$+`. You are of course correct, this is the way >> to get the changed targets. I had a bit of bad luck when I though about >> this. 😄 (Theoretically, we could filter out anything that is not in >> `$1_SRCS` from `$?` but that seems to more work than is reasonable.) > >> The `Depend` plugin will do a full build if a non-Java file is present in >> the list, which I hope should lead to a more reliable recompilation for some >> complex changes among the sources. > > Ah, I had missed that and that's clever! That also means there is a reason to > generate MODFILES in the actual compile recipe instead of the separate rule > as I suggested earlier. For this to be "safe" we need `$$?` to really contain > all the updated prereqs, otherwise we may miss compiling everything when > something external actually should make us do just that. ... and also that we *must* include the vardeps file, since any change there should trigger a complete rebuild. The logic here seems correct, but apparently somewhat hard to fully understand correctly. Maybe a few lines of comments summarizing the important points raised here would be a good thing? ------------- PR: https://git.openjdk.org/jdk/pull/10104