[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: find usage of gcov-clean target in Makefile.in

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Thu, 28 Nov 2019 21:17:54 +0000

Yasuhito FUTATSUKI wrote on Fri, Nov 29, 2019 at 00:15:48 +0900:
> Hi, while I do 'make distclean', I find odd `find' usage.
>
> In Makefile.in:
> > gcov-clean:
> > rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
> > rm -rf gcov-report
> > find . -name "*.gcda" -o -name "*.gcno" -exec rm -f -- {} \;
>
> Is it intended below ?
> find . \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f -- {}\;

I believe so, yes. Good catch.

> I also want to insert `-name ".svn" -prune -or ' to avoid searching
> files into metadata directory in working copy, for I can find it
> because it takes long time to execute gov-clean target on my jalopy
> computer :)

Is -prune portable? I don't see it in the POSIX spec of find(1).

Is there a way to avoid find(1) altogether here? For example, by skipping this
block when gcov hasn't been run, or by hardcoding glob patterns to gcda/gcno
files, etc?

Would the following be correct? —
.
    if test -e gcov-report; then
        find . \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f -- {} \;
        rm -rf gcov-report
    fi

I deliberately did the «rm» after the «find» to make the target
interruptible/restartable.

Alternatively, you could sidestep the problem entirely by doing an out-of-tree
build and then just rm -rf the builddir. (I always do out-of-tree builds with
the build tree on a ramdisk; it's far faster this way. That used to be documented
on http://wiki.apache.org/subversion/BuildNotes, but I'm not sure if that link's
still valid — it just gives me a login prompt now ☹)

Cheers,

Daniel
Received on 2019-11-28 22:18:01 CET

This is an archived mail posted to the Subversion Dev mailing list.