# HG changeset patch # User ihse # Date 1549485096 -3600 # Node ID ba61956ea5982260f4f735645efc4045584ea598 # Parent 94ff48d6eee4cc64c2027ec20433b164e8fb51b2 Convert some more to SetupExecute. diff -r 94ff48d6eee4 -r ba61956ea598 make/common/Execute.gmk --- a/make/common/Execute.gmk Fri Feb 01 12:29:52 2019 +0100 +++ b/make/common/Execute.gmk Wed Feb 06 21:31:36 2019 +0100 @@ -42,8 +42,9 @@ # # Remaining parameters are named arguments. These include: # COMMAND : The command to execute +# POST_COMMAND: # OUTPUT_DIR : The directory that will contain the result from the command -# (OUTPUT_FILE : Use this if the command results in a single output file. (N/A)) +# OUTPUT_FILE : Use this if the command results in a single output file. # INFO : Message to display at LOG=info level when running command (optional). # DEPS : Dependencies for the execution to take place # @@ -55,26 +56,50 @@ $$(error COMMAND is missing in SetupExecute $1) endif - ifeq ($$($1_OUTPUT_DIR), ) - $$(error OUTPUT_DIR is missing in SetupExecute $1) - endif + $1_BASE := $$($1_OUTPUT_DIR)/_$1 + $1_MARKER := $$($1_BASE).marker ifeq ($$($1_INFO), ) $1_INFO := Running commands for $1 endif - $1_BASE := $$($1_OUTPUT_DIR)/_$1 - - $1_MARKER := $$($1_BASE).marker + ifeq ($$($1_OUTPUT_DIR)$$($1_OUTPUT_FILE), ) + $$(error OUTPUT_DIR or OUTPUT_FILE is required in SetupExecute $1) + endif - $$($1_MARKER): $$($1_DEPS) + ifneq ($$($1_OUTPUT_DIR), ) + ifneq ($$($1_OUTPUT_FILE), ) + $$(error Cannot specify both OUTPUT_DIR and OUTPUT_FILE in SetupExecute $1) + endif + $1_RESULT := $$($1_MARKER) + else + # If we have a single output file, we don't need a separate marker + $1_RESULT := $$($1_OUTPUT_FILE) + endif + + $$($1_RESULT): $$($1_DEPS) $$(call LogInfo, $$($1_INFO)) - $$(call MakeDir, $$($1_OUTPUT_DIR)) + $$(call MakeDir, $$(@D)) $$(call ExecuteWithLog, $$($1_BASE), \ $$($1_COMMAND)) + ifeq ($$($1_RESULT), $$($1_MARKER)) + $$(TOUCH) $$@ + endif + + # Export all our generated targets in $1, and the final target in $1_TARGET. + $1 := $$($1_RESULT) + $1_TARGET := $$($1_RESULT) + + ifneq ($$($1_POST_COMMAND), ) + $1_POST_MARKER := $$($1_BASE)_post.marker + + $$($1_POST_MARKER): $$($1_MARKER) + $$(call ExecuteWithLog, $$($1_BASE), \ + $$($1_POST_COMMAND)) $$(TOUCH) $$@ - # Export our generated targets in $1, and also $1_TARGET for clarity. - $1 := $$($1_MARKER) - $1_TARGET := $$($1) + $1 += $$($1_POST_MARKER) + $1_TARGET := $$($1_POST_MARKER) + endif + endef diff -r 94ff48d6eee4 -r ba61956ea598 make/hotspot/gensrc/GensrcDtrace.gmk --- a/make/hotspot/gensrc/GensrcDtrace.gmk Fri Feb 01 12:29:52 2019 +0100 +++ b/make/hotspot/gensrc/GensrcDtrace.gmk Wed Feb 06 21:31:36 2019 +0100 @@ -87,12 +87,14 @@ # Argument 1: Output filename # Argument 2: dtrace-gen-offset tool command line option define SetupDtraceOffsetsGeneration - $1: $$(BUILD_DTRACE_GEN_OFFSETS) - $$(call LogInfo, Generating dtrace $2 file $$(@F)) - $$(call MakeDir, $$(@D)) - $$(call ExecuteWithLog, $$@, ( $$(DTRACE_GEN_OFFSETS_TOOL) -$$(strip $2) > $$@ ) ) + $$(eval $$(call SetupExecute, dtrace_offset_$2, \ + INFO := Generating dtrace $2 file, \ + DEPS := $$(BUILD_DTRACE_GEN_OFFSETS), \ + OUTPUT_FILE := $1, \ + COMMAND := ( $$(DTRACE_GEN_OFFSETS_TOOL) -$$(strip $2) > $1 ), \ + )) - TARGETS += $1 + TARGETS += $$(dtrace_offset_$2_TARGET) endef JVM_OFFSETS_H := $(DTRACE_GENSRC_DIR)/JvmOffsets.h diff -r 94ff48d6eee4 -r ba61956ea598 make/hotspot/gensrc/GensrcJfr.gmk --- a/make/hotspot/gensrc/GensrcJfr.gmk Fri Feb 01 12:29:52 2019 +0100 +++ b/make/hotspot/gensrc/GensrcJfr.gmk Wed Feb 06 21:31:36 2019 +0100 @@ -57,11 +57,11 @@ METADATA_XML := $(JFR_SRCDIR)/metadata.xml METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd -$(JFR_OUTPUTDIR)/jfrEventClasses.hpp: $(METADATA_XML) $(METADATA_XSD) \ - $(BUILD_JFR_TOOLS) - $(call LogInfo, Generating $(@F)) - $(call MakeDir, $(@D)) - $(call ExecuteWithLog, $@, $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR)) - test -f $@ +$(eval $(call SetupExecute, jfr_gen, \ + INFO := Generating JFR header files, \ + DEPS := $(METADATA_XML) $(METADATA_XSD), \ + OUTPUT_DIR := $(JFR_OUTPUTDIR), \ + COMMAND := $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR), \ +)) -TARGETS += $(JFR_OUTPUTDIR)/jfrEventClasses.hpp +TARGETS += $(jfr_gen_TARGET) diff -r 94ff48d6eee4 -r ba61956ea598 make/hotspot/gensrc/GensrcJvmti.gmk --- a/make/hotspot/gensrc/GensrcJvmti.gmk Fri Feb 01 12:29:52 2019 +0100 +++ b/make/hotspot/gensrc/GensrcJvmti.gmk Wed Feb 06 21:31:36 2019 +0100 @@ -28,6 +28,7 @@ ################################################################################ # Build tools needed for the JVMTI source code generation +# FIXME: jvmtiGen.java should move to make/src, jvmtiEnvFill.java should be removed. JVMTI_TOOLS_SRCDIR := $(TOPDIR)/src/hotspot/share/prims JVMTI_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/tools/jvmti @@ -64,16 +65,17 @@ # DEPS -- Additional dependencies SetupXslTransform = $(NamedParamsMacroTemplate) define SetupXslTransformBody - $$($1_OUTPUT_DIR)/$1: $$($1_XML_FILE) $$($1_XSL_FILE) $$($1_DEPS) $$(BUILD_JVMTI_TOOLS) - $$(call LogInfo, Generating $$(@F)) - $$(call MakeDir, $$(@D)) - $$(call ExecuteWithLog, $$@, $$(TOOL_JVMTI_GEN) -IN $$($1_XML_FILE) \ - -XSL $$($1_XSL_FILE) -OUT $$@ $$($1_ARGS)) - # jvmtiGen does not return error code properly on fail. - # NOTE: We should really fix jvmtiGen.java instead. - test -f $$@ + $1_OUTPUT_FILE := $$($1_OUTPUT_DIR)/$1 - TARGETS += $$($1_OUTPUT_DIR)/$1 + $$(eval $$(call SetupExecute, jvmti_gen_$1, \ + INFO := Generating jvmti file $1, \ + DEPS := $$($1_XML_FILE) $$($1_XSL_FILE) $$($1_DEPS) $$(BUILD_JVMTI_TOOLS), \ + OUTPUT_FILE := $$($1_OUTPUT_FILE), \ + COMMAND := $$(TOOL_JVMTI_GEN) -IN $$($1_XML_FILE) \ + -XSL $$($1_XSL_FILE) -OUT $$($1_OUTPUT_FILE) $$($1_ARGS), \ + )) + + TARGETS += $$(jvmti_gen_$1_TARGET) endef ################################################################################ diff -r 94ff48d6eee4 -r ba61956ea598 make/hotspot/ide/CreateVSProject.gmk --- a/make/hotspot/ide/CreateVSProject.gmk Fri Feb 01 12:29:52 2019 +0100 +++ b/make/hotspot/ide/CreateVSProject.gmk Wed Feb 06 21:31:36 2019 +0100 @@ -144,14 +144,16 @@ VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \ $(VCPROJ_FILE).vardeps) - $(VCPROJ_FILE): $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE) - $(call MakeDir, $(@D)) - $(call ExecuteWithLog, $@, \ - $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \ - $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $@)) \ - $(LOG_INFO) + $(eval $(call SetupExecute, vcproj_file, \ + INFO := Generating Visual Studio project file, \ + DEPS := $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE), \ + OUTPUT_FILE := $(VCPROJ_FILE), \ + COMMAND := $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \ + $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $(VCPROJ_FILE))) \ + $(LOG_INFO), \ + )) - TARGETS += $(VCPROJ_FILE) + TARGETS += $(vcproj_file_TARGET) all: $(TARGETS)