Add xref for EINTR. Correct meaning of ENODEV. Explain EAGAIN.
[glibc/history.git] / MakeTAGS
blob0f79596dd18ca415e091d2b438e0240edcac611b
1 # Make the TAGS files.
3 # Copyright (C) 1992 Free Software Foundation, Inc.
4 # This file is part of the GNU C Library.
6 # The GNU C Library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Library General Public License
8 # as published by the Free Software Foundation; either version 2 of
9 # the License, or (at your option) any later version.
11 # The GNU C Library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 # Library General Public License for more details.
16 # You should have received a copy of the GNU Library General Public
17 # License along with the GNU C Library; see the file COPYING.LIB.  If
18 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
19 # Cambridge, MA 02139, USA.
21 ifdef subdir
22 .. := ../
23 endif
25 include $(..)Makeconfig
27 ifndef tags_sources
28 tags_sources = $(all-sources) $(all-headers)
29 endif
31 sysdep-dirs := $(addprefix $(sysdep_dir)/,$(sysdirs))
33 # Find all sysdep dirs there are, but putting the ones
34 # we are configured to use first and preserving their order.
35 all-dirs := $(objdir) \
36             $(sysdep-dirs) \
37             $(source_dirs) \
38             $(filter-out $(sysdep-dirs),\
39                          $(patsubst ./%,%,\
40                                     $(shell find $(sysdep_dir) -type d -print)\
41                           ))
43 # Find all the subdirs there are, but putting the ones
44 # we are configured to use first and preserving their order.
45 ifndef subdir
46 subdirs := $(subdirs) \
47            $(filter-out $(subdirs),\
48                         $(shell cat $(wildcard $(addsuffix /Subdirs,\
49                                                            $(all-dirs)))\
50                                     /dev/null))
51 all-dist = $(shell cat /dev/null $(wildcard $(filter %.c %.h %.S %.s,\
52                                                      $(all-dirs:%=%/Dist))))
53 tags_sources = $(all-sources) $(all-headers) $(all-dist)
54 endif
56 # All different versions of $(sources), preserving the configured sysdep
57 # directory order.
58 all-sources = $(wildcard $(foreach file,$(sources),\
59                                    $(file) \
60                                    $(foreach dir,$(all-dirs),\
61                                              $(dir)/$(file) \
62                                              $(dir)/$(file:.c=.S) \
63                                              $(dir)/$(file:.c=.s))))
65 all-headers = $(wildcard $(foreach file,$(headers),\
66                                    $(file) \
67                                    $(foreach dir,$(all-dirs),$(dir)/$(file))))
69 tags_sources := $(strip $(tags_sources))
71 TAGS: $(tags_sources)
72 ifdef subdir
73 ifdef tags_sources
74         $(ETAGS) -o $@ $^
75 else
76 # No sources.  Create a dummy file. 
77         touch $@
78 endif # tags_sources
79 else # parent
80 TAGS: subdir_TAGS
81 # Note that this uses the -i switch, and thus requires v19 etags.
82         $(ETAGS) -o $@ \
83                  $(subdirs:%=-i %/TAGS) \
84                  $(filter-out subdir_TAGS,$^)
86 .PHONY: subdir_TAGS $(subdirs:%=%/TAGS)
87 subdir_TAGS: $(subdirs:%=%/TAGS)
88 $(subdirs:%=%/TAGS):
89         $(MAKE) -C $(@D) no_deps=t $(@F)
91 endif # subdir