On 7/03/2017 6:32 AM, Christian Thalinger wrote:

On Mar 6, 2017, at 8:51 AM, Christian Thalinger <cthalin...@twitter.com> wrote:


On Mar 3, 2017, at 4:09 PM, David Holmes <david.hol...@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?


Reply via email to