uniquify files passed to etags
[automake.git] / tags.am
blob1777fa2c998eb9ae901eb9851f19c88acd17324c
1 ## automake - create Makefile.in from Makefile.am
2 ## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
4 ## This program is free software; you can redistribute it and/or modify
5 ## it under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2, or (at your option)
7 ## any later version.
9 ## This program is distributed in the hope that it will be useful,
10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ## GNU General Public License for more details.
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; if not, write to the Free Software
16 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17 ## 02111-1307, USA.
18 tags: TAGS
20 ID: $(HEADERS) $(SOURCES) $(LISP)
21         here=`pwd` && cd $(srcdir) \
22           && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
24 TAGS: @DIRS@ $(HEADERS) $(SOURCES) @CONFIG@ $(TAGS_DEPENDENCIES) $(LISP)
25         tags=; \
26         here=`pwd`; \
27 SUBDIRS list='$(SUBDIRS)'; for subdir in $$list; do \
28 SUBDIRS   test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
29 SUBDIRS done; \
30 ## Make sure the list of sources is unique.
31         list='$(SOURCES) $(HEADERS)'; \
32         unique=`for i in $$list; do echo $$i; done | \
33           awk '    { files[$$0] = 1; } \
34                END { for (i in files) print i; }'`; \
35 ## Make sure we have something to run etags on.
36         test -z "$(ETAGS_ARGS)@CONFIG@$$unique$(LISP)$$tags" \
37           || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags @CONFIG@ $$unique $(LISP) -o $$here/TAGS)