On Mon, 02/09 08:25, Peter Maydell wrote: > On 9 February 2015 at 08:08, Fam Zheng <f...@redhat.com> wrote: > > It doesn't make much sense to ask one to switch to build dir in order to > > make these two targets. > > > > Signed-off-by: Fam Zheng <f...@redhat.com> > > --- > > Makefile | 13 ++++++++----- > > 1 file changed, 8 insertions(+), 5 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index 6817c6f..257bef6 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -3,6 +3,9 @@ > > # Always point to the root of the build tree (needs GNU make). > > BUILD_DIR=$(CURDIR) > > > > +# Before including a proper config-host.mak, assume we are in the source > > tree > > +SRC_PATH=. > > + > > # All following code might depend on configuration variables > > ifneq ($(wildcard config-host.mak),) > > # Put the all: rule here so that config-host.mak can contain dependencies. > > @@ -38,7 +41,7 @@ config-host.mak: $(SRC_PATH)/configure > > fi > > else > > config-host.mak: > > -ifneq ($(filter-out %clean,$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),,fail)) > > +ifneq ($(filter-out %clean TAGS cscope,$(MAKECMDGOALS)),$(if > > $(MAKECMDGOALS),,fail)) > > Probably better to define a variable for the targets which can be > called on an unconfigured directory rather than having "clean TAGS cscope" > in two places. > > > cscope: > > - rm -f ./cscope.* > > - find "$(SRC_PATH)" -name "*.[chsS]" -print | sed 's,^\./,,' > > > ./cscope.files > > - cscope -b > > + rm -f "$(SRC_PATH)"/cscope.* > > + find "$(SRC_PATH)/" -name "*.[chsS]" -print | sed 's,^\./,,' > > > "$(SRC_PATH)/cscope.files" > > + cscope -b -i"$(SRC_PATH)/cscope.files" > > Isn't this going to result in our writing the cscope.files into the > source tree but the cross-reference into the build directory? > That seems inconsistent (and I'm not really convinced about the > wisdom of anything in the makefile writing to the source tree).
This patch is useful when you really want "make cscope", when you're already at your $(SRC_PATH). The "find | sed; cscope" command sequence is way too cumbersome. For those who are not the in-tree build type, I assume leaving out '-f "$(SRC_PATH)/cscope.out"' should slightly ease the concern about writing to source tree? :) I don't know a better place to put the reference. I always start vim from $(SRC_PATH). Fam