Peter Xu <pet...@redhat.com> writes:
> Hi, Alex, > > On Tue, Aug 03, 2021 at 11:18:36PM +0100, Alex Bennée wrote: >> >> Peter Xu <pet...@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 <pet...@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