What to pass to --with-custom-make-dir?
David Holmes
david.holmes at oracle.com
Tue Mar 7 02:22:45 UTC 2017
On 7/03/2017 6:32 AM, Christian Thalinger wrote:
>
>> On Mar 6, 2017, at 8:51 AM, Christian Thalinger <cthalinger at twitter.com> wrote:
>>
>>
>>> On Mar 3, 2017, at 4:09 PM, David Holmes <david.holmes at oracle.com> wrote:
>>>
>>> Hi Christian,
>>>
>>> I think you need to pass an absolute directory, in which all the custom files, regardless of repo, are located. That is essentially how we use it - jdk/make/closed has files included from other repos. Of course that only works if names are unique.
>>
>> Absolute directory to where? Is $(CUSTOM_MAKE_DIR)/lib/ServiceabilityLibraries.gmk not under jdk/make/closed?
>
> After reading your message a couple of times :-) I got it. Basically pass /repo/make/closed and have all files there.
It has to be an absolute directory somewhere, not relative to whatever
the current make command is executing. So it could be
/repo/jdk/make/closed if you wanted it to be.
> But why? That doesn’t make any sense since there is a jdk/make/closed directory.
IIRC this was initially a mechanism for customizing jdk/make files, then
another part of the forest also wanted a "closed" custom file and so it
was "enhanced" to allow that. In 9 of course this is all handled
completely differently now.
David
>>
>>>
>>> David
>>>
>>> On 4/03/2017 9:11 AM, Rob McKenna wrote:
>>>> Hi Christian,
>>>>
>>>> I'm cc'ing build-dev (and bcc'ing jdk8u-dev) as that may be a more appropriate
>>>> venue for this discussion.
>>>>
>>>> -Rob
>>>>
>>>> On 03/03/17 10:19, Christian Thalinger wrote:
>>>>> At Twitter we are using the custom extension mechanism to separate our additional code from upstream in order to minimize conflicts. Yesterday I wanted to add a custom extension for:
>>>>>
>>>>> jdk/make/lib/ServiceabilityLibraries.gmk
>>>>>
>>>>> which has this include directive:
>>>>>
>>>>> # Include custom extensions if available.
>>>>> -include $(CUSTOM_MAKE_DIR)/lib/ServiceabilityLibraries.gmk
>>>>>
>>>>> We are already using the mechanism for top-level make files, e.g. make/Main.gmk:
>>>>>
>>>>> # Include the corresponding custom file, if present.
>>>>> -include $(CUSTOM_MAKE_DIR)/Main.gmk
>>>>>
>>>>> and we a configuring with:
>>>>>
>>>>> --with-custom-make-dir=make/closed
>>>>>
>>>>> This works fine for make/ but not for jdk/make/:
>>>>>
>>>>> $ make jdk CUSTOM_MAKE_DIR=make/closed
>>>>> …
>>>>>
>>>>> ## Starting jdk
>>>>> lib/ServiceabilityLibraries.gmk:27: make/closed/lib/ServiceabilityLibraries.gmk: No such file or directory
>>>>> make[2]: *** No rule to make target `make/closed/lib/ServiceabilityLibraries.gmk'. Stop.
>>>>> make[1]: *** [libs-only] Error 2
>>>>> make: *** [jdk-only] Error 2
>>>>>
>>>>> (I changed "-include" to “include” to provoke the error.)
>>>>>
>>>>> jdk/make/ files expect CUSTOM_MAKE_DIR to be just “closed” but that doesn’t work for top-level:
>>>>>
>>>>> $ make jdk CUSTOM_MAKE_DIR=closed
>>>>> /Users/cthalinger/twitter8//make/Main.gmk:35: closed/Main.gmk: No such file or directory
>>>>> make: *** No rule to make target `closed/Main.gmk'. Stop.
>>>>>
>>>>> How is this supposed to work?
>>
>
More information about the build-dev
mailing list