Use find -delete if available

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.
This commit is contained in:
Paul Eggert 2017-03-30 19:26:58 -07:00
parent e22d740c30
commit 3a11b3e330
3 changed files with 22 additions and 9 deletions

View 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

View 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~

View 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