ChangeLog format [WAS: Error making pot file]
Chris Shoemaker
c.shoemaker at cox.net
Fri Jan 6 13:00:29 EST 2006
On Fri, Jan 06, 2006 at 11:37:26AM -0500, Derek Atkins wrote:
> Chris Shoemaker <c.shoemaker at cox.net> writes:
>
> > On Thu, Jan 05, 2006 at 12:21:57PM -0500, Derek Atkins wrote:
> >> Quoting Chris Shoemaker <c.shoemaker at cox.net>:
> >>
> >> >"At best"? If I touched ChangeLog as I edited files, like you
> >> >suggest, I'd constantly be remaking POTFILES.in. How's that for a
> >> >reason not to add ChangeLog as a dependency for anything being remade?
> >>
> >> I'd rather it rebuild too often and make the build take a little longer
> >> than not rebuild it often enough and blow out the build when a file is
> >> removed.
> >
> > But how could it break?
> >
> > If you built it once, and then removed a file, `make pot` wouldn't
> > break because it remake POTFILES.in, and `make` wouldn't break because
> > po/ is up-to-date. The only thing that could break is going into po
> > and using an explicit make target, and ONLY IF _YOU'RE_ THE ONE who
> > removed the file since the last `make pot'. C'mon.
>
> FYI, I have no "gnucash.pot" in my build tree. "make" doesn't build
> one on my system, but "make dist" would. At least with the version of
> po/Makefile.in that I've got on my system, the pot file is built only
> as part of 'dist'.
AFAICT, this is as it should be.
> So.. It could break if you run make, then svn update (where someone
> deleted a file), and then run "make dist".
You're right. But if I run make, then use svn to change to some other
revision, and then run some other make command, and things break, I
don't count that as a broken build - that's just unlucky. Whenever I
change revisions I expect that there's a _chance_ I'll need to `make
clean'. I usually don't, and it works fine, but I wouldn't count it
as a broken build until I had.
Even if our policy was that every committed tree-state should be
compatible with the make-state from any previous build, I would have
no idea how to achieve that in general.
My rule: "Anything that `make clean' fixes wasn't really broken."
> It will also get built if
> you run "make pot" from the top level.
>
> Your makefile rules deals with the latter case, but not the former. A
> simple "rebuild po/POTFILES.in in the dist rule in the top level
> Makefile" will take care of this case.
Well, since actually having to `make clean' is annoying, we should
certainly do anything easy to avoid it. The dist-hook runs just
before the archival, so how's this:
dist-hook:
./make-gnucash-potfiles > $(distdir)/po/POTFILES.in
>
> Note that we don't control po/Makefile, so future versions/changes may
> add other dependencies. This is all dependent on the version of
> gettext installed on your machine.
It's not a dependency, but there already is the option of using
POTFILES.skip. But if we wanted to use that, it _should_ be in svn.
-chris
More information about the gnucash-devel
mailing list