From: Glenn Morris Date: Sat, 2 Nov 2013 19:41:33 +0000 (-0700) Subject: Use relative filenames in TAGS files. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1021 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c617f3d0b10f5a271c2d5d93d2a9422d9d7e8fb1;p=emacs.git 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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8bdf2d3a83e..4d794052fd7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2013-11-02 Glenn Morris + 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. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index be7a413b15b..1142165e9f3 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -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 diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 6d10fe551cb..dadb13514e0 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,5 +1,9 @@ 2013-11-02 Glenn Morris + 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. diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in index 550983c1757..8bb23bb11bd 100644 --- a/lwlib/Makefile.in +++ b/lwlib/Makefile.in @@ -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 diff --git a/src/ChangeLog b/src/ChangeLog index d0193f355a2..997d98344c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,12 @@ 2013-11-02 Glenn Morris + 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 diff --git a/src/Makefile.in b/src/Makefile.in index e3f4fb60a40..41e0c7d382a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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