diff options
author | Brian Norris <computersforpeace@gmail.com> | 2012-03-09 09:49:09 -0800 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-03-12 15:07:27 +0200 |
commit | 424050cf57f797d635059b18ba6b8591c3fc126f (patch) | |
tree | 4dcfffd4f86b3025237126bdd2399455d9420be7 | |
parent | c36e0067ffdae9ca83abae89f2d22dc9013d9734 (diff) |
Makefile: fix "make clean" for old GNU find
findutils v4.1.x does not have the `-exec CMD {} +' syntax. We can just as
easily use the `-exec CMD {} \;' syntax. However, it will launch a lot more
`rm' processes, so we only use it if the first form fails with an error.
This isn't a perfect solution (`find -exec +' can fail for other reasons)
but it works well enough.
This problem manifests itself in RHEL 4, findutils 4.1.20:
$ make clean
rm -f /XXX/mtd-utils/*.o /XXX/mtd-utils/ftl_format ...
find: missing argument to `-exec'
make: *** [clean] Error 1
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-rw-r--r-- | Makefile | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -42,6 +42,8 @@ OBJDEPS = $(BUILDDIR)/include/version.h include common.mk +CLEAN_FIND = find "$(BUILDDIR)/" -xdev '(' -name '*.[ao]' -o -name '.*.c.dep' ')' + clean:: ifneq ($(BUILDDIR)/.git,) ifneq ($(BUILDDIR),.) @@ -50,10 +52,10 @@ ifneq ($(BUILDDIR),$(CURDIR)) endif endif endif + # findutils v4.1.x (RHEL 4) do not have '+' syntax @if test -d "$(BUILDDIR)/"; then \ - find $(BUILDDIR)/ -xdev \ - '(' -name '*.[ao]' -o -name '.*.c.dep' ')' \ - -exec rm -f {} + ; \ + $(CLEAN_FIND) -exec rm -f {} + 2> /dev/null || \ + $(CLEAN_FIND) -exec rm -f {} \; ; \ fi rm -f $(BUILDDIR)/include/version.h $(MAKE) -C $(TESTS) clean |