Use relative filenames in TAGS files.

* src/Makefile.in (abs_srcdir): Remove it again.
(.PHONY): Remove frc.
(maintainer-clean): No more TAGS-LISP file.
(TAGS): Pass relative file names to etags.
(../lisp/TAGS): Rename from TAGS-LISP.  Work in ../lisp.

* lisp/Makefile.in (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3)
(lisptagsfiles4, TAGS): Use relative file names.
(TAGS-LISP): Remove.
(maintainer-clean): No more TAGS-LISP file.

* lwlib/Makefile.in (abs_srcdir): Remove it again.
(ctagsfiles, TAGS): Use relative filenames.

* .bzrignore: Remove TAGS-LISP.
This commit is contained in:
Glenn Morris 2013-11-02 12:41:33 -07:00
parent 739f57cd1f
commit c617f3d0b1
6 changed files with 43 additions and 31 deletions

View file

@ -1,5 +1,11 @@
2013-11-02 Glenn Morris <rgm@gnu.org>
Use relative filenames in TAGS files.
* Makefile.in (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3)
(lisptagsfiles4, TAGS): Use relative file names.
(TAGS-LISP): Remove.
(maintainer-clean): No more TAGS-LISP file.
* Makefile.in (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3)
(lisptagsfiles4): Use absolute filenames again.
(TAGS, TAGS-LISP): Not everything needs to run in one line.

View file

@ -214,25 +214,25 @@ update-authors:
ETAGS = ../lib-src/etags
## NB We use absolute filenames because ../src/Makefile calls this via
## make -f ../lisp/Makefile.
## FIXME? Can etags work ok with relative filenames?
lisptagsfiles1 = $(abs_srcdir)/*.el
lisptagsfiles2 = $(abs_srcdir)/*/*.el
lisptagsfiles3 = $(abs_srcdir)/*/*/*.el
lisptagsfiles4 = $(abs_srcdir)/*/*/*/*.el
lisptagsfiles1 = $(srcdir)/*.el
lisptagsfiles2 = $(srcdir)/*/*.el
lisptagsfiles3 = $(srcdir)/*/*/*.el
lisptagsfiles4 = $(srcdir)/*/*/*/*.el
## Apparently the echo | sed | xargs is to stop the command line
## getting too long on MS Windows. It will make no difference on
## POSIX systems, where the shell does the globbing right away, before
## passing the expanded arguments to echo.
TAGS TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
## The POSIX way would be to use find in a similar way to compile-main.
## But maybe this is not even necessary any more now that this uses
## relative filenames.
TAGS: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
rm -f $@
touch $@
echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | \
sed -e 's,$(abs_srcdir)/[^ ]*loaddefs[^ ]*,,g' \
-e 's,$(abs_srcdir)/ldefs-boot[^ ]*,,' \
-e 's,$(abs_srcdir)/[^ ]*esh-groups.el[^ ]*,,' | \
sed -e 's,$(srcdir)/[^ ]*loaddefs[^ ]*,,g' \
-e 's,$(srcdir)/ldefs-boot[^ ]*,,' \
-e 's,$(srcdir)/[^ ]*esh-groups.el[^ ]*,,' | \
xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@
@ -458,7 +458,7 @@ distclean:
-rm -f ./Makefile $(lisp)/loaddefs.el~
maintainer-clean: distclean bootstrap-clean
rm -f TAGS TAGS-LISP
rm -f TAGS
.PHONY: check-declare

View file

@ -1,5 +1,9 @@
2013-11-02 Glenn Morris <rgm@gnu.org>
Use relative filenames in TAGS files.
* Makefile.in (abs_srcdir): Remove it again.
(ctagsfiles, TAGS): Use relative filenames.
* Makefile.in (abs_srcdir): New, set by configure.
(ETAGS, ctagsfiles): New variables.
(TAGS): Use ETAGS, ctagsfiles. Use absolute filenames again.

View file

@ -23,7 +23,6 @@
# and set up to be configured by ../configure.
srcdir=@srcdir@
abs_srcdir=@abs_srcdir@
# MinGW CPPFLAGS may use this.
abs_top_srcdir=@abs_top_srcdir@
VPATH=@srcdir@
@ -104,12 +103,10 @@ maintainer-clean: distclean
ETAGS = ../lib-src/etags
## FIXME? Does etags need to use absolute filenames?
## See comments in lisp/Makefile.in, src/Makefile.in.
ctagsfiles= *.[ch]
ctagsfiles= $(srcdir)/*.[ch]
TAGS: $(srcdir)/$(ctagsfiles)
"$(ETAGS)" "$(abs_srcdir)"/$(ctagsfiles)
TAGS: $(ctagsfiles)
"$(ETAGS)" $(ctagsfiles)
tags: TAGS
.PHONY: tags

View file

@ -1,5 +1,12 @@
2013-11-02 Glenn Morris <rgm@gnu.org>
Use relative filenames in TAGS files.
* Makefile.in (abs_srcdir): Remove it again.
(.PHONY): Remove frc.
(maintainer-clean): No more TAGS-LISP file.
(TAGS): Pass relative file names to etags.
(../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp.
* Makefile.in (abs_srcdir): New, set by configure.
(lispdir): Remove.
(maintainer-clean): Remove pointless echo. That should be in the

View file

@ -1,7 +1,7 @@
### @configure_input@
# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2013 Free Software
# Foundation, Inc.
# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2013
# Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@ -28,7 +28,6 @@ SHELL = @SHELL@
# Here are the things that we expect ../configure to edit.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir = @srcdir@
abs_srcdir = @abs_srcdir@
# MinGW CPPFLAGS may use this.
abs_top_srcdir=@abs_top_srcdir@
ntsource = $(srcdir)/../nt
@ -557,7 +556,7 @@ ns-app: emacs$(EXEEXT)
cd ../nextstep && $(MAKE) $(MFLAGS) all
.PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
.PHONY: versionclean extraclean frc
.PHONY: versionclean extraclean
mostlyclean:
rm -f temacs$(EXEEXT) core *.core \#* *.o libXMenu11.a liblw.a
@ -585,7 +584,7 @@ distclean: bootstrap-clean
rm -f Makefile
maintainer-clean: distclean
rm -f TAGS TAGS-LISP
rm -f TAGS
versionclean:
-rm -f emacs$(EXEEXT) emacs-*.*.*$(EXEEXT) ../etc/DOC*
extraclean: distclean
@ -598,28 +597,27 @@ ctagsfiles1 = [xyzXYZ]*.[hc]
ctagsfiles2 = [a-wA-W]*.[hc]
ctagsfiles3 = [a-zA-Z]*.m
## FIXME? Do we really need to use absolute filenames here?
## FIXME? In out-of-tree builds, should TAGS be generated in srcdir?
## This does not need to depend on ../lisp and ../lwlib TAGS files,
## because etags "--include" only includes a pointer to the file,
## rather than the file contents.
TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(srcdir)/$(ctagsfiles3)
"$(ETAGS)" --include=TAGS-LISP --include=$(lwlibdir)/TAGS \
"$(ETAGS)" --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \
--regex='{c}/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
"$(abs_srcdir)"/$(ctagsfiles1) "$(abs_srcdir)"/$(ctagsfiles2) \
$(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) \
--regex='{objc}/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
"$(abs_srcdir)"/$(ctagsfiles3)
$(srcdir)/$(ctagsfiles3)
## Arrange to make tags tables for ../lisp and ../lwlib,
## which the above TAGS file for the C files includes by reference.
frc:
TAGS-LISP: frc
$(MAKE) -f ../lisp/Makefile TAGS-LISP ETAGS="$(ETAGS)"
../lisp/TAGS:
cd ../lisp && $(MAKE) TAGS ETAGS="$(ETAGS)"
$(lwlibdir)/TAGS:
cd $(lwlibdir) && $(MAKE) TAGS ETAGS="$(ETAGS)"
tags: TAGS TAGS-LISP $(lwlibdir)/TAGS
tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS
.PHONY: tags