8218807: Compilation database (compile_commands.json) may contain obsolete items
Reviewed-by: ihse, erikj
--- a/make/Main.gmk Tue Feb 12 14:08:07 2019 -0800
+++ b/make/Main.gmk Tue Feb 12 08:40:43 2019 +0100
@@ -766,6 +766,8 @@
$(foreach m, $(GENSRC_MODULES), $(eval $m-libs-compile-commands: $m-gensrc))
$(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs-compile-commands: $m-java))
+ $(COMPILE_COMMANDS_TARGETS_HOTSPOT): clean-compile-commands
+ $(COMPILE_COMMANDS_TARGETS_JDK): clean-compile-commands
compile-commands-hotspot: $(COMPILE_COMMANDS_TARGETS_HOTSPOT)
compile-commands: $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
@@ -1139,6 +1141,9 @@
clean-docs:
$(call CleanDocs)
+clean-compile-commands:
+ $(call CleanMakeSupportDir,compile-commands)
+
$(CLEAN_DIR_TARGETS):
$(call CleanDir,$(patsubst clean-%, %, $@))
@@ -1181,9 +1186,9 @@
)
$(ECHO) Cleaned everything, you will have to re-run configure.
-ALL_TARGETS += clean clean-docs dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \
- $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \
- $(CLEAN_MODULE_PHASE_TARGETS)
+ALL_TARGETS += clean clean-docs clean-compile-commands dist-clean $(CLEAN_DIR_TARGETS) \
+ $(CLEAN_SUPPORT_DIR_TARGETS) $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) \
+ $(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS)
################################################################################
# Declare *-only targets for each normal target
--- a/make/MainSupport.gmk Tue Feb 12 14:08:07 2019 -0800
+++ b/make/MainSupport.gmk Tue Feb 12 08:40:43 2019 +0100
@@ -54,6 +54,13 @@
@$(PRINTF) " done\n"
endef
+define CleanMakeSupportDir
+ @$(PRINTF) "Cleaning $(strip $1) make support artifacts ..."
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
+ @$(PRINTF) " done\n"
+endef
+
define CleanTest
@$(PRINTF) "Cleaning test $(strip $1) ..."
@$(PRINTF) "\n" $(LOG_DEBUG)