All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Makefile: Fix cscope issues on MacOS and soft links
@ 2021-08-01 17:11 Peter Xu
  2021-08-03 22:18 ` Alex Bennée
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Xu @ 2021-08-01 17:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé,
	Paolo Bonzini, Alex Bennée, peterx, Marc-André Lureau

This patch fixes actually two issues with 'make cscope'.

Firstly, it fixes the command for MacOS "find" command as MacOS will append the
full path of "$(SRC_PATH)/" before each found entry, then after the final "./"
replacement trick it'll look like (e.g., "qapi/qmp-dispatch.c"):

  /qapi/qmp-dispatch.c

Which will point to the root directory instead.

Fix it by simply remove the "/" in "$(SRC_PATH)/" of "find-src-path", then
it'll work for at least both Linux and MacOS.

The other OS-independent issue is to start proactively ignoring soft links when
generating tags, otherwise by default on master branch we'll see this error
when "make cscope":

cscope: cannot find file subprojects/libvhost-user/include/atomic.h

This patch should fix the two issues altogether.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 401c623a65..5562a9b464 100644
--- a/Makefile
+++ b/Makefile
@@ -229,7 +229,8 @@ distclean: clean
 	rm -f linux-headers/asm
 	rm -Rf .sdk
 
-find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
+find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
+	-type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
 
 .PHONY: ctags
 ctags:
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Makefile: Fix cscope issues on MacOS and soft links
  2021-08-01 17:11 [PATCH] Makefile: Fix cscope issues on MacOS and soft links Peter Xu
@ 2021-08-03 22:18 ` Alex Bennée
  2021-08-04  0:11   ` Peter Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Alex Bennée @ 2021-08-03 22:18 UTC (permalink / raw)
  To: Peter Xu
  Cc: Marc-André Lureau, Philippe Mathieu-Daudé,
	qemu-devel, Paolo Bonzini


Peter Xu <peterx@redhat.com> writes:

> This patch fixes actually two issues with 'make cscope'.
>
> Firstly, it fixes the command for MacOS "find" command as MacOS will append the
> full path of "$(SRC_PATH)/" before each found entry, then after the final "./"
> replacement trick it'll look like (e.g., "qapi/qmp-dispatch.c"):
>
>   /qapi/qmp-dispatch.c
>
> Which will point to the root directory instead.
>
> Fix it by simply remove the "/" in "$(SRC_PATH)/" of "find-src-path", then
> it'll work for at least both Linux and MacOS.
>
> The other OS-independent issue is to start proactively ignoring soft links when
> generating tags, otherwise by default on master branch we'll see this error
> when "make cscope":
>
> cscope: cannot find file subprojects/libvhost-user/include/atomic.h
>
> This patch should fix the two issues altogether.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 401c623a65..5562a9b464 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -229,7 +229,8 @@ distclean: clean
>  	rm -f linux-headers/asm
>  	rm -Rf .sdk
>  
> -find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
> +find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
> +	-type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)

The second half of the change causes my "make gtags" to descend down
build directories and complain about unindexed files.

>  .PHONY: ctags
>  ctags:


-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Makefile: Fix cscope issues on MacOS and soft links
  2021-08-03 22:18 ` Alex Bennée
@ 2021-08-04  0:11   ` Peter Xu
  2021-08-04  8:14     ` Alex Bennée
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Xu @ 2021-08-04  0:11 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Marc-André Lureau, Philippe Mathieu-Daudé,
	qemu-devel, Paolo Bonzini

Hi, Alex,

On Tue, Aug 03, 2021 at 11:18:36PM +0100, Alex Bennée wrote:
> 
> Peter Xu <peterx@redhat.com> writes:
> 
> > This patch fixes actually two issues with 'make cscope'.
> >
> > Firstly, it fixes the command for MacOS "find" command as MacOS will append the
> > full path of "$(SRC_PATH)/" before each found entry, then after the final "./"
> > replacement trick it'll look like (e.g., "qapi/qmp-dispatch.c"):
> >
> >   /qapi/qmp-dispatch.c
> >
> > Which will point to the root directory instead.
> >
> > Fix it by simply remove the "/" in "$(SRC_PATH)/" of "find-src-path", then
> > it'll work for at least both Linux and MacOS.
> >
> > The other OS-independent issue is to start proactively ignoring soft links when
> > generating tags, otherwise by default on master branch we'll see this error
> > when "make cscope":
> >
> > cscope: cannot find file subprojects/libvhost-user/include/atomic.h
> >
> > This patch should fix the two issues altogether.
> >
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> > ---
> >  Makefile | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 401c623a65..5562a9b464 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -229,7 +229,8 @@ distclean: clean
> >  	rm -f linux-headers/asm
> >  	rm -Rf .sdk
> >  
> > -find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
> > +find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
> > +	-type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
> 
> The second half of the change causes my "make gtags" to descend down
> build directories and complain about unindexed files.

Would this help?

---8<---
diff --git a/Makefile b/Makefile
index 5562a9b464..eeb21f0e6a 100644
--- a/Makefile
+++ b/Makefile
@@ -251,7 +251,7 @@ gtags:
                "GTAGS", "Remove old $@ files")
        $(call quiet-command,                           \
                (cd $(SRC_PATH) &&                      \
-                $(find-src-path) | gtags -f -),        \
+                $(find-src-path) -print | gtags -f -), \
                "GTAGS", "Re-index $(SRC_PATH)")
 
 .PHONY: TAGS
---8<---

For some reason, "make gtags" didn't use "-print" as the last expression.  My
understanding is when expression is not specified, then it's default will be
"-print".  However for some reason it acts like that when "-print" is not there
all the "-prone" expressions are not really behaving.  Above does work for me,
but frankly I don't really know enough on how "find" works here.

If you agree, I can repost a v2 with that squashed.

Thanks,

-- 
Peter Xu



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Makefile: Fix cscope issues on MacOS and soft links
  2021-08-04  0:11   ` Peter Xu
@ 2021-08-04  8:14     ` Alex Bennée
  0 siblings, 0 replies; 4+ messages in thread
From: Alex Bennée @ 2021-08-04  8:14 UTC (permalink / raw)
  To: Peter Xu
  Cc: Marc-André Lureau, Philippe Mathieu-Daudé,
	qemu-devel, Paolo Bonzini


Peter Xu <peterx@redhat.com> writes:

> Hi, Alex,
>
> On Tue, Aug 03, 2021 at 11:18:36PM +0100, Alex Bennée wrote:
>> 
>> Peter Xu <peterx@redhat.com> writes:
>> 
>> > This patch fixes actually two issues with 'make cscope'.
>> >
>> > Firstly, it fixes the command for MacOS "find" command as MacOS will append the
>> > full path of "$(SRC_PATH)/" before each found entry, then after the final "./"
>> > replacement trick it'll look like (e.g., "qapi/qmp-dispatch.c"):
>> >
>> >   /qapi/qmp-dispatch.c
>> >
>> > Which will point to the root directory instead.
>> >
>> > Fix it by simply remove the "/" in "$(SRC_PATH)/" of "find-src-path", then
>> > it'll work for at least both Linux and MacOS.
>> >
>> > The other OS-independent issue is to start proactively ignoring soft links when
>> > generating tags, otherwise by default on master branch we'll see this error
>> > when "make cscope":
>> >
>> > cscope: cannot find file subprojects/libvhost-user/include/atomic.h
>> >
>> > This patch should fix the two issues altogether.
>> >
>> > Signed-off-by: Peter Xu <peterx@redhat.com>
>> > ---
>> >  Makefile | 3 ++-
>> >  1 file changed, 2 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/Makefile b/Makefile
>> > index 401c623a65..5562a9b464 100644
>> > --- a/Makefile
>> > +++ b/Makefile
>> > @@ -229,7 +229,8 @@ distclean: clean
>> >  	rm -f linux-headers/asm
>> >  	rm -Rf .sdk
>> >  
>> > -find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
>> > +find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
>> > +	-type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
>> 
>> The second half of the change causes my "make gtags" to descend down
>> build directories and complain about unindexed files.
>
> Would this help?
>
> ---8<---
> diff --git a/Makefile b/Makefile
> index 5562a9b464..eeb21f0e6a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -251,7 +251,7 @@ gtags:
>                 "GTAGS", "Remove old $@ files")
>         $(call quiet-command,                           \
>                 (cd $(SRC_PATH) &&                      \
> -                $(find-src-path) | gtags -f -),        \
> +                $(find-src-path) -print | gtags -f -), \
>                 "GTAGS", "Re-index $(SRC_PATH)")
>  
>  .PHONY: TAGS
> ---8<---
>
> For some reason, "make gtags" didn't use "-print" as the last expression.  My
> understanding is when expression is not specified, then it's default will be
> "-print".  However for some reason it acts like that when "-print" is not there
> all the "-prone" expressions are not really behaving.  Above does work for me,
> but frankly I don't really know enough on how "find" works here.
>
> If you agree, I can repost a v2 with that squashed.

That seems to fix it. I think it's down to the interaction of the
expressions but I agree find can be a bit inscrutable at times.

>
> Thanks,


-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-08-04  8:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-01 17:11 [PATCH] Makefile: Fix cscope issues on MacOS and soft links Peter Xu
2021-08-03 22:18 ` Alex Bennée
2021-08-04  0:11   ` Peter Xu
2021-08-04  8:14     ` Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.