On Wed, 23 Aug 2017, Yuri Volchkov <yuri.volchkov@gmail.com> wrote: > Just a handy tool to generate source code indexes for your favorite > editor. > > To make tags for vim run: > $ make cscope > To make tags for emacs: > $ make TAGS > To make both: > $ make alltags What's the point in adding these to configure? Or, to be honest, to the build at all? In theory you'll be able to look at $(SRCS) for indexing... but those are only the .c/.cc files. Are your tools clever enough to follow #include directives to index the headers as well? I guess I'm also biased because I use gnu global [1] instead. And for that I have a script of my own that basically boils down to: $ git ls-files | gtags -f - which means all files tracked by git get indexed, and global will decide whether it can index the file or not. BR, Jani. [1] https://www.gnu.org/software/global/ > > Signed-off-by: Yuri Volchkov <yuri.volchkov@gmail.com> > --- > Makefile.local | 24 ++++++++++++++++++++++++ > configure | 30 ++++++++++++++++++++++++++++++ > 2 files changed, 54 insertions(+) > > diff --git a/Makefile.local b/Makefile.local > index af12ca7..15075bb 100644 > --- a/Makefile.local > +++ b/Makefile.local > @@ -280,6 +280,30 @@ endif > SRCS := $(SRCS) $(notmuch_client_srcs) > CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) > CLEAN := $(CLEAN) version.stamp notmuch-*.tar.gz.tmp > +CLEAN := $(CLEAN) cscope.out TAGS > + > +.PHONY: alltags cscope > +alltags: cscope.out TAGS > +cscope: cscope.out > + > +ifeq ($(HAVE_CSCOPE),1) > +cscope.out: $(SRCS) > + $(call quiet, CSCOPE) -b $(SRCS) > +else > +.PHONY: cscope.out > +cscope.out: > + $(warning "$@ is not generated. Please make sure you have cscope installed") > +endif > + > +ifeq ($(HAVE_ETAGS),1) > +TAGS: $(SRCS) > + @rm -f $@ > + $(call quiet, ETAGS) -a $(SRCS) > +else > +.PHONY: TAGS > +TAGS: > + $(warning "$@ is not generated. Please make sure you have etags installed") > +endif > > DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config sh.config > > diff --git a/configure b/configure > index c5e2ffe..4467016 100755 > --- a/configure > +++ b/configure > @@ -603,6 +603,24 @@ else > have_emacs=0 > fi > > +printf "Checking if cscope is available... " > +if cscope -V > /dev/null 2>&1; then > + printf "Yes.\n" > + have_cscope=1 > +else > + printf "No (so will not generate cscope code index - file cscope.out)\n" > + have_cscope=0 > +fi > + > +printf "Checking if etags is available... " > +if etags -V > /dev/null 2>&1; then > + printf "Yes.\n" > + have_etags=1 > +else > + printf "No (so will not generate etags code index - file TAGS)\n" > + have_etags=0 > +fi > + > have_doxygen=0 > if [ $WITH_API_DOCS = "1" ] ; then > printf "Checking if doxygen is available... " > @@ -1011,6 +1029,12 @@ WARN_CXXFLAGS=${WARN_CXXFLAGS} > # Flags to enable warnings when using the C compiler > WARN_CFLAGS=${WARN_CFLAGS} > > +# Command to execute cscope from Makefiles > +CSCOPE = cscope > + > +# Command to execute etags from Makefiles > +ETAGS = etags > + > # Name of python interpreter > PYTHON = ${python} > > @@ -1046,6 +1070,12 @@ emacsetcdir=${EMACSETCDIR} > # Whether there's an emacs binary available for byte-compiling > HAVE_EMACS = ${have_emacs} > > +# Whether there's a cscope available for source code indexing (development only) > +HAVE_CSCOPE = ${have_cscope} > + > +# Whether there's a etags available for source code indexing (development only) > +HAVE_ETAGS = ${have_etags} > + > # Whether there's a sphinx-build binary available for building documentation > HAVE_SPHINX=${have_sphinx} > > -- > 2.7.4 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch