| ## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- |
| ## Copyright (C) 2001 Eazel, Inc. |
| ## Author: Maciej Stachowiak <mjs@noisehavoc.org> |
| ## Kenneth Christiansen <kenneth@gnu.org> |
| ## |
| ## This program is free software; you can redistribute it and/or modify |
| ## it under the terms of the GNU General Public License as published by |
| ## the Free Software Foundation; either version 2 of the License, or |
| ## (at your option) any later version. |
| ## |
| ## This program is distributed in the hope that it will be useful, but |
| ## WITHOUT ANY WARRANTY; without even the implied warranty of |
| ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| ## General Public License for more details. |
| ## |
| ## You should have received a copy of the GNU General Public License |
| ## along with this program; if not, write to the Free Software |
| ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| ## |
| ## As a special exception to the GNU General Public License, if you |
| ## distribute this file as part of a program that contains a |
| ## configuration script generated by Autoconf, you may include it under |
| ## the same distribution terms that you use for the rest of that program. |
| |
| dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) |
| # serial 40 IT_PROG_INTLTOOL |
| AC_DEFUN([IT_PROG_INTLTOOL], [ |
| AC_PREREQ([2.50])dnl |
| AC_REQUIRE([AM_NLS])dnl |
| |
| case "$am__api_version" in |
| 1.[01234]) |
| AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) |
| ;; |
| *) |
| ;; |
| esac |
| |
| if test -n "$1"; then |
| AC_MSG_CHECKING([for intltool >= $1]) |
| |
| INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` |
| INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` |
| [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` |
| ] |
| AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) |
| test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || |
| AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) |
| fi |
| |
| AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) |
| AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) |
| AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) |
| if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then |
| AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) |
| fi |
| |
| INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' |
| INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u --no-translations $< [$]@' |
| INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |
| |
| _IT_SUBST(INTLTOOL_DESKTOP_RULE) |
| _IT_SUBST(INTLTOOL_DIRECTORY_RULE) |
| _IT_SUBST(INTLTOOL_KEYS_RULE) |
| _IT_SUBST(INTLTOOL_PROP_RULE) |
| _IT_SUBST(INTLTOOL_OAF_RULE) |
| _IT_SUBST(INTLTOOL_PONG_RULE) |
| _IT_SUBST(INTLTOOL_SERVER_RULE) |
| _IT_SUBST(INTLTOOL_SHEET_RULE) |
| _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) |
| _IT_SUBST(INTLTOOL_UI_RULE) |
| _IT_SUBST(INTLTOOL_XAM_RULE) |
| _IT_SUBST(INTLTOOL_KBD_RULE) |
| _IT_SUBST(INTLTOOL_XML_RULE) |
| _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) |
| _IT_SUBST(INTLTOOL_CAVES_RULE) |
| _IT_SUBST(INTLTOOL_SCHEMAS_RULE) |
| _IT_SUBST(INTLTOOL_THEME_RULE) |
| _IT_SUBST(INTLTOOL_SERVICE_RULE) |
| _IT_SUBST(INTLTOOL_POLICY_RULE) |
| |
| # Check the gettext tools to make sure they are GNU |
| AC_PATH_PROG(XGETTEXT, xgettext) |
| AC_PATH_PROG(MSGMERGE, msgmerge) |
| AC_PATH_PROG(MSGFMT, msgfmt) |
| AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) |
| if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then |
| AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) |
| fi |
| xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" |
| mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" |
| mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" |
| if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then |
| AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) |
| fi |
| |
| AC_PATH_PROG(INTLTOOL_PERL, perl) |
| if test -z "$INTLTOOL_PERL"; then |
| AC_MSG_ERROR([perl not found]) |
| fi |
| AC_MSG_CHECKING([for perl >= 5.8.1]) |
| $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 |
| if test $? -ne 0; then |
| AC_MSG_ERROR([perl 5.8.1 is required for intltool]) |
| else |
| IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` |
| AC_MSG_RESULT([$IT_PERL_VERSION]) |
| fi |
| if test "x$2" != "xno-xml"; then |
| AC_MSG_CHECKING([for XML::Parser]) |
| if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then |
| AC_MSG_RESULT([ok]) |
| else |
| AC_MSG_ERROR([XML::Parser perl module is required for intltool]) |
| fi |
| fi |
| |
| # Substitute ALL_LINGUAS so we can use it in po/Makefile |
| AC_SUBST(ALL_LINGUAS) |
| |
| # Set DATADIRNAME correctly if it is not set yet |
| # (copied from glib-gettext.m4) |
| if test -z "$DATADIRNAME"; then |
| AC_LINK_IFELSE( |
| [AC_LANG_PROGRAM([[]], |
| [[extern int _nl_msg_cat_cntr; |
| return _nl_msg_cat_cntr]])], |
| [DATADIRNAME=share], |
| [case $host in |
| *-*-solaris*) |
| dnl On Solaris, if bind_textdomain_codeset is in libc, |
| dnl GNU format message catalog is always supported, |
| dnl since both are added to the libc all together. |
| dnl Hence, we'd like to go with DATADIRNAME=share |
| dnl in this case. |
| AC_CHECK_FUNC(bind_textdomain_codeset, |
| [DATADIRNAME=share], [DATADIRNAME=lib]) |
| ;; |
| *) |
| [DATADIRNAME=lib] |
| ;; |
| esac]) |
| fi |
| AC_SUBST(DATADIRNAME) |
| |
| IT_PO_SUBDIR([po]) |
| |
| ]) |
| |
| |
| # IT_PO_SUBDIR(DIRNAME) |
| # --------------------- |
| # All po subdirs have to be declared with this macro; the subdir "po" is |
| # declared by IT_PROG_INTLTOOL. |
| # |
| AC_DEFUN([IT_PO_SUBDIR], |
| [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. |
| dnl |
| dnl The following CONFIG_COMMANDS should be executed at the very end |
| dnl of config.status. |
| AC_CONFIG_COMMANDS_PRE([ |
| AC_CONFIG_COMMANDS([$1/stamp-it], [ |
| if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then |
| AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) |
| fi |
| rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" |
| >"$1/stamp-it.tmp" |
| [sed '/^#/d |
| s/^[[].*] *// |
| /^[ ]*$/d |
| '"s|^| $ac_top_srcdir/|" \ |
| "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" |
| ] |
| [sed '/^POTFILES =/,/[^\\]$/ { |
| /^POTFILES =/!d |
| r $1/POTFILES |
| } |
| ' "$1/Makefile.in" >"$1/Makefile"] |
| rm -f "$1/Makefile.tmp" |
| mv "$1/stamp-it.tmp" "$1/stamp-it" |
| ]) |
| ])dnl |
| ]) |
| |
| # _IT_SUBST(VARIABLE) |
| # ------------------- |
| # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST |
| # |
| AC_DEFUN([_IT_SUBST], |
| [ |
| AC_SUBST([$1]) |
| m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) |
| ] |
| ) |
| |
| # deprecated macros |
| AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) |
| # A hint is needed for aclocal from Automake <= 1.9.4: |
| # AC_DEFUN([AC_PROG_INTLTOOL], ...) |
| |