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)/buildtools/tools_classes 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 )) 45 46 TARGETS += $(BUILD_JFR_TOOLS) 47 48 ################################################################################ 49 # Setup make rules for JFR gensrc file generation. 50 # 51 TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(JFR_TOOLS_OUTPUTDIR) build.tools.jfr.GenerateJfrFiles 52 53 JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles 54 JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata 55 56 # Changing these will trigger a rebuild of generated jfr files. 57 METADATA_XML := $(JFR_SRCDIR)/metadata.xml 58 METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd 59 60 $(JFR_OUTPUTDIR)/jfrEventClasses.hpp: $(METADATA_XML) $(METADATA_XSD) \ 61 $(BUILD_JFR_TOOLS) 62 $(call LogInfo, Generating $(@F)) 63 $(call MakeDir, $(@D)) 64 $(call ExecuteWithLog, $@, $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR)) 65 test -f $@ 66 67 TARGETS += $(JFR_OUTPUTDIR)/jfrEventClasses.hpp