RFR: JDK-8244757 Introduce SetupTarget in Main.gmk

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue May 12 14:32:07 UTC 2020


On 2020-05-12 14:52, Erik Joelsson wrote:
> 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.
Oops. Thanks for catching that. Fixed before pushing.

/Magnus
>
> /Erik
>
>




More information about the build-dev mailing list