Message ID | Y7SKBqxULPofEry7@mail.google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,RESEND] scripts/tags.sh: choose which directories to exclude from being indexed | expand |
On Wed 04 Jan 2023 09:03:18 GMT, Paulo Miguel Almeida wrote: > It's common for drivers that share same physical components to also > duplicate source code (or at least portions of it). A good example is > both drivers/gpu/drm/amdgpu/* and drivers/gpu/drm/radeon/* have a header > file called atombios.h. > > While their contents aren't the same, a lot of their structs have > the exact same names which makes navigating through the code base a bit > messy as cscope will show up 'references' across drivers which aren't > exactly correct. > > Add IGNORE_DIRS variable, which specifies which directories > to be ignored from indexing. > > Example: > make ARCH=x86 IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope > > Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> > --- > Changelog: > > - v3: change commit message wording and rst syntax (Req Bagas Sanjaya) > change makefile variable scope to global, use blank space > separator and change variable name to IGNORE_DIRS. > (Req: Vipin Sharma) > - v2: change approach to include everything unless specified by the > IGNOREDIRS variable: (Req: Vipin Sharma) > - v1: https://lore.kernel.org/lkml/Y5OKDvbGk4Kro6MK@mail.google.com/ > > Additional notes (if relevant): > - Patch v3 was reviewed-by Vipin Sharma here: > https://lore.kernel.org/lkml/CAHVum0eNp5Dup_KyrS2N0zu5TfrtcCxphRnLuBFZa5PxahVg7A@mail.gmail.com/ > --- > Documentation/kbuild/kbuild.rst | 7 +++++++ > scripts/tags.sh | 7 +++++++ > 2 files changed, 14 insertions(+) > > diff --git a/Documentation/kbuild/kbuild.rst b/Documentation/kbuild/kbuild.rst > index 08f575e6236c..5202186728b4 100644 > --- a/Documentation/kbuild/kbuild.rst > +++ b/Documentation/kbuild/kbuild.rst > @@ -278,6 +278,13 @@ To get all available archs you can also specify all. E.g.:: > > $ make ALLSOURCE_ARCHS=all tags > > +IGNORE_DIRS > +----------- > +For tags/TAGS/cscope targets, you can choose which directories won't > +be included in the databases, separated by blank space. E.g.:: > + > + $ make IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope > + Thanks for the patch! I think it might be good to add a note about that this is not ignoring arch sources (here and in the commit message). For kbuild.rst perhaps something like: "For filtering-out sources below arch, see ALLSOURCE_ARCHS above." Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
diff --git a/Documentation/kbuild/kbuild.rst b/Documentation/kbuild/kbuild.rst index 08f575e6236c..5202186728b4 100644 --- a/Documentation/kbuild/kbuild.rst +++ b/Documentation/kbuild/kbuild.rst @@ -278,6 +278,13 @@ To get all available archs you can also specify all. E.g.:: $ make ALLSOURCE_ARCHS=all tags +IGNORE_DIRS +----------- +For tags/TAGS/cscope targets, you can choose which directories won't +be included in the databases, separated by blank space. E.g.:: + + $ make IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope + KBUILD_BUILD_TIMESTAMP ---------------------- Setting this to a date string overrides the timestamp used in the diff --git a/scripts/tags.sh b/scripts/tags.sh index e137cf15aae9..1ad45f17179a 100755 --- a/scripts/tags.sh +++ b/scripts/tags.sh @@ -17,6 +17,13 @@ ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" # tags and cscope files should also ignore MODVERSION *.mod.c files ignore="$ignore ( -name *.mod.c ) -prune -o" +# ignore arbitrary directories +if [ -n "${IGNORE_DIRS}" ]; then + for i in ${IGNORE_DIRS}; do + ignore="${ignore} ( -path $i ) -prune -o" + done +fi + # Use make KBUILD_ABS_SRCTREE=1 {tags|cscope} # to force full paths for a non-O= build if [ "${srctree}" = "." -o -z "${srctree}" ]; then
It's common for drivers that share same physical components to also duplicate source code (or at least portions of it). A good example is both drivers/gpu/drm/amdgpu/* and drivers/gpu/drm/radeon/* have a header file called atombios.h. While their contents aren't the same, a lot of their structs have the exact same names which makes navigating through the code base a bit messy as cscope will show up 'references' across drivers which aren't exactly correct. Add IGNORE_DIRS variable, which specifies which directories to be ignored from indexing. Example: make ARCH=x86 IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> --- Changelog: - v3: change commit message wording and rst syntax (Req Bagas Sanjaya) change makefile variable scope to global, use blank space separator and change variable name to IGNORE_DIRS. (Req: Vipin Sharma) - v2: change approach to include everything unless specified by the IGNOREDIRS variable: (Req: Vipin Sharma) - v1: https://lore.kernel.org/lkml/Y5OKDvbGk4Kro6MK@mail.google.com/ Additional notes (if relevant): - Patch v3 was reviewed-by Vipin Sharma here: https://lore.kernel.org/lkml/CAHVum0eNp5Dup_KyrS2N0zu5TfrtcCxphRnLuBFZa5PxahVg7A@mail.gmail.com/ --- Documentation/kbuild/kbuild.rst | 7 +++++++ scripts/tags.sh | 7 +++++++ 2 files changed, 14 insertions(+)