linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
To: Masahiro Yamada <masahiroy@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nicolas Schier <nicolas@fjasle.eu>,
	Jonathan Corbet <corbet@lwn.net>,
	Cristian Ciocaltea <cristian.ciocaltea@collabora.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Vipin Sharma <vipinsh@google.com>
Cc: linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	paulo.miguel.almeida.rodenas@gmail.com
Subject: [PATCH v2] scripts/tags.sh: choose which directories to exclude from being indexed
Date: Sun, 11 Dec 2022 12:02:18 +1300	[thread overview]
Message-ID: <Y5UP+tnnxNgoi6A2@mail.google.com> (raw)
In-Reply-To: <Y5T66yWNVAZNIaJ0@mail.google.com>

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.

This patch makes it possible for the devs to specify which folders
they don't want to include into database as part of the
find_other_sources func if a makefile variable IGNOREDIRS is present,
otherwise the original behaviour is kept.

Example:
        make ARCH=x86 IGNOREDIRS=drivers/gpu/drm/radeon,tools cscope

Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
---
Changelog:

- 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/
---
 Documentation/kbuild/kbuild.rst |  7 +++++++
 scripts/tags.sh                 | 11 +++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Documentation/kbuild/kbuild.rst b/Documentation/kbuild/kbuild.rst
index 08f575e6236c..5f99f30e20d8 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
 
+IGNOREDIRS
+---------------
+For tags/TAGS/cscope targets, you can choose which directories won't
+be included in the databases, separated by comma. E.g.:
+
+    $ make IGNOREDIRS=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..554721e9cad2 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -59,10 +59,17 @@ find_include_sources()
 }
 
 # find sources in rest of tree
-# we could benefit from a list of dirs to search in here
 find_other_sources()
 {
-	find ${tree}* $ignore \
+	local loc_ignore=${ignore}
+	if [ -n "${IGNOREDIRS}" ]; then
+		exp_ignored_dirs=$(sed 's/,/ /g' <<< ${IGNOREDIRS})
+		for i in ${exp_ignored_dirs}; do
+			loc_ignore="${loc_ignore} ( -path $i ) -prune -o"
+		done
+	fi
+
+	find ${tree}* ${loc_ignore} \
 	     \( -path ${tree}include -o -path ${tree}arch -o -name '.tmp_*' \) -prune -o \
 	       -name "$1" -not -type l -print;
 }
-- 
2.38.1


       reply	other threads:[~2022-12-10 23:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Y5T66yWNVAZNIaJ0@mail.google.com>
2022-12-10 23:02 ` Paulo Miguel Almeida [this message]
2022-12-11  4:21   ` [PATCH v2] scripts/tags.sh: choose which directories to exclude from being indexed Bagas Sanjaya
2022-12-11 20:27     ` Paulo Miguel Almeida
2022-12-12 21:27   ` Vipin Sharma
2022-12-12 21:59     ` Paulo Miguel Almeida
2022-12-12 22:32       ` Vipin Sharma
2022-12-13  2:03         ` Paulo Miguel Almeida
2022-12-13 20:26           ` [PATCH v3] " Paulo Miguel Almeida
2022-12-14 17:40             ` Vipin Sharma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y5UP+tnnxNgoi6A2@mail.google.com \
    --to=paulo.miguel.almeida.rodenas@gmail.com \
    --cc=corbet@lwn.net \
    --cc=cristian.ciocaltea@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nicolas@fjasle.eu \
    --cc=vipinsh@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).