make/linux/makefiles/jfr.make

Wed, 14 Oct 2020 17:44:48 +0800

author
aoqi
date
Wed, 14 Oct 2020 17:44:48 +0800
changeset 9931
fd44df5e3bc3
parent 9858
b985cbb00e68
permissions
-rw-r--r--

Merge

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

mercurial