1## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- 2## Copyright (C) 2001 Eazel, Inc. 3## Author: Maciej Stachowiak <mjs@noisehavoc.org> 4## Kenneth Christiansen <kenneth@gnu.org> 5## 6## This program is free software; you can redistribute it and/or modify 7## it under the terms of the GNU General Public License as published by 8## the Free Software Foundation; either version 2 of the License, or 9## (at your option) any later version. 10## 11## This program is distributed in the hope that it will be useful, but 12## WITHOUT ANY WARRANTY; without even the implied warranty of 13## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14## General Public License for more details. 15## 16## You should have received a copy of the GNU General Public License 17## along with this program; if not, write to the Free Software 18## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19## 20## As a special exception to the GNU General Public License, if you 21## distribute this file as part of a program that contains a 22## configuration script generated by Autoconf, you may include it under 23## the same distribution terms that you use for the rest of that program. 24 25dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) 26# serial 42 IT_PROG_INTLTOOL 27AC_DEFUN([IT_PROG_INTLTOOL], [ 28AC_PREREQ([2.50])dnl 29AC_REQUIRE([AM_NLS])dnl 30 31case "$am__api_version" in 32 1.[01234]) 33 AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) 34 ;; 35 *) 36 ;; 37esac 38 39INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` 40INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` 41INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` 42if test -n "$1"; then 43 AC_MSG_CHECKING([for intltool >= $1]) 44 AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) 45 test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || 46 AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) 47fi 48 49AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) 50AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) 51AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) 52if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then 53 AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) 54fi 55 56if test -z "$AM_DEFAULT_VERBOSITY"; then 57 AM_DEFAULT_VERBOSITY=1 58fi 59AC_SUBST([AM_DEFAULT_VERBOSITY]) 60 61INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' 62INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' 63INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' 64AC_SUBST(INTLTOOL_V_MERGE) 65AC_SUBST(INTLTOOL__v_MERGE_) 66AC_SUBST(INTLTOOL__v_MERGE_0) 67 68INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' 69intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' 70intltool__v_merge_options_0='-q' 71AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) 72AC_SUBST(intltool__v_merge_options_) 73AC_SUBST(intltool__v_merge_options_0) 74 75 INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 76INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 77 INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 78 INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 79 INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' 80 INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 81 INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 82 INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 83INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 84 INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 85 INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 86if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then 87 INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' 88else 89 INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' 90fi 91 INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 92 INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 93 INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 94 INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 95 INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 96 INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 97 INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 98 99_IT_SUBST(INTLTOOL_DESKTOP_RULE) 100_IT_SUBST(INTLTOOL_DIRECTORY_RULE) 101_IT_SUBST(INTLTOOL_KEYS_RULE) 102_IT_SUBST(INTLTOOL_PROP_RULE) 103_IT_SUBST(INTLTOOL_OAF_RULE) 104_IT_SUBST(INTLTOOL_PONG_RULE) 105_IT_SUBST(INTLTOOL_SERVER_RULE) 106_IT_SUBST(INTLTOOL_SHEET_RULE) 107_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) 108_IT_SUBST(INTLTOOL_UI_RULE) 109_IT_SUBST(INTLTOOL_XAM_RULE) 110_IT_SUBST(INTLTOOL_KBD_RULE) 111_IT_SUBST(INTLTOOL_XML_RULE) 112_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) 113_IT_SUBST(INTLTOOL_CAVES_RULE) 114_IT_SUBST(INTLTOOL_SCHEMAS_RULE) 115_IT_SUBST(INTLTOOL_THEME_RULE) 116_IT_SUBST(INTLTOOL_SERVICE_RULE) 117_IT_SUBST(INTLTOOL_POLICY_RULE) 118 119# Check the gettext tools to make sure they are GNU 120AC_PATH_PROG(XGETTEXT, xgettext) 121AC_PATH_PROG(MSGMERGE, msgmerge) 122AC_PATH_PROG(MSGFMT, msgfmt) 123AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) 124if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then 125 AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) 126fi 127xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" 128mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" 129mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" 130if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then 131 AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) 132fi 133 134AC_PATH_PROG(INTLTOOL_PERL, perl) 135if test -z "$INTLTOOL_PERL"; then 136 AC_MSG_ERROR([perl not found]) 137fi 138AC_MSG_CHECKING([for perl >= 5.8.1]) 139$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 140if test $? -ne 0; then 141 AC_MSG_ERROR([perl 5.8.1 is required for intltool]) 142else 143 IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` 144 AC_MSG_RESULT([$IT_PERL_VERSION]) 145fi 146if test "x$2" != "xno-xml"; then 147 AC_MSG_CHECKING([for XML::Parser]) 148 if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then 149 AC_MSG_RESULT([ok]) 150 else 151 AC_MSG_ERROR([XML::Parser perl module is required for intltool]) 152 fi 153fi 154 155# Substitute ALL_LINGUAS so we can use it in po/Makefile 156AC_SUBST(ALL_LINGUAS) 157 158IT_PO_SUBDIR([po]) 159 160]) 161 162 163# IT_PO_SUBDIR(DIRNAME) 164# --------------------- 165# All po subdirs have to be declared with this macro; the subdir "po" is 166# declared by IT_PROG_INTLTOOL. 167# 168AC_DEFUN([IT_PO_SUBDIR], 169[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. 170dnl 171dnl The following CONFIG_COMMANDS should be executed at the very end 172dnl of config.status. 173AC_CONFIG_COMMANDS_PRE([ 174 AC_CONFIG_COMMANDS([$1/stamp-it], [ 175 if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then 176 AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) 177 fi 178 rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" 179 >"$1/stamp-it.tmp" 180 [sed '/^#/d 181 s/^[[].*] *// 182 /^[ ]*$/d 183 '"s|^| $ac_top_srcdir/|" \ 184 "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" 185 ] 186 [sed '/^POTFILES =/,/[^\\]$/ { 187 /^POTFILES =/!d 188 r $1/POTFILES 189 } 190 ' "$1/Makefile.in" >"$1/Makefile"] 191 rm -f "$1/Makefile.tmp" 192 mv "$1/stamp-it.tmp" "$1/stamp-it" 193 ]) 194])dnl 195]) 196 197# _IT_SUBST(VARIABLE) 198# ------------------- 199# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST 200# 201AC_DEFUN([_IT_SUBST], 202[ 203AC_SUBST([$1]) 204m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) 205] 206) 207 208# deprecated macros 209AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) 210# A hint is needed for aclocal from Automake <= 1.9.4: 211# AC_DEFUN([AC_PROG_INTLTOOL], ...) 212 213