make/hotspot/gensrc/GensrcJfr.gmk
changeset 50266 8090a68b6af5
parent 50113 caf115bb98ad
child 51083 d2e182aa44c9
equal deleted inserted replaced
50265:6cd6af149326 50266:8090a68b6af5
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    23 # questions.
    24 #
    24 #
    25 
    25 
    26 $(eval $(call IncludeCustomExtension, hotspot/gensrc/GensrcJfr.gmk))
    26 ################################################################################
       
    27 # Build tools needed for the JFR source code generation
    27 
    28 
    28 ################################################################################
    29 JFR_TOOLS_SRCDIR := $(TOPDIR)/make/src/classes
    29 # Build tools needed for the Jfr source code generation
    30 JFR_TOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools/tools_classes
    30 
       
    31 JFR_TOOLS_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata
       
    32 JFR_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/tools/jfr
       
    33 
    31 
    34 $(eval $(call SetupJavaCompiler, GENERATE_JFRBYTECODE, \
    32 $(eval $(call SetupJavaCompiler, GENERATE_JFRBYTECODE, \
    35     JAVAC := $(JAVAC), \
    33     JAVAC := $(JAVAC), \
    36     FLAGS := $(DISABLE_WARNINGS), \
    34     FLAGS := $(DISABLE_WARNINGS), \
    37     SERVER_DIR := $(SJAVAC_SERVER_DIR), \
    35     SERVER_DIR := $(SJAVAC_SERVER_DIR), \
    40 ))
    38 ))
    41 
    39 
    42 $(eval $(call SetupJavaCompilation, BUILD_JFR_TOOLS, \
    40 $(eval $(call SetupJavaCompilation, BUILD_JFR_TOOLS, \
    43     SETUP := GENERATE_JFRBYTECODE, \
    41     SETUP := GENERATE_JFRBYTECODE, \
    44     SRC := $(JFR_TOOLS_SRCDIR), \
    42     SRC := $(JFR_TOOLS_SRCDIR), \
    45     INCLUDE_FILES := GenerateJfrFiles.java, \
       
    46     BIN := $(JFR_TOOLS_OUTPUTDIR), \
    43     BIN := $(JFR_TOOLS_OUTPUTDIR), \
    47 ))
    44 ))
    48 
    45 
    49 TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(JFR_TOOLS_OUTPUTDIR) GenerateJfrFiles
    46 TARGETS += $(BUILD_JFR_TOOLS)
    50 
    47 
    51 ################################################################################
    48 ################################################################################
    52 # Setup make rules for Jfr file file generation.
    49 # Setup make rules for JFR gensrc file generation.
    53 #
    50 #
    54 # Parameter 1 is the name of the rule. This name is used as variable prefix,
    51 TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(JFR_TOOLS_OUTPUTDIR) build.tools.jfr.GenerateJfrFiles
    55 # and the targets generated are listed in a variable by that name. This name is
       
    56 # also used as the name of the output file.
       
    57 #
       
    58 # Remaining parameters are named arguments. These include:
       
    59 #   XML_FILE -- The input source file to use
       
    60 #   XSD_FILE -- The input schema for validation
       
    61 #   OUTPUT_DIR -- The directory to put the generated file in
       
    62 SetupJfrGeneration = $(NamedParamsMacroTemplate)
       
    63 define SetupJfrGenerationBody
       
    64   $$($1_OUTPUT_DIR)/$1: $$($1_XML_FILE) $$($1_XSD_FILE) $$(BUILD_JFR_TOOLS)
       
    65 	$$(call LogInfo, Generating $$(@F))
       
    66 	$$(call MakeDir, $$(@D))
       
    67 	$$(call ExecuteWithLog, $$@, $$(TOOL_JFR_GEN) $$($1_XML_FILE) $$($1_XSD_FILE) $$($1_OUTPUT_DIR))
       
    68 	test -f $$@
       
    69 
       
    70   TARGETS += $$($1_OUTPUT_DIR)/$1
       
    71 
       
    72 endef
       
    73 
       
    74 ################################################################################
       
    75 # Create files in gensrc/jfrfiles
       
    76 
    52 
    77 JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles
    53 JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles
    78 JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata
    54 JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata
    79 
    55 
    80 METADATA_XML ?= $(JFR_SRCDIR)/metadata.xml
    56 # Changing these will trigger a rebuild of generated jfr files.
    81 METADATA_XSD ?= $(JFR_SRCDIR)/metadata.xsd
    57 METADATA_XML := $(JFR_SRCDIR)/metadata.xml
       
    58 METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd
    82 
    59 
    83 # Changing these will trigger a rebuild of generated jfr files.
    60 $(JFR_OUTPUTDIR)/jfrEventClasses.hpp: $(METADATA_XML) $(METADATA_XSD) \
    84 JFR_DEPS += \
    61     $(BUILD_JFR_TOOLS)
    85     $(METADATA_XML) \
    62 	$(call LogInfo, Generating $(@F))
    86     $(METADATA_XSD) \
    63 	$(call MakeDir, $(@D))
    87     #
    64 	$(call ExecuteWithLog, $@, $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR))
       
    65 	test -f $@
    88 
    66 
    89 # our generator will generate all files in one go, so only need to setup one target rule
    67 TARGETS += $(JFR_OUTPUTDIR)/jfrEventClasses.hpp
    90 $(eval $(call SetupJfrGeneration, jfrEventClasses.hpp, \
       
    91     XML_FILE := $(METADATA_XML), \
       
    92     XSD_FILE := $(METADATA_XSD), \
       
    93     OUTPUT_DIR := $(JFR_OUTPUTDIR), \
       
    94 ))