diff options
author | Roland McGrath <roland@gnu.org> | 1992-05-07 05:20:22 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1992-05-07 05:20:22 +0000 |
commit | fe8c20466391dfafe8232c235c3015a2592c3021 (patch) | |
tree | 3685cda2ee35370dfc34aa39837cbf8b723c5927 /MakeTAGS | |
parent | 0966de1ce965dd416516c6accb44c3e0002531d9 (diff) |
Formerly ../MakeTAGS.~2~
Diffstat (limited to 'MakeTAGS')
-rw-r--r-- | MakeTAGS | 81 |
1 files changed, 64 insertions, 17 deletions
@@ -18,24 +18,71 @@ # not, write to the Free Software Foundation, Inc., 675 Mass Ave, # Cambridge, MA 02139, USA. -ifndef tags-sources -tags-sources = $(all-sources) $(headers) +ifdef subdir +.. := ../ +endif + +include $(..)Makeconfig + +ifndef tags_sources +tags_sources = $(all-sources) $(all-headers) +endif + +sysdep-dirs := $(addprefix $(sysdep_dir)/,$(sysdirs)) + +# Find all sysdep dirs there are, but putting the ones +# we are configured to use first and preserving their order. +all-dirs := $(objdir) \ + $(sysdep-dirs) \ + $(source_dirs) \ + $(filter-out $(sysdep-dirs),\ + $(patsubst ./%,%,\ + $(shell find $(sysdep_dir) -type d -print)\ + )) + +# Find all the subdirs there are, but putting the ones +# we are configured to use first and preserving their order. +ifndef subdir +subdirs := $(subdirs) \ + $(filter-out $(subdirs),\ + $(shell cat $(wildcard $(addsuffix /Subdirs,\ + $(all-dirs)))\ + /dev/null)) +all-dist = $(shell cat /dev/null $(wildcard $(filter %.c %.h %.S %.s,\ + $(all-dirs:%=%/Dist)))) +tags_sources = $(all-sources) $(all-headers) $(all-dist) endif -all-sources = $(foreach file,$(sources),\ - $(firstword $(wildcard $(file) \ - $(foreach dir,$(+sysdep_dirs),\ - $(dir)/$(file) \ - $(dir)/$(file:.c=.S) \ - $(dir)/$(file:.c=.s)\ - )))) -TAGS: $(tags-sources) - @$(cmdecho) '$(ETAGS) -f $@ ...' +# All different versions of $(sources), preserving the configured sysdep +# directory order. +all-sources = $(wildcard $(foreach file,$(sources),\ + $(file) \ + $(foreach dir,$(all-dirs),\ + $(dir)/$(file) \ + $(dir)/$(file:.c=.S) \ + $(dir)/$(file:.c=.s)))) + +all-headers = $(wildcard $(foreach file,$(headers),\ + $(file) \ + $(foreach dir,$(all-dirs),$(dir)/$(file)))) + +tags_sources := $(strip $(tags_sources)) + +TAGS: $(tags_sources) ifdef subdir - @$(ETAGS) -f $@ $^ -else +ifdef tags_sources + $(ETAGS) -o $@ $^ +endif # tags_sources +else # parent +TAGS: subdir_TAGS # Note that this uses the -i switch, and thus requires v19 etags. - @$(ETAGS) -f $@ \ - $(subdirs:%=-i %) \ - $^ -endif + $(ETAGS) -o $@ \ + $(subdirs:%=-i %/TAGS) \ + $(filter-out subdir_TAGS,$^) + +.PHONY: subdir_TAGS $(subdirs:%=%/TAGS) +subdir_TAGS: $(subdirs:%=%/TAGS) +$(subdirs:%=%/TAGS): + $(MAKE) -C $(@D) no_deps=t $(@F) + +endif # subdir |