2008-08-04 01:51:50

by cheng renquan

[permalink] [raw]
Subject: some problems with latest cscope-15.6, the better way to generate cscope database change

From: Denis ChengRq <[email protected]>

It's a problem about cscope target of kernel Makefile, and the cscope
plugin of emacs:
1. `make cscope` will generate cscope.files cscope.{in,po,}.out;
2. the cscope plugin expect a cscope.out.{in,po,};
3. the default `cscope -b` would generate cscope.{in,po,}.out;

There are three approach to solve it:
1. modify the cscope C code;
2. modify the cscope emacs plugin lisp code;
3. modify the Makefile;

I have tried to communicate with the cscope upstream, but later I
realize the third approach is most meaningful.
So here is the one line patch:

---

diff --git a/Makefile b/Makefile
index f156f40..9148c3f 100644
--- a/Makefile
+++ b/Makefile
@@ -1492,7 +1492,7 @@ quiet_cmd_cscope-file = FILELST cscope.files
cmd_cscope-file = (echo \-k; echo \-q; $(all-sources)) > cscope.files

quiet_cmd_cscope = MAKE cscope.out
- cmd_cscope = cscope -b
+ cmd_cscope = cscope -b -f cscope.out

cscope: FORCE
$(call cmd,cscope-file)


2008-08-04 06:49:45

by Albert ARIBAUD

[permalink] [raw]
Subject: Re: some problems with latest cscope-15.6, the better way to generate cscope database change

rae l a écrit :
> From: Denis ChengRq <[email protected]>
>
> It's a problem about cscope target of kernel Makefile, and the cscope
> plugin of emacs:
> 1. `make cscope` will generate cscope.files cscope.{in,po,}.out;
> 2. the cscope plugin expect a cscope.out.{in,po,};
> 3. the default `cscope -b` would generate cscope.{in,po,}.out;
>
> There are three approach to solve it:
> 1. modify the cscope C code;
> 2. modify the cscope emacs plugin lisp code;
> 3. modify the Makefile;
>
> I have tried to communicate with the cscope upstream, but later I
> realize the third approach is most meaningful.

Er... If the plugin differs from the 'original' code, then I would tend to
think that the plugin must be fixed, mustn't it? Because there might be
other apps out there apart from the makefile and plugin which use
cscope.po.out rather than cscope.out.po, so changing cscope would break
lots of things. And changing the Makefile will make it only work with the
plugin but would break other cscope-related apps.

Amicalement,
--
Albert.