RFR: JDK-8244757 Introduce SetupTarget in Main.gmk
Erik Joelsson
erik.joelsson at oracle.com
Tue May 12 12:52:55 UTC 2020
On 2020-05-12 00:35, Magnus Ihse Bursie wrote:
> On 2020-05-11 19:42, Magnus Ihse Bursie wrote:
>> On 2020-05-11 18:16, Magnus Ihse Bursie wrote:
>>> To be able to support JDK-8244410, we need to have a better way to
>>> handle dependencies. For this reason, the macro SetupTarget is
>>> introduced. It will take as input everything that is needed to
>>> create a top-level target in Main.gmk.
>>>
>>> As a positive side-effect, it will finally once again be possible to
>>> list the dependencies for a rule together with the recipe, fixing a
>>> shortcoming that has plagues Main.gmk for a long time.
>>>
>>> In this patch, I create a trivial version of SetupTarget, and switch
>>> trivial recipes to use this function. By this, I mean recipes that
>>> just delegate to another makefile, possible setting a specific
>>> target and/or make arguments. Specifically, this excludes generated
>>> target patterns, as for the module phases.
>>>
>>> Trivial dependencies are also moved into this function. By this, I
>>> mean "literal" dependencies. Dependencies that are calculated using
>>> variables or macros might change if they are moved around in the
>>> file, and need a more thorough analysis before they can be moved.
>>>
>>> My intention is to continue moving targets in Main.gmk into the
>>> scope of SetupTarget, but to avoid regressions and difficult code
>>> reviews, I will do this step by step.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8244757
>>> WebRev:
>>> http://cr.openjdk.java.net/~ihse/JDK-8244757-introduce-SetupTarget/webrev.01
>>
>> ... aaaaaand I forgot to add the TARGET argument after I split it out
>> from ARGS. MainSupport.gmk is updated:
>>
>> http://cr.openjdk.java.net/~ihse/JDK-8244757-introduce-SetupTarget/webrev.02/
>>
> And even this version was buggy. I apologize for the rushed work, it
> was definitely not up to my normal standard. :-(
>
> Here's yet another version. This one fixes cross-compilation. And, as
> Erik made me aware off-list, it adds the conditional for evaluating
> dependencies in SetupTarget.
>
> http://cr.openjdk.java.net/~ihse/JDK-8244757-introduce-SetupTarget/webrev.04
>
>
> Third time's a charm, they say.
>
Looks good. Missed indentation at the top of SetupTargetBody.
/Erik
More information about the build-dev
mailing list