build: Use AS_ALL_LINGUAS
authorEmmanuele Bassi <ebassi@linux.intel.com>
Thu, 3 Jun 2010 11:32:54 +0000 (12:32 +0100)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Thu, 15 Jul 2010 10:36:25 +0000 (11:36 +0100)
The AS_ALL_LINGUAS m4 macro allows configure-time generation of the
ALL_LINGUAS variable from the translations inside po/ instead of using
the LINGUAS file.

build/autotools/Makefile.am
build/autotools/as-linguas.m4 [new file with mode: 0644]
configure.ac

index 5200d63..5d73468 100644 (file)
@@ -10,4 +10,5 @@ EXTRA_DIST = \
        introspection.m4        \
        gtk-doc.m4              \
        as-compiler-flag.m4     \
+       as-linguas.m4           \
        $(NULL)
diff --git a/build/autotools/as-linguas.m4 b/build/autotools/as-linguas.m4
new file mode 100644 (file)
index 0000000..92b28f7
--- /dev/null
@@ -0,0 +1,24 @@
+# Set ALL_ALL_LINGUAS based on the .po files present. Optional argument is the
+# name of the po directory. $podir/LINGUAS.ignore can be used to ignore a
+# subset of the po files.
+
+AC_DEFUN([AS_ALL_LINGUAS],
+[
+ AC_MSG_CHECKING([for linguas])
+ podir="m4_default([$1],[$srcdir/po])"
+ linguas=`cd $podir && ls *.po 2>/dev/null | awk 'BEGIN { FS="."; ORS=" " } { print $[]1 }'`
+ if test -f "$podir/LINGUAS.ignore"; then
+   ALL_LINGUAS="";
+   ignore_linguas=`sed -n -e 's/^\s\+\|\s\+$//g' -e '/^#/b' -e '/\S/!b' \
+                       -e 's/\s\+/\n/g' -e p "$podir/LINGUAS.ignore"`;
+   for lang in $linguas; do
+     if ! echo "$ignore_linguas" | grep -q "^${lang}$"; then
+       ALL_LINGUAS="$ALL_LINGUAS $lang";
+     fi;
+   done;
+ else
+   ALL_LINGUAS="$linguas";
+ fi;
+ AC_SUBST([ALL_LINGUAS])
+ AC_MSG_RESULT($ALL_LINGUAS)
+])
index 86d146f..426c95b 100644 (file)
@@ -1027,8 +1027,7 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,
                    "$GETTEXT_PACKAGE",
                    [The prefix for our gettext translation domains.])
-
-ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
+AS_ALL_LINGUAS
 AM_GLIB_GNU_GETTEXT
 GLIB_DEFINE_LOCALEDIR(LOCALEDIR)