[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-xfs
Subject:    [PATCH 1/2] [GETTEXT]: Make build system look more like automake
From:       Arkadiusz Miśkiewicz <arekm () maven ! pl>
Date:       2009-01-29 9:43:31
Message-ID: 1233222212-2785-1-git-send-email-arekm () maven ! pl
[Download RAW message or body]

configure.in: Find all *.c files using find so no need to update
po/Makefile manually (previous method leads to problems like when
someone adds new .c file and forgets to update Makefile - then
translations are removed after update).

po/Makefile: Use automaticly found .c files. Add update-po target.
Show translation statistics when processing po files. Turn on msgfmt
validation (-c).

How to update translations now?

 $ ./configure
 $ cd po; make update-po
 $ vim your.po
 $ make

Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl>
---
 configure.in         |    4 ++
 include/builddefs.in |    1 +
 include/buildrules   |   22 +++++++++---
 po/Makefile          |   91 +-------------------------------------------------
 4 files changed, 22 insertions(+), 96 deletions(-)

diff --git a/configure.in b/configure.in
index 6bd2421..f56ae15 100644
--- a/configure.in
+++ b/configure.in
@@ -35,6 +35,10 @@ AC_ARG_ENABLE(lib64,
 	enable_lib64=no)
 AC_SUBST(enable_lib64)
 
+# Find localized files
+LOCALIZED_FILES=`find ${srcdir} -name '*.c' -type f | xargs`;
+AC_SUBST(@LOCALIZED_FILES)
+
 AC_PACKAGE_GLOBALS(xfsprogs)
 AC_PACKAGE_UTILITIES(xfsprogs)
 AC_MULTILIB($enable_lib64)
diff --git a/include/builddefs.in b/include/builddefs.in
index f07d8d6..49e2722 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -74,6 +74,7 @@ MAKEDEPEND	= @makedepend@
 MSGFMT		= @msgfmt@
 MSGMERGE	= @msgmerge@
 XGETTEXT	= @xgettext@
+LOCALIZED_FILES	= @LOCALIZED_FILES@
 
 RPM		= @rpm@
 RPMBUILD	= @rpmbuild@
diff --git a/include/buildrules b/include/buildrules
index 1047ec3..f2a3372 100644
--- a/include/buildrules
+++ b/include/buildrules
@@ -42,14 +42,24 @@ ifdef POTHEAD
 $(POTHEAD): $(XGETTEXTFILES)
 	$(XGETTEXT) --language=C --keyword=_ --keyword=N_ -o $@ $(XGETTEXTFILES)
 
-# Generate temp .po files, to check whether translations need updating.
-# Not by default, due to gettext output differences between versions.
-%.po: $(POTHEAD)
-#	$(MSGMERGE) -o $@.tmpo $@ $(POTHEAD)
-#	if ! diff $@.tmpo $@ >/dev/null; then echo "$@ dated, see $@.tmpo"; fi
+# Update translations
+update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
+	catalogs=$(wildcard $(TOPDIR)/po/*.po); \
+	for cat in $$catalogs; do \
+	  lang=`basename $$cat .po`; \
+	  mv $$lang.po $$lang.old.po; \
+	  echo "$$lang:"; \
+	  if $(MSGMERGE) $$lang.old.po $(POTHEAD) -o $$lang.po; then \
+	    rm -f $$lang.old.po; \
+	  else \
+	    echo "msgmerge for $$lang failed!"; \
+	    rm -f $$lang.po; \
+	    mv $$lang.old.po $$lang.po; \
+	  fi; \
+	done
 
 %.mo: %.po
-	$(MSGFMT) -o $@ $<
+	$(MSGFMT) -c --statistics -o $@ $<
 endif
 
 source :
diff --git a/po/Makefile b/po/Makefile
index c6ccf60..0cf2e87 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -11,96 +11,7 @@ LSRCFILES = $(LINGUAS:%=%.po) $(POTHEAD)
 LDIRT = $(POTHEAD)
 
 # TODO: db/ logprint/
-XGETTEXTFILES =	\
-		$(TOPDIR)/copy/xfs_copy.c \
-		$(TOPDIR)/estimate/xfs_estimate.c \
-		$(TOPDIR)/growfs/xfs_growfs.c \
-		$(TOPDIR)/io/attr.c \
-		$(TOPDIR)/io/bmap.c \
-		$(TOPDIR)/io/fadvise.c \
-		$(TOPDIR)/io/file.c \
-		$(TOPDIR)/io/freeze.c \
-		$(TOPDIR)/io/fsync.c \
-		$(TOPDIR)/io/getrusage.c \
-		$(TOPDIR)/io/imap.c \
-		$(TOPDIR)/io/init.c \
-		$(TOPDIR)/io/inject.c \
-		$(TOPDIR)/io/madvise.c \
-		$(TOPDIR)/io/mincore.c \
-		$(TOPDIR)/io/mmap.c \
-		$(TOPDIR)/io/open.c \
-		$(TOPDIR)/io/parent.c \
-		$(TOPDIR)/io/pread.c \
-		$(TOPDIR)/io/prealloc.c \
-		$(TOPDIR)/io/pwrite.c \
-		$(TOPDIR)/io/resblks.c \
-		$(TOPDIR)/io/sendfile.c \
-		$(TOPDIR)/io/shutdown.c \
-		$(TOPDIR)/io/truncate.c \
-		$(TOPDIR)/libdisk/dm.c \
-		$(TOPDIR)/libdisk/drivers.c \
-		$(TOPDIR)/libdisk/evms.c \
-		$(TOPDIR)/libdisk/fstype.c \
-		$(TOPDIR)/libdisk/lvm.c \
-		$(TOPDIR)/libdisk/md.c \
-		$(TOPDIR)/libdisk/pttype.c \
-		$(TOPDIR)/libdisk/xvm.c \
-		$(TOPDIR)/libxcmd/command.c \
-		$(TOPDIR)/libxcmd/help.c \
-		$(TOPDIR)/libxcmd/input.c \
-		$(TOPDIR)/libxcmd/paths.c \
-		$(TOPDIR)/libxcmd/projects.c \
-		$(TOPDIR)/libxcmd/quit.c \
-		$(TOPDIR)/libxfs/darwin.c \
-		$(TOPDIR)/libxfs/freebsd.c \
-		$(TOPDIR)/libxfs/init.c \
-		$(TOPDIR)/libxfs/irix.c \
-		$(TOPDIR)/libxfs/linux.c \
-		$(TOPDIR)/libxfs/rdwr.c \
-		$(TOPDIR)/libxfs/trans.c \
-		$(TOPDIR)/libxfs/util.c \
-		$(TOPDIR)/libxlog/util.c \
-		$(TOPDIR)/mkfs/proto.c \
-		$(TOPDIR)/mkfs/xfs_mkfs.c \
-		$(TOPDIR)/quota/edit.c \
-		$(TOPDIR)/quota/free.c \
-		$(TOPDIR)/quota/init.c \
-		$(TOPDIR)/quota/path.c \
-		$(TOPDIR)/quota/project.c \
-		$(TOPDIR)/quota/quot.c \
-		$(TOPDIR)/quota/quota.c \
-		$(TOPDIR)/quota/report.c \
-		$(TOPDIR)/quota/state.c \
-		$(TOPDIR)/quota/util.c \
-		$(TOPDIR)/repair/agheader.c \
-		$(TOPDIR)/repair/attr_repair.c \
-		$(TOPDIR)/repair/avl.c \
-		$(TOPDIR)/repair/avl64.c \
-		$(TOPDIR)/repair/bmap.c \
-		$(TOPDIR)/repair/dino_chunks.c \
-		$(TOPDIR)/repair/dinode.c \
-		$(TOPDIR)/repair/dir.c \
-		$(TOPDIR)/repair/dir2.c \
-		$(TOPDIR)/repair/incore.c \
-		$(TOPDIR)/repair/incore_ext.c \
-		$(TOPDIR)/repair/incore_ino.c \
-		$(TOPDIR)/repair/init.c \
-		$(TOPDIR)/repair/phase1.c \
-		$(TOPDIR)/repair/phase2.c \
-		$(TOPDIR)/repair/phase3.c \
-		$(TOPDIR)/repair/phase4.c \
-		$(TOPDIR)/repair/phase5.c \
-		$(TOPDIR)/repair/phase6.c \
-		$(TOPDIR)/repair/phase7.c \
-		$(TOPDIR)/repair/prefetch.c \
-		$(TOPDIR)/repair/progress.c \
-		$(TOPDIR)/repair/rt.c \
-		$(TOPDIR)/repair/sb.c \
-		$(TOPDIR)/repair/scan.c \
-		$(TOPDIR)/repair/threads.c \
-		$(TOPDIR)/repair/versions.c \
-		$(TOPDIR)/repair/xfs_repair.c \
-		$(TOPDIR)/rtcp/xfs_rtcp.c
+XGETTEXTFILES =	$(LOCALIZED_FILES)
 
 default: $(POTHEAD) $(LINGUAS:%=%.mo)
 
-- 
1.6.1.1

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic