(all-dirs): Omit CVS directories.
authorroland <roland>
Wed, 11 Oct 1995 03:28:55 +0000 (03:28 +0000)
committerroland <roland>
Wed, 11 Oct 1995 03:28:55 +0000 (03:28 +0000)
Specify vpath directives to find source files in $(all-dirs).
(sources, headers): Append sources and headers from $(all-dist) to these.
(all-dist): Filter them out of this.
(all-headers, all-sources): Use $(shell find ...) instead of $(wildcard ...).

MakeTAGS

index 29dfc47..96dc59e 100644 (file)
--- a/MakeTAGS
+++ b/MakeTAGS
@@ -43,7 +43,8 @@ sysdep-dirs := $(addprefix $(sysdep_dir)/,$(sysdirs))
 
 ifndef sysdep_dirs
 # Find all sysdep directories.
-sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name RCS -print)
+sysdep_dirs := $(shell find $(..)sysdeps -type d \
+                                        ! -name RCS ! -name CVS -print)
 endif
 
 # Find all sysdep dirs there are, but putting the ones
@@ -53,6 +54,11 @@ all-dirs := $(objdir) \
            $(source_dirs) \
            $(filter-out $(sysdep-dirs),$(sysdep_dirs))
 
+vpath %.h $(all-dirs)
+vpath %.c $(all-dirs)
+vpath %.S $(all-dirs)
+vpath %.s $(all-dirs)
+
 # Find all the subdirs there are, but putting the ones
 # we are configured to use first and preserving their order.
 ifndef subdir
@@ -71,18 +77,21 @@ else
 all-dist = $(distribute)
 endif
 
+sources += $(filter %.c %.s %.S,$(all-dist))
+headers += $(filter %.h,$(all-dist))
+all-dist := $(filter-out %.h %.c %.s %.S,$(all-dist))
+
 # 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))))
+all-sources = $(shell find $(all-dirs) -maxdepth 1 \( -name fnord \
+                          $(foreach file,$(sort $(sources) $(sources:.c=.S) \
+                                                $(sources:.c=.s)),\
+                                    -o -name $(file)) \
+                          \) -print)
+
+all-headers = $(shell find $(all-dirs) -maxdepth 1 \( -name fnord \
+                          $(foreach file,$(headers),-o -name $(file)) \
+                          \) -print)
 
 tags_sources := $(strip $(tags_sources))