changeset 110675:7e4b4d33d1b2

Support TAGS targets in the w32 build. nt/makefile.w32-in (frc, TAGS, TAGS-gmake, TAGS-nmake): New targets. emacs-src.tags: New file. src/makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags) (TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake) (nt-TAGS-gmake, nt-TAGS-nmake): New targets. lisp/makefile.w32-in (DEST, TAGS, TAGS-LISP, TAGS-nmake) (TAGS-LISP-nmake, TAGS-gmake, TAGS-LISP-gmake, TAGS-SH) (TAGS-LISP-SH, TAGS-CMD, TAGS-LISP-CMD): New targets. lib-src/makefile.w32-in (tags, TAGS): New targets.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 01 Oct 2010 13:45:16 +0200
parents 8ce8af5eb5e3
children 3d2b190fdceb
files lib-src/ChangeLog lib-src/makefile.w32-in lisp/ChangeLog lisp/makefile.w32-in nt/ChangeLog nt/emacs-src.tags nt/makefile.w32-in src/ChangeLog src/makefile.w32-in
diffstat 9 files changed, 128 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/ChangeLog	Fri Oct 01 11:15:10 2010 +0000
+++ b/lib-src/ChangeLog	Fri Oct 01 13:45:16 2010 +0200
@@ -1,3 +1,7 @@
+2010-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in (tags, TAGS): New targets.
+
 2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 
 	* emacsclient.c (get_server_config): Don't read Emacs pid from
--- a/lib-src/makefile.w32-in	Fri Oct 01 11:15:10 2010 +0000
+++ b/lib-src/makefile.w32-in	Fri Oct 01 13:45:16 2010 +0200
@@ -378,6 +378,12 @@
 getopt.h:		getopt_.h
 			$(CP) $(ALL_DEPS) $@
 
+### TAGS ###
+
+tags: TAGS
+TAGS: $(BLD)/etags.exe *.c *.h
+	$(BLD)/etags.exe *.c *.h
+
 ### DEPENDENCIES ###
 
 EMACS_ROOT	= ..
--- a/lisp/ChangeLog	Fri Oct 01 11:15:10 2010 +0000
+++ b/lisp/ChangeLog	Fri Oct 01 13:45:16 2010 +0200
@@ -1,3 +1,9 @@
+2010-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in (DEST, TAGS, TAGS-LISP, TAGS-nmake)
+	(TAGS-LISP-nmake, TAGS-gmake, TAGS-LISP-gmake, TAGS-SH)
+	(TAGS-LISP-SH, TAGS-CMD, TAGS-LISP-CMD): New targets.
+
 2010-10-01  Glenn Morris  <rgm@gnu.org>
 
 	* obsolete/sc.el: Remove file.
--- a/lisp/makefile.w32-in	Fri Oct 01 11:15:10 2010 +0000
+++ b/lisp/makefile.w32-in	Fri Oct 01 13:45:16 2010 +0200
@@ -50,7 +50,11 @@
 
 lisptagsfiles1 = $(lisp)/*.el
 lisptagsfiles2 = $(lisp)/*/*.el
-ETAGS = "../lib-src/$(BLD)/etags"
+lisptagsfiles3 = $(lisp)/*/*/*.el
+lisptagsfiles4 = $(lisp)/*/*/*/*.el
+ETAGS = "../lib-src/$(BLD)/etags.exe"
+## $(DEST) is overridden by ../src/makefile.w32-in.
+DEST=$(lisp)
 
 # Automatically generated autoload files, apart from lisp/loaddefs.el.
 LOADDEFS = $(lisp)/calendar/cal-loaddefs.el \
@@ -244,11 +248,42 @@
 update-authors:
 	$(emacs) -l authors -f batch-update-authors $(srcdir)/etc/AUTHORS $(srcdir)
 
-TAGS: $(lisptagsfiles1) $(lisptagsfiles2)
-	$(ETAGS) $(lisptagsfiles1) $(lisptagsfiles2)
+TAGS: TAGS-$(MAKETYPE)
+
+TAGS-LISP: TAGS-LISP-$(MAKETYPE)
+
+TAGS-nmake:
+	echo This target is not supported with NMake
+	exit -1
+
+TAGS-LISP-nmake:
+	echo This target is not supported with NMake
+	exit -1
+
+TAGS-gmake: TAGS-$(SHELLTYPE)
+
+TAGS-LISP-gmake: TAGS-LISP-$(SHELLTYPE)
 
-TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2)
-	$(ETAGS) -o TAGS-LISP $(lisptagsfiles1) $(lisptagsfiles2)
+TAGS-SH: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+	- $(DEL) TAGS
+	for dir in . $(WINS_UPDATES); do \
+	  $(ETAGS) -a $(lisp)/$$dir/*.el; \
+	done
+
+TAGS-LISP-SH: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+	- $(DEL) $(DEST)/TAGS-LISP
+	for dir in . $(WINS_UPDATES); do \
+	  $(ETAGS) -a -o $(DEST)/TAGS-LISP $(lisp)/$$dir/*.el; \
+	done
+
+TAGS-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+	- $(DEL) TAGS
+	for %%d in (. $(WINS_UPDATES)) do $(ETAGS) -a $(lisp)/%%d/*.el
+
+TAGS-LISP-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+	- $(DEL) $(DEST)/TAGS-LISP
+	for %%d in (. $(WINS_UPDATES)) do \
+	  $(ETAGS) -a -o $(DEST)/TAGS-LISP $(lisp)/%%d/*.el
 
 .SUFFIXES: .elc .el
 
--- a/nt/ChangeLog	Fri Oct 01 11:15:10 2010 +0000
+++ b/nt/ChangeLog	Fri Oct 01 13:45:16 2010 +0200
@@ -1,5 +1,7 @@
 2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 
+	* makefile.w32-in (frc, TAGS, TAGS-gmake, TAGS-nmake): New targets.
+
 	* gmake.defs: Add a comment with a single quote to fix
 	fontification.  (Bug#7102)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nt/emacs-src.tags	Fri Oct 01 13:45:16 2010 +0200
@@ -0,0 +1,6 @@
+  This file defines the regular expressions for etags to look for
+  in the src directory.  It is used by the w32 build to work around
+  the annoyances of quoting command-line arguments with various
+  w32 shell.
+
+/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/
--- a/nt/makefile.w32-in	Fri Oct 01 11:15:10 2010 +0000
+++ b/nt/makefile.w32-in	Fri Oct 01 13:45:16 2010 +0200
@@ -417,3 +417,16 @@
 
 realclean: cleanall
 	- $(DEL_TREE) ../bin
+
+TAGS: TAGS-$(MAKETYPE)
+
+frc:
+TAGS-gmake: frc
+	../lib-src/$(BLD)/etags $(CURDIR)/*.c
+	$(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP
+	$(MAKE) $(MFLAGS) -C ../lib-src TAGS
+
+TAGS-nmake:
+	echo This target is not supported with NMake
+
+.PHONY: frc
--- a/src/ChangeLog	Fri Oct 01 11:15:10 2010 +0000
+++ b/src/ChangeLog	Fri Oct 01 13:45:16 2010 +0200
@@ -1,3 +1,9 @@
+2010-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags)
+	(TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake)
+	(nt-TAGS-gmake, nt-TAGS-nmake): New targets.
+
 2010-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* xml.c (parse_string): Use const.
--- a/src/makefile.w32-in	Fri Oct 01 11:15:10 2010 +0000
+++ b/src/makefile.w32-in	Fri Oct 01 13:45:16 2010 +0200
@@ -293,6 +293,51 @@
 	- $(DEL_TREE) oo
 	- $(DEL_TREE) oo-spd
 
+## Arrange to make a tags table TAGS-LISP for ../lisp,
+## plus TAGS for the C files, which includes ../lisp/TAGS by reference.
+##
+## This works only with GNU Make.
+
+TAGS: $(OBJ0) $(OBJ1) $(WIN32OBJ)
+	$(MAKE) $(MFLAGS) TAGS-$(MAKETYPE)
+
+TAGS-LISP: $(OBJ0) $(OBJ1) $(WIN32OBJ)
+	$(MAKE) $(MFLAGS) TAGS-LISP-$(MAKETYPE)
+
+TAGS-gmake:
+	../lib-src/$(BLD)/etags.exe --include=TAGS-LISP --include=../nt/TAGS \
+	  --regex=@../nt/emacs-src.tags \
+	  $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ0))
+	../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
+	  $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ1))
+	../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
+	  $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(WIN32OBJ)) $(CURDIR)/*.h
+
+TAGS-nmake:
+	echo This target is not supported with NMake
+	exit -1
+
+frc:
+TAGS-LISP-gmake: frc
+	$(MAKE) $(MFLAGS) -C ../lisp TAGS-LISP DEST=../src
+
+TAGS-LISP-nmake:
+	echo This target is not supported with NMake
+	exit -1
+
+../nt/TAGS: frc
+	$(MAKE) $(MFLAGS) nt-TAGS-$(MAKETYPE)
+
+nt-TAGS-gmake:
+	$(MAKE) $(MFLAGS) -C ../nt TAGS
+
+nt-TAGS-nmake:
+	echo This target is not supported with NMake
+	exit -1
+
+tags: TAGS TAGS-LISP ../nt/TAGS
+.PHONY: tags
+
 ### DEPENDENCIES ###
 
 EMACS_ROOT = ..