* [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.