Check for more ‘find’ failures and port ‘find’

* Makefile.in (install-eln), configure.ac (emacs_cv_find_delete):
* make-dist: Use ‘find ... -exec CMD {} +’ rather than ‘find
... -exec CMD {} \;’ so that if CMD fails, ‘find’ fails too.
* Makefile.in (install-eln): Port to ‘find’ implementations that
behave differently from GNU ‘find’ when given an argument
that contains ‘{}’ within a longer string.  POSIX allows
this behavior.
This commit is contained in:
Paul Eggert 2024-07-16 09:19:31 -07:00
parent a826296cff
commit 7cda30602f
3 changed files with 10 additions and 4 deletions

View file

@ -915,8 +915,14 @@ install-etc:
install-eln: lisp
ifeq ($(HAVE_NATIVE_COMP),yes)
umask 022 ; \
find native-lisp -type d -exec $(MKDIR_P) '$(ELN_DESTDIR){}' \; ; \
find native-lisp -type f -exec ${INSTALL_ELN} '{}' '$(ELN_DESTDIR){}' \;
find native-lisp -exec sh -c \
'for f in "$$@"; do \
if test -d "$$f"; then \
$(MKDIR_P) '\''$(ELN_DESTDIR)'\''"$$f" || exit; \
else \
$(INSTALL_ELN) "$$f" '\''$(ELN_DESTDIR)'\''"$$f"; \
fi || exit; \
done' - {} +
endif
### Build Emacs and install it, stripping binaries while installing them.

View file

@ -2060,7 +2060,7 @@ AC_CACHE_CHECK([for 'find' args to delete a file],
[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 {} ';'"
else emacs_cv_find_delete="-exec rm -f {} +"
fi])
FIND_DELETE=$emacs_cv_find_delete
AC_SUBST([FIND_DELETE])

View file

@ -464,7 +464,7 @@ if [ "${newer}" ]; then
## up an incremental distribution already has a running Emacs to byte-compile
## them with.
find ${tempdir} \( -name '*.elc' -o ! -newer "${newer}" \) \
-exec rm -f {} \; || exit
-exec rm -f {} + || exit
fi
if [ "${make_tar}" = yes ]; then