[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Quilt-dev] [PATCH 1/3] Avoid unnecessary rebuilds of the manpage an
From: |
Jean Delvare |
Subject: |
Re: [Quilt-dev] [PATCH 1/3] Avoid unnecessary rebuilds of the manpage and README |
Date: |
Wed, 03 Jun 2015 17:16:52 +0200 |
Le Wednesday 03 June 2015 à 15:27 +0200, Michal Marek a écrit :
> On 2015-06-03 15:17, Jean Delvare wrote:
> > Le Wednesday 03 June 2015 à 14:52 +0200, Michal Marek a écrit :
> >> On 2015-06-03 14:43, Michal Marek wrote:
> >>> On 2015-06-03 14:39, Jean Delvare wrote:
> >>>> Would the following alternative implementation work for you?
> >>>>
> >>>> ---
> >>>> Makefile.in | 6 +++++-
> >>>> 1 file changed, 5 insertions(+), 1 deletion(-)
> >>>>
> >>>> --- a/Makefile.in
> >>>> +++ b/Makefile.in
> >>>> @@ -225,7 +225,11 @@ doc/reference : bin/quilt $(QUILT:%=quil
> >>>> done |
> >>>> \
> >>>> $(SED) -e 's/\$$EDITOR ([^)]*)/$$EDITOR/'
> >>>> \
> >>>> -e '/^$$/!s/^/ /'
> >>>> \
> >>>> - -e 's/^ Usage: *//' > $@
> >>>> + -e 's/^ Usage: *//' > address@hidden
> >>>> + @if test ! -e $@ || ! @DIFF@ -q address@hidden $@;
> >>>> \
> >>>> + then
> >>>> \
> >>>> + mv -f address@hidden $@;
> >>>> \
> >>>> + fi
> >>>
> >>> Yes.
> >>
> >> I take that back. This patch suffers from the same problem as an earlier
> >> version of mine: As soon as there is a change to one of the scripts, the
> >> 'reference' file will be regenerated on every make invocation, which
> >> takes some time (split second, but still noticeable). That's why I added
> >> the persistent .tmp file in the version I sent.
> >
> > My testing says otherwise:
> >
> > $ touch quilt/setup.in
> > $ make
> > quilt/setup.in -> quilt/setup
> > $
> >
> > If doc/reference was regenerated then we would see README and quilt.1
> > being regenerated too, which isn't the case above.
> >
> > So doc/reference.tmp is regenerated (how would it not be if any script
> > changed?) but doc/reference is not.
>
> Sorry, I meant doc/reference.tmp. The problem is that make does not know
> about it. It only sees doc/reference, which is older than quilt/setup
> and executes the rule to remake doc/reference. Which does not remake it,
> so the doc files will not be remade, but running all the scripts takes
> some time.
Ah, OK, I see it now. That's why "make" no longer replies "Nothing to be
done for 'default'" on subsequent calls. But your own patch suffers from
the same problem, as the doc/reference may not actually rebuild
doc/reference.
I start thinking that the cure does more bad than good :(
--
Jean Delvare
SUSE L3 Support