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