1 # 2 # Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 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 23 # questions. 24 # 25 26 ################################################################################ 27 # Build tools needed for the JFR source code generation 28 29 JFR_TOOLS_SRCDIR := $(TOPDIR)/make/src/classes 30 JFR_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/tools/jfr 31 32 $(eval $(call SetupJavaCompiler, GENERATE_JFRBYTECODE, \ 33 JAVAC := $(JAVAC), \ 34 FLAGS := $(DISABLE_WARNINGS), \ 35 SERVER_DIR := $(SJAVAC_SERVER_DIR), \ 36 SERVER_JVM := $(SJAVAC_SERVER_JAVA), \ 37 DISABLE_SJAVAC := true, \ 38 )) 39 40 $(eval $(call SetupJavaCompilation, BUILD_JFR_TOOLS, \ 41 SETUP := GENERATE_JFRBYTECODE, \ 42 SRC := $(JFR_TOOLS_SRCDIR), \ 43 BIN := $(JFR_TOOLS_OUTPUTDIR), \ 44 INCLUDES := build/tools/jfr, \ 45 )) 46 47 TARGETS += $(BUILD_JFR_TOOLS) 48 49 ################################################################################ 50 # Setup make rules for JFR gensrc file generation. 51 # 52 TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(JFR_TOOLS_OUTPUTDIR) build.tools.jfr.GenerateJfrFiles 53 54 JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles 55 JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata 56 57 # Changing these will trigger a rebuild of generated jfr files. 58 METADATA_XML := $(JFR_SRCDIR)/metadata.xml 59 METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd 60 61 $(JFR_OUTPUTDIR)/jfrEventClasses.hpp: $(METADATA_XML) $(METADATA_XSD) \ 62 $(BUILD_JFR_TOOLS) 63 $(call LogInfo, Generating $(@F)) 64 $(call MakeDir, $(@D)) 65 $(call ExecuteWithLog, $@, $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR)) 66 test -f $@ 67 68 TARGETS += $(JFR_OUTPUTDIR)/jfrEventClasses.hpp