]> git.eshelyaron.com Git - emacs.git/commitdiff
Use find -delete if available
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 31 Mar 2017 02:26:58 +0000 (19:26 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 31 Mar 2017 02:51:39 +0000 (19:51 -0700)
This shortens the ‘make’ output and should avoid some
repetitive scanning of directories during a build.
* configure.ac (FIND_DELETE): New var.
* lisp/Makefile.in (compile-always, bootstrap-clean):
* test/Makefile.in (clean, bootstrap-clean): Use it.
* test/Makefile.in (ELCFILES, LOGSAVEFILES): Remove; no longer needed.

configure.ac
lisp/Makefile.in
test/Makefile.in

index 9937a6cce9159aee20777fb80f171d6a591b7868..bd8f7650cc4977a2979e4f617b205c8f7468cf50 100644 (file)
@@ -1178,6 +1178,16 @@ AC_PATH_PROG(GZIP_PROG, gzip)
 test $with_compress_install != yes && test -n "$GZIP_PROG" && \
    GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)"
 
+AC_CACHE_CHECK([for 'find' args to delete a file],
+  [emacs_cv_find_delete],
+  [if touch conftest.tmp && find conftest.tmp -delete 2>/dev/null &&
+      test ! -f conftest.tmp
+   then emacs_cv_find_delete="-delete"
+   else emacs_cv_find_delete="-exec rm -f {} ';'"
+   fi])
+FIND_DELETE=$emacs_cv_find_delete
+AC_SUBST([FIND_DELETE])
+
 PAXCTL_dumped=
 PAXCTL_notdumped=
 if test $opsys = gnu-linux; then
index cbe7718981ea9b606867dd73e68f6491b4da9da8..185554ca63a4a786a44ea676c6f5717eb4470615 100644 (file)
@@ -47,6 +47,9 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 am__v_at_1 =
 
+
+FIND_DELETE = @FIND_DELETE@
+
 # You can specify a different executable on the make command line,
 # e.g. "make EMACS=../src/emacs ...".
 
@@ -343,7 +346,7 @@ compile: $(LOADDEFS) autoloads compile-first
 # unconditionally.  Some files don't actually get compiled because they
 # set the local variable no-byte-compile.
 compile-always:
-       cd $(lisp) && rm -f *.elc */*.elc */*/*.elc */*/*/*.elc
+       find $(lisp) -name '*.elc' $(FIND_DELETE)
        $(MAKE) compile
 
 .PHONY: backup-compiled-files compile-after-backup
@@ -433,7 +436,8 @@ $(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) $(CAL_DIR)/diary-loaddefs.el
 .PHONY: bootstrap-clean distclean maintainer-clean
 
 bootstrap-clean:
-       -cd $(lisp) && rm -f *.elc */*.elc */*/*.elc */*/*/*.elc $(AUTOGENEL)
+       find $(lisp) -name '*.elc' $(FIND_DELETE)
+       -cd $(lisp) && rm -f $(AUTOGENEL)
 
 distclean:
        -rm -f ./Makefile $(lisp)/loaddefs.el~
index 5849e9c3ac990386194c52be22e2ec46c0d2201e..c0056b6f44d25732aad81b16579d695770ffc7ce 100644 (file)
@@ -33,6 +33,7 @@ SHELL = @SHELL@
 srcdir = @srcdir@
 VPATH = $(srcdir)
 
+FIND_DELETE = @FIND_DELETE@
 MKDIR_P = @MKDIR_P@
 
 SEPCHAR = @SEPCHAR@
@@ -125,11 +126,9 @@ endif
 
 ELFILES = $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \
                -path "*resources" -prune -o -name "*el" -print)
-## .elc files may be in a different directory for out of source builds
-ELCFILES = $(patsubst %.el,%.elc, \
+## .log files may be in a different directory for out of source builds
+LOGFILES = $(patsubst %.el,%.log, \
                $(patsubst $(srcdir)%,.%,$(ELFILES)))
-LOGFILES = $(patsubst %.elc,%.log,${ELCFILES})
-LOGSAVEFILES  = $(patsubst %.elc,%.log~,${ELCFILES})
 TESTS = $(subst ${srcdir}/,,$(LOGFILES:.log=))
 
 ## If we have to interrupt a hanging test, preserve the log so we can
@@ -193,11 +192,11 @@ mostlyclean:
        rm -f *.tmp
 
 clean:
-       -rm -f ${LOGFILES} ${LOGSAVEFILES}
-       -rm make-test-deps.mk
+       find . '(' -name '*.log' -o -name '*.log~' ')' $(FIND_DELETE)
+       rm -f make-test-deps.mk
 
 bootstrap-clean: clean
-       -rm -f ${ELCFILES}
+       find $(srcdir) -name '*.elc' $(FIND_DELETE)
 
 distclean: clean
        rm -f Makefile