1# 2# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 3# Copyright (c) 2018-2019, Azul Systems, Inc. All rights reserved. 4# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5# 6# This code is free software; you can redistribute it and/or modify it 7# under the terms of the GNU General Public License version 2 only, as 8# published by the Free Software Foundation. 9# 10# This code is distributed in the hope that it will be useful, but WITHOUT 11# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13# version 2 for more details (a copy is included in the LICENSE file that 14# accompanied this code). 15# 16# You should have received a copy of the GNU General Public License version 17# 2 along with this work; if not, write to the Free Software Foundation, 18# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19# 20# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21# or visit www.oracle.com if you need additional information or have any 22# questions. 23# 24# 25 26# This makefile (jfr.make) is included from the jfr.make in the 27# build directories. 28# 29# It knows how to build and run the tools to generate jfr. 30 31include $(GAMMADIR)/make/linux/makefiles/rules.make 32 33# ######################################################################### 34# Build tools needed for the Jfr source code generation 35 36TOPDIR = $(shell echo `pwd`) 37GENERATED = $(TOPDIR)/../generated 38 39JFR_TOOLS_SRCDIR := $(GAMMADIR)/src/share/vm/jfr 40JFR_TOOLS_OUTPUTDIR := $(GENERATED)/tools/jfr 41 42JFR_OUTPUTDIR := $(GENERATED)/jfrfiles 43JFR_SRCDIR := $(GAMMADIR)/src/share/vm/jfr/metadata 44 45METADATA_XML ?= $(JFR_SRCDIR)/metadata.xml 46METADATA_XSD ?= $(JFR_SRCDIR)/metadata.xsd 47 48# Changing these will trigger a rebuild of generated jfr files. 49JFR_DEPS += \ 50 $(METADATA_XML) \ 51 $(METADATA_XSD) \ 52 # 53 54JfrGeneratedNames = \ 55 jfrEventClasses.hpp \ 56 jfrEventControl.hpp \ 57 jfrEventIds.hpp \ 58 jfrPeriodic.hpp \ 59 jfrTypes.hpp 60 61JfrGenSource = $(JFR_TOOLS_SRCDIR)/GenerateJfrFiles.java 62JfrGenClass = $(JFR_TOOLS_OUTPUTDIR)/build/tools/jfr/GenerateJfrFiles.class 63 64JfrGeneratedFiles = $(JfrGeneratedNames:%=$(JFR_OUTPUTDIR/%) 65 66.PHONY: all clean cleanall 67 68# ######################################################################### 69 70all: $(JfrGeneratedFiles) 71 72$(JfrGenClass): $(JfrGenSource) 73 mkdir -p $(@D) 74 $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JFR_TOOLS_OUTPUTDIR) $(JfrGenSource) 75 76$(JFR_OUTPUTDIR)/jfrEventClasses.hpp: $(METADATA_XML) $(METADATA_XSD) $(JfrGenClass) 77 $(QUIETLY) echo Generating $(@F) 78 mkdir -p $(@D) 79 $(QUIETLY) $(REMOTE) $(RUN.JAVA) -cp $(JFR_TOOLS_OUTPUTDIR) build.tools.jfr.GenerateJfrFiles $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR) 80 test -f $@ 81 82$(filter-out $(JFR_OUTPUTDIR)/jfrEventClasses.hpp, $(JfrGeneratedFiles)): $(JFR_OUTPUTDIR)/jfrEventClasses.hpp 83 84TARGETS += $(JFR_OUTPUTDIR)/jfrEventClasses.hpp 85 86# ######################################################################### 87 88clean cleanall : 89 rm $(JfrGenClass) $(JfrGeneratedFiles) 90 91# ######################################################################### 92 93