If we disallowed builds *from in source tree* requiring all output to go into a separate build output directory instead (like any sane person does*) we wouldn't need a crazy find in the source tree to mess things up. ;)

this can be done today:

$ mkdir foo && cd foo && ../my-hg/2.7/configure --srcdir=../my-hg/2.7 && make -j12

I think all we'd need to do is disallow the cwd when configuring or building from being within srcdir.

-gps

* note: the author is normally too lazy to be sane because it involves slightly more typing.


On Mon, Jul 1, 2013 at 4:19 AM, R. David Murray <rdmurray@bitdance.com> wrote:
On Mon, 01 Jul 2013 08:33:38 +0200, Georg Brandl <g.brandl@gmx.net> wrote:
> Am 26.06.2013 16:24, schrieb Victor Stinner:
> > 2013/6/26 Eric V. Smith <eric@trueblade.com>:
> >> I think that's exactly what's happening.
> >>
> >> From the bug report:
> >>
> >>         find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
> >>                            -o -name '[@,#]*' -o -name '*.old' \
> >>                            -o -name '*.orig' -o -name '*.rej' \
> >>                            -o -name '*.bak' ')' \
> >>                            -exec rm -f {} ';'
> >>
> >> Will find files beginning with '@' inside subdirectories of $(srcdir)/.hg.
> >
> > In my opinion, make distclean should only remove files generated by
> > configure and a build. It should not remove random files.
> >
> > *~, .orig, .rej, .back should be kept. They are not generated by
> > configure nor make.
>
> I think you want "make clean" then.

That's a good point.  If the find were dropped, the target would have to
be renamed.  "make configureclean", maybe.  But I think it is easier and
less confusing just to leave things as they will be after Eric applies
the fix proposed in http://bugs.python.org/issue18312.

--David