summary refs log tree commit diff
path: root/Makefile.am
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2021-01-22 21:24:23 +0100
committerJulien Lepiller <julien@lepiller.eu>2021-01-28 16:41:16 +0100
commitb91165460e71f427c30f22ace02a5d775ecea23d (patch)
tree7c6e49e0208553040cd2fbd1288ef53c5a2409f3 /Makefile.am
parentc891e7c828d21530f110c04dabe70515447c7d67 (diff)
downloadguix-b91165460e71f427c30f22ace02a5d775ecea23d.tar.gz
Makefile.am: Add check-po rule.
* Makefile.am (make-check-po-rule): New definition.
Add top-level 'eval' and calls to 'make-check-po-rule' to generate
'check-po.DOMAIN' rules.
(check-po): New rule.
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am35
1 files changed, 35 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index d479032f83..ee05d79ca0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1003,14 +1003,49 @@ download-po.$(1):
 
 endef
 
+# Checking po files for issues.  This is useful to run after downloading new
+# po files.
+
+# make-check-po-rule DOMAIN DIRECTORY [FILE-NAME-PREFIX]
+define make-check-po-rule
+
+check-po.$(1):
+	if [ -f "$(top_srcdir)/$(2)/LINGUAS" ]; then				\
+	  LINGUAS="`grep -v '^[[:blank:]]*#' < $(top_srcdir)/$(2)/LINGUAS`" ;	\
+	else									\
+	  LINGUAS="`(cd $(top_srcdir)/$(2);					\
+	    for i in *.po; do echo $$$$i; done) | cut -d . -f 2`" ;		\
+	fi ;									\
+	for lang in $$$$LINGUAS; do						\
+	  if [ -f "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ];			\
+	  then									\
+	    if ! msgfmt -c "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ;		\
+		then								\
+		  exit 1 ;							\
+	    fi ;								\
+	  fi ;									\
+	done
+
+.PHONY: check-po.$(1)
+
+endef
+
 $(eval $(call make-download-po-rule,documentation-cookbook,po/doc,guix-cookbook.))
 $(eval $(call make-download-po-rule,documentation-manual,po/doc,guix-manual.))
 $(eval $(call make-download-po-rule,guix,po/guix))
 $(eval $(call make-download-po-rule,packages,po/packages))
 
+$(eval $(call make-check-po-rule,documentation-cookbook,po/doc,guix-cookbook.))
+$(eval $(call make-check-po-rule,documentation-manual,po/doc,guix-manual.))
+$(eval $(call make-check-po-rule,guix,po/guix))
+$(eval $(call make-check-po-rule,packages,po/packages))
+
 download-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,download-po.$(domain))
 .PHONY: download-po
 
+check-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,check-po.$(domain))
+.PHONY: check-po
+
 ## -------------- ##
 ## Silent rules.  ##
 ## -------------- ##