emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r114908: Small Makefile cleanup mainly related to ta


From: Glenn Morris
Subject: [Emacs-diffs] trunk r114908: Small Makefile cleanup mainly related to tags file generation
Date: Sat, 02 Nov 2013 19:18:59 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114908
revision-id: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2013-11-02 12:18:50 -0700
message:
  Small Makefile cleanup mainly related to tags file generation
  
  * src/Makefile.in (abs_srcdir): New, set by configure.
  (maintainer-clean): Remove pointless echo.  That should be in the
  top-level Makefile, if anywhere.  Delete TAGS-LISP.
  (extraclean): No s/ and m/ directories for some time.
  (TAGS): Remove no-longer-defined S_FILE.
  Pass absolute filenames to etags once more.
  (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
  ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
  
  * lisp/Makefile.in (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3)
  (lisptagsfiles4): Use absolute filenames again.
  (TAGS, TAGS-LISP): Not everything needs to run in one line.
  Remove all *loaddefs files, not just the first.  Remove esh-groups.
  (maintainer-clean): Delete TAGS, TAGS-LISP.
  
  * lwlib/Makefile.in (abs_srcdir): New, set by configure.
  (ETAGS, ctagsfiles): New variables.
  (TAGS): Use ETAGS, ctagsfiles.  Use absolute filenames again.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/Makefile.in               
makefile.in-20091113204419-o5vbwnq5f7feedwu-1831
  lwlib/ChangeLog                changelog-20091113204419-o5vbwnq5f7feedwu-1447
  lwlib/Makefile.in              makefile.in-20091113204419-o5vbwnq5f7feedwu-662
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/Makefile.in                makefile.in-20091113204419-o5vbwnq5f7feedwu-631
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-11-02 14:58:38 +0000
+++ b/lisp/ChangeLog    2013-11-02 19:18:50 +0000
@@ -1,3 +1,11 @@
+2013-11-02  Glenn Morris  <address@hidden>
+
+       * Makefile.in (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3)
+       (lisptagsfiles4): Use absolute filenames again.
+       (TAGS, TAGS-LISP): Not everything needs to run in one line.
+       Remove all *loaddefs files, not just the first.  Remove esh-groups.
+       (maintainer-clean): Delete TAGS, TAGS-LISP.
+
 2013-11-02  Bozhidar Batsov  <address@hidden>
 
        * emacs-lisp/package.el (package-version-join): Recognize

=== modified file 'lisp/Makefile.in'
--- a/lisp/Makefile.in  2013-11-01 17:26:29 +0000
+++ b/lisp/Makefile.in  2013-11-02 19:18:50 +0000
@@ -49,12 +49,6 @@
 # BYTE_COMPILE_EXTRA_FLAGS = --eval '(setq byte-compile-warnings (quote (not 
unresolved)))'
 # The example above is just for developers, it should not be used by default.
 
-lisptagsfiles1 = $(lisp)/*.el
-lisptagsfiles2 = $(lisp)/*/*.el
-lisptagsfiles3 = $(lisp)/*/*/*.el
-lisptagsfiles4 = $(lisp)/*/*/*/*.el
-ETAGS = ../lib-src/etags
-
 # Automatically generated autoload files, apart from lisp/loaddefs.el.
 # Note this includes only those files that need special rules to
 # build; ie it does not need to include things created via
@@ -217,10 +211,30 @@
 update-authors:
        $(emacs) -l authors -f batch-update-authors $(top_srcdir)/etc/AUTHORS 
$(top_srcdir)
 
+
+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
+
+## 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)
-       rm -f $@; touch $@; \
-        echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) 
$(lisptagsfiles4) | sed -e "s,$(lisp)/[^ ]*loaddefs[^ ]*,," -e 
"s,$(lisp)/ldefs-boot[^ ]*,," | \
-       xargs $(XARGS_LIMIT) ${ETAGS} -a -o $@
+       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[^ ]*,,' | \
+           xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@
+
 
 # The src/Makefile.in has its own set of dependencies and when they decide
 # that one Lisp file needs to be re-compiled, we had better recompile it as
@@ -444,6 +458,7 @@
        -rm -f ./Makefile $(lisp)/loaddefs.el~
 
 maintainer-clean: distclean bootstrap-clean
+       rm -f TAGS TAGS-LISP
 
 .PHONY: check-declare
 

=== modified file 'lwlib/ChangeLog'
--- a/lwlib/ChangeLog   2013-10-24 02:15:16 +0000
+++ b/lwlib/ChangeLog   2013-11-02 19:18:50 +0000
@@ -1,3 +1,9 @@
+2013-11-02  Glenn Morris  <address@hidden>
+
+       * Makefile.in (abs_srcdir): New, set by configure.
+       (ETAGS, ctagsfiles): New variables.
+       (TAGS): Use ETAGS, ctagsfiles.  Use absolute filenames again.
+
 2013-10-24  Glenn Morris  <address@hidden>
 
        * Makefile.in (abs_top_srcdir): New, set by configure.

=== modified file 'lwlib/Makefile.in'
--- a/lwlib/Makefile.in 2013-10-24 04:05:54 +0000
+++ b/lwlib/Makefile.in 2013-11-02 19:18:50 +0000
@@ -23,6 +23,7 @@
 # and set up to be configured by ../configure.
 
 address@hidden@
address@hidden@
 # MinGW CPPFLAGS may use this.
 address@hidden@
 address@hidden@
@@ -100,7 +101,17 @@
 maintainer-clean: distclean
        rm -f TAGS
 
-TAGS:
-       ../lib-src/etags $(srcdir)/*.[ch]
+
+ETAGS = ../lib-src/etags
+
+## FIXME?  Does etags need to use absolute filenames?
+## See comments in lisp/Makefile.in, src/Makefile.in.
+ctagsfiles= *.[ch]
+
+TAGS: $(srcdir)/$(ctagsfiles)
+       "$(ETAGS)" "$(abs_srcdir)"/$(ctagsfiles)
 tags: TAGS
 .PHONY: tags
+
+
+### Makefile.in ends here

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-11-02 13:14:55 +0000
+++ b/src/ChangeLog     2013-11-02 19:18:50 +0000
@@ -1,3 +1,14 @@
+2013-11-02  Glenn Morris  <address@hidden>
+
+       * Makefile.in (abs_srcdir): New, set by configure.
+       (maintainer-clean): Remove pointless echo.  That should be in the
+       top-level Makefile, if anywhere.  Delete TAGS-LISP.
+       (extraclean): No s/ and m/ directories for some time.
+       (TAGS): Remove no-longer-defined S_FILE.
+       Pass absolute filenames to etags once more.
+       (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
+       ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
+
 2013-11-02  Jan Djärv  <address@hidden>
 
        * xfaces.c (check_lface_attrs, realize_default_face): Add

=== modified file 'src/Makefile.in'
--- a/src/Makefile.in   2013-10-24 04:05:54 +0000
+++ b/src/Makefile.in   2013-11-02 19:18:50 +0000
@@ -28,6 +28,7 @@
 # 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.
 address@hidden@
 ntsource = $(srcdir)/../nt
@@ -580,38 +581,44 @@
          if test -f "$(srcdir)/.gdbinit"; then rm -f ./.gdbinit.save; \
          else mv ./.gdbinit.save ./.gdbinit; fi; \
        fi
-## This is used in making a distribution.
-## Do not use it on development directories!
+
 distclean: bootstrap-clean
        rm -f Makefile
+
 maintainer-clean: distclean
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
-       rm -f TAGS
+       rm -f TAGS TAGS-LISP
 versionclean:
        -rm -f emacs$(EXEEXT) emacs-*.*.*$(EXEEXT) ../etc/DOC*
 extraclean: distclean
-       -rm -f *~ \#* m/?*~ s/?*~
-
-## Arrange to make a tags table TAGS-LISP for ../lisp,
-## plus TAGS for the C files, which includes ../lisp/TAGS by reference.
+       -rm -f *~ \#*
+
+
+ETAGS = ../lib-src/etags
 
 ctagsfiles1 = [xyzXYZ]*.[hc]
 ctagsfiles2 = [a-wA-W]*.[hc]
 ctagsfiles3 = [a-zA-Z]*.m
 
-TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE)
-       ../lib-src/etags --include=TAGS-LISP --include=$(lwlibdir)/TAGS \
+## FIXME?  Do we really need to use absolute filenames here?
+
+## 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 \
          --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/' \
-         $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE) \
+         "$(abs_srcdir)"/$(ctagsfiles1) "$(abs_srcdir)"/$(ctagsfiles2) \
          --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/' \
-         $(srcdir)/$(ctagsfiles3)
+         "$(abs_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 $(lispdir)/Makefile TAGS-LISP ETAGS=../lib-src/etags
+       $(MAKE) -f $(lispdir)/Makefile TAGS-LISP ETAGS="$(ETAGS)"
 
 $(lwlibdir)/TAGS:
-       (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)/Makefile tags 
ETAGS=../lib-src/etags)
+       cd $(lwlibdir) && $(MAKE) TAGS ETAGS="$(ETAGS)"
 
 tags: TAGS TAGS-LISP $(lwlibdir)/TAGS
 .PHONY: tags


reply via email to

[Prev in Thread] Current Thread [Next in Thread]