* Stefan Weil (s...@weilnetz.de) wrote: > Am 06.08.2015 um 13:54 schrieb Dr. David Alan Gilbert: > >Hi Stefan, > > I don't really understand the way PO stuff is supposed to work, > >but I often get the problem that my git tree gets changed during > >an out of tree build, causing the po subdirectory to be > >dirtied. > > > >I think this is due to the rule: > > > >$(PO_PATH)/%.po: $(PO_PATH)/messages.po > > $(call quiet-command, msgmerge -q $@ $< > $@.bak && mv $@.bak $@, " > > GEN $@") > > > >in po/Makefile. > > > >Why does that merge into $(PO_PATH)/%.po rather than %.po - i.e. > >why to the source rather than to the build directory? > > > >Dave > > > >-- > >Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > > Hi Dave, > > the *.po files are initially generated, then manually > enhanced by the translated texts. > > Each time when there are modifications to the > related source file (for QEMU: ui/gtk.c), the *.po > files need updates, too (new or removed texts, > but most often changes of line numbers). > > That's why I have sent a patch to update the > *.po files for QEMU 2.4.0. With this patch > (which is still not applied), you would not > get changes when doing a complete build > because *.po files and ui/gtk.c would match. > > As long as there is the mismatch, you'll > get modified *.po files when running > "make install". I usually handle this case > by running "git diff po|patch -p1 -R" > which removes the *.po modifications.
But why are these files in the source tree *ever* updated by a make install; if you're saying the .po files need updating, that's fine, but have the makefile do the update into the build directory, not the source directory. You might want a convenience make target for updating the source directory po files to make your life easier, but I don't understand why that triggers during a normal make install. Dave > > Stefan > > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK