On Fri, 08/07 10:09, Dr. David Alan Gilbert wrote: > * 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.
I agree. IMO Makefile should generally write anything to the build dir and only read the SRC_PATH. Fam