diff options
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | erts/emulator/Makefile.in | 19 | ||||
-rw-r--r-- | make/run_make.mk | 2 |
3 files changed, 23 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in index 16bc7b1a3a..c1bf51664b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -529,6 +529,10 @@ preloaded: ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)"$${PATH}" \ $(MAKE) opt BUILD_ALL=true +compdb: + (cd erts/emulator && ERL_TOP=$(ERL_TOP) TYPE=$(TYPE) $(MAKE) compdb) + sed -i -e '1s/^/[\n/' -e '$$s/,$$/\n]/' $(ERL_TOP)/compile_commands.json + dep depend: $(make_verbose) $(V_at)test X"$$ERTS_SKIP_DEPEND" = X"true" || (cd erts/emulator && PATH=$(BOOT_PREFIX)"$${PATH}" ERL_TOP=$(ERL_TOP) $(MAKE) generate) diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in index 130951f5f7..17f06ab583 100644 --- a/erts/emulator/Makefile.in +++ b/erts/emulator/Makefile.in @@ -1265,9 +1265,10 @@ MG_FLAG=-MG endif DEP_CC=$(CC) -DEP_FLAGS=-MM $(MG_FLAG) $(CFLAGS) $(INCLUDES) \ +DEP_INCLUDES=$(INCLUDES) \ -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) \ -Inifs/common -Inifs/$(ERLANG_OSTYPE) +DEP_FLAGS=-MM $(MG_FLAG) $(CFLAGS) $(DEP_INCLUDES) SYS_SRC=$(ALL_SYS_SRC) endif @@ -1313,6 +1314,22 @@ endif $(V_at)cd $(ERTS_LIB_DIR) && $(MAKE) depend endif +COMPDB_CFLAGS=-MM $(filter-out -fno-tree-copyrename,$(CFLAGS)) $(DEP_INCLUDES) + +compdb: + clang -MJ $(TTF_DIR)/beam.json $(COMPDB_CFLAGS) $(BEAM_SRC) > /dev/null + clang -MJ $(TTF_DIR)/drv.json $(COMPDB_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(DRV_COMMON_SRC) > /dev/null + clang -MJ $(TTF_DIR)/drv_$(ERLANG_OSTYPE).json \ + $(COMPDB_CFLAGS) -I../etc/$(ERLANG_OSTYPE) $(DRV_OSTYPE_SRC) > /dev/null + clang -MJ $(TTF_DIR)/nif.json $(COMPDB_CFLAGS) $(NIF_COMMON_SRC) > /dev/null + clang -MJ $(TTF_DIR)/nif_$(ERLANG_OSTYPE).json \ + $(COMPDB_CFLAGS) -I../etc/$(ERLANG_OSTYPE) $(NIF_OSTYPE_SRC) > /dev/null + clang -MJ $(TTF_DIR)/sys.json $(COMPDB_CFLAGS) $(SYS_SRC) > /dev/null + clang -MJ $(TTF_DIR)/target.json $(COMPDB_CFLAGS) $(TARGET_SRC) > /dev/null + clang -MJ $(TTF_DIR)/zlib.json $(COMPDB_CFLAGS) $(ZLIB_SRC) > /dev/null + cat $(TTF_DIR)/*.json > $(ERL_TOP)/compile_commands.json + + ifneq ($(ERTS_SKIP_DEPEND),true) ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),generate) diff --git a/make/run_make.mk b/make/run_make.mk index bcbbf53f7d..95d4d2efe7 100644 --- a/make/run_make.mk +++ b/make/run_make.mk @@ -38,5 +38,5 @@ plain smp frag smp_frag: $(make_verbose)$(MAKE) -f $(TARGET)/Makefile FLAVOR=$@ clean generate depend docs release release_spec release_docs release_docs_spec \ - tests release_tests release_tests_spec static_lib xmllint: + tests release_tests release_tests_spec static_lib xmllint compdb: $(make_verbose)$(MAKE) -f $(TARGET)/Makefile $@ |