Help with build changes for: 8214796: Create a jlink plugin for stripping debug info symbols from native libraries

Severin Gehwolf sgehwolf at redhat.com
Mon Jan 28 09:24:13 UTC 2019


On Fri, 2019-01-25 at 09:17 -0800, Erik Joelsson wrote:
> Hello Severin,
> To get the conditional running of either MergeProperties or copy, I
> would do something like this:
>   $$($1_TARGET): $$($1_DEPS)
>         $$(call MakeTargetDir) 
>         ifneq ($$($1_NUM_INPUT_FILES),1)
>           $$(call LogInfo, Merging $$(words $$($1_INPUT_FILES))
> properties files into a single properties file for jdk.jlink)
>           $(TOOL_MERGE_PROPERTIES) \
>               $(GENERATED_JLINK_RESOURCES_DIR)/$$($1_PROP).properties
> \
>               $$($1_INPUT_FILES)
>         else
>           $$(call LogInfo, Copying $$(patsubst
> $(OUTPUTDIR)/%,%,$$@)))
>           $$(call install-file)
>         endif
> 
>   $1 := $$($1_TARGET)
> 
> Note that the make conditional lines need to be indented with space
> while the recipe lines (including the $$(call )) needs to be tabbed.
> We still like them to align though, assuming 8 spaces tabs.
> Down in the call loop, the first argument to SetupPropertiesMerge
> must be unique. This can be achieved with MERGE_JLINK_PROPS_$(prop).
> Then add a line like this last in the loop:
> $(eval TARGETS += $(MERGE_JLINK_PROPS_$(prop)))
> To find all the src dirs for the jlink module, there are helper
> macros in make/common/Modules.gmk.
> JLINK_RESOURCE_DIRS := $(addsuffix /jdk/tools/jlink/resources, $(call
> FindModuleSrcDirs, jdk.jlink))
> In the loop I would recommend reusing the already built list of all
> properties files instead of calling find again. Also, if all
> properties files in the resource dir are in the same directory with
> no sub directories, then please consider using $(wildcard ) to find
> them as that's much less taxing on Windows.
> Hope this helps!
> /Erik

OK. Thanks very much!

Looks like this might not be needed after all.

Cheers,
Severin

> On 2019-01-25 07:27, Severin Gehwolf wrote:
> > Hi,
> > 
> > I'm working on an enhancement for jlink. In particular a platform
> > specific plugin. I.e. It would only get built on unix/linux
> > platforms.
> > My trouble is getting some resouce properties set up properly. In
> > my
> > example there is two versions of plugins.properties: one in
> > shared/classes one in unix/classes. These, need to get merged into
> > one
> > via the MergeProperties build tool class. So far so good. But for
> > the
> > cases where there is only one resource property it should just get
> > copied to support/gensrc and that source root be used for compiling
> > those properties into actual ListResourceBundle Java classes.
> > 
> > The copying from the src tree to the gensrc tree doesn't seem to
> > work.
> > I've tried using $(CP) and SetupCopyFiles to no avail. Would
> > anybody
> > willing to help?
> > 
> > WIP webrev is:
> > 
http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8214796-wip/01/webrev/
> > 
> > I thought I'd do the copying in an else branch in
> > SetupPropertiesMerge,
> > where I've put in a FIXME comment. Am I on the wrong track?
> > 
> > Thanks,
> > Severin
> > 




More information about the build-dev mailing list