[1/1] Makefile: Add cscope support

Tan En De ende.tan at linux.starfivetech.com
Wed Oct 12 18:26:23 PDT 2022


Add cscope support so that running `make cscope` will generate/update
cscope files used for source code browsing, while running `make
distclean` will remove the cscope files.

Also add entry in .gitignore to ignore generated cscope files.

Signed-off-by: Tan En De <ende.tan at linux.starfivetech.com>
---
 .gitignore |  1 +
 Makefile   | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/.gitignore b/.gitignore
index 534ad64..95692bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@ install/
 
 # Development friendly files
 tags
+cscope*
diff --git a/Makefile b/Makefile
index 0ab9f22..4b175a0 100644
--- a/Makefile
+++ b/Makefile
@@ -623,6 +623,17 @@ install_firmwares: $(platform_build_dir)/lib/libplatsbi.a $(build_dir)/lib/libsb
 install_docs: $(build_dir)/docs/latex/refman.pdf
 	$(call inst_file,$(install_root_dir)/$(install_docs_path)/refman.pdf,$(build_dir)/docs/latex/refman.pdf)
 
+.PHONY: cscope
+cscope:
+	$(CMD_PREFIX)find \
+		"$(src_dir)/firmware" \
+		"$(src_dir)/include" \
+		"$(src_dir)/lib" \
+		"$(platform_src_dir)" \
+	-name "*.[chS]" -print > cscope.files
+	$(CMD_PREFIX)echo "$(KCONFIG_AUTOHEADER)" >> cscope.files
+	$(CMD_PREFIX)cscope -bkq -i cscope.files -f cscope.out
+
 # Rule for "make clean"
 .PHONY: clean
 clean:
@@ -652,6 +663,8 @@ ifeq ($(install_root_dir),$(install_root_dir_default)/usr)
 	$(if $(V), @echo " RM        $(install_root_dir_default)")
 	$(CMD_PREFIX)rm -rf $(install_root_dir_default)
 endif
+	$(if $(V), @echo " RM        $(src_dir)/cscope*")
+	$(CMD_PREFIX)rm -f $(src_dir)/cscope*
 
 .PHONY: FORCE
 FORCE:
-- 
2.34.1




More information about the opensbi mailing list