I improved gen_compile_commands.py, then rebased Nathan's v7 [1] on top of them. To save time, I modified the Makefile part. No change for run-clang-tools.py "make clang-tidy" should work in-tree build, out-of-tree build (O=), and external module build (M=). V3: Fix minor mistakes pointed out by Nick Add a new patch (09/10) to remove the warning about too few .cmd files. V2: Keep the previous work-flow. You can still manually run scripts/gen_compile_commands.json 'make compile_commands.json' or 'make clang-tidy' is handier for most cases. As Nick noted, there is 3 % loss of the coverage. If you need the full compilation database that covers all the compiled C files, please run the script manually. [1] https://patchwork.kernel.org/patch/11687833/ Masahiro Yamada (9): gen_compile_commands: parse only the first line of .*.cmd files gen_compile_commands: use choices for --log_levels option gen_compile_commands: do not support .cmd files under tools/ directory gen_compile_commands: reword the help message of -d option gen_compile_commands: make -o option independent of -d option gen_compile_commands: move directory walk to a generator function gen_compile_commands: support *.o, *.a, modules.order in positional argument kbuild: wire up the build rule of compile_commands.json to Makefile gen_compile_commands: remove the warning about too few .cmd files Nathan Huckleberry (1): Makefile: Add clang-tidy and static analyzer support to makefile MAINTAINERS | 1 + Makefile | 45 +++- scripts/clang-tools/gen_compile_commands.py | 236 ++++++++++++++++++++ scripts/clang-tools/run-clang-tools.py | 74 ++++++ scripts/gen_compile_commands.py | 151 ------------- 5 files changed, 352 insertions(+), 155 deletions(-) create mode 100755 scripts/clang-tools/gen_compile_commands.py create mode 100755 scripts/clang-tools/run-clang-tools.py delete mode 100755 scripts/gen_compile_commands.py -- 2.25.1