On Tue, 1 Sep 2020 09:59:23 -0500 Connor Kuehl <cku...@redhat.com> wrote:
> On 9/1/20 9:20 AM, Greg Kurz wrote: > > It is a bit of a pain to be forced to run configure before being able > > to use cscope and friends. Add back the rules to build them in-tree > > as before commit a56650518f5b. > > > > Fixes: a56650518f5b ("configure: integrate Meson in the build system") > > Signed-off-by: Greg Kurz <gr...@kaod.org> > > This might be a user error on my part, but the way I read this it sounds > like I could do this: > > $ rm -rf build > $ make cscope > > and have it emit a cscope file, but when I do so it complains about the > build dir not existing. As I understand it, running ./configure (or > meson build) is what generates that build dir. Here's the error for > posterity: > > changing dir to build for make "cscope"... > make[1]: *** build: No such file or directory. Stop. > make: *** [GNUmakefile:11: cscope] Error 2 > My use case is : $ git clone git://git.qemu.org/qemu.git && cd qemu && make cscope Cloning into 'qemu'... remote: Counting objects: 510519, done. remote: Compressing objects: 100% (91407/91407), done. remote: Total 510519 (delta 420069), reused 507399 (delta 417643) Receiving objects: 100% (510519/510519), 180.42 MiB | 29.30 MiB/s, done. Resolving deltas: 100% (420069/420069), done. make: Nothing to be done for 'cscope'. > One comment inline > > > --- > > Makefile | 17 ++++++++++++++++- > > 1 file changed, 16 insertions(+), 1 deletion(-) > > > > diff --git a/Makefile b/Makefile > > index 81794d5c34a2..8ffe2872915d 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -62,7 +62,7 @@ ninja-distclean:: > > build.ninja: config-host.mak > > > > Makefile.ninja: build.ninja ninjatool > > - ./ninjatool -t ninja2make --omit clean dist uninstall < $< > $@ > > + ./ninjatool -t ninja2make --omit clean dist uninstall cscope TAGS ctags > > < $< > $@ > > -include Makefile.ninja > > > > ${ninja-targets-c_COMPILER} ${ninja-targets-cpp_COMPILER}: .var.command > > += -MP > > @@ -229,6 +229,21 @@ distclean: clean ninja-distclean > > rm -f linux-headers/asm > > rm -Rf .sdk > > > > +.PHONY: ctags > > +ctags: > > + rm -f tags > > + find "$(SRC_PATH)" -name '*.[hc]' -exec ctags --append {} + > > + > > +.PHONY: TAGS > > +TAGS: > > + rm -f TAGS > > + find "$(SRC_PATH)" -name '*.[hc]' -exec etags --append {} + > > + > > +cscope: > > Since this recipe doesn't output an artifact called "cscope" I wonder if > this should be: > > .PHONY: cscope We already have it somewhere else in the makefile: .PHONY: all clean cscope distclean install \ Since this patch is a partial revert of a56650518f5b, I didn't consider moving it here. Cheers, -- Greg > cscope: > ... > > or alternatively: > > cscope.out: > ... > > > > + rm -f "$(SRC_PATH)"/cscope.* > > + find "$(SRC_PATH)/" -name "*.[chsS]" -print | sed -e 's,^\./,,' > > > "$(SRC_PATH)/cscope.files" > > + cscope -b -i"$(SRC_PATH)/cscope.files" > > + > > ifdef INSTALL_BLOBS > > BLOBS=bios.bin bios-256k.bin bios-microvm.bin sgabios.bin vgabios.bin > > vgabios-cirrus.bin \ > > vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin \ > > > > > > > > Connor >