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 | |
---|
25 | dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) |
---|
26 | # serial 40 IT_PROG_INTLTOOL |
---|
27 | AC_DEFUN([IT_PROG_INTLTOOL], [ |
---|
28 | AC_PREREQ([2.50])dnl |
---|
29 | AC_REQUIRE([AM_NLS])dnl |
---|
30 | |
---|
31 | case "$am__api_version" in |
---|
32 | 1.[01234]) |
---|
33 | AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) |
---|
34 | ;; |
---|
35 | *) |
---|
36 | ;; |
---|
37 | esac |
---|
38 | |
---|
39 | if test -n "$1"; then |
---|
40 | AC_MSG_CHECKING([for intltool >= $1]) |
---|
41 | |
---|
42 | INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` |
---|
43 | INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` |
---|
44 | [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` |
---|
45 | ] |
---|
46 | AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) |
---|
47 | test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || |
---|
48 | AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) |
---|
49 | fi |
---|
50 | |
---|
51 | AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) |
---|
52 | AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) |
---|
53 | AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) |
---|
54 | if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then |
---|
55 | AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) |
---|
56 | fi |
---|
57 | |
---|
58 | 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 $< [$]@' |
---|
59 | 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 $< [$]@' |
---|
60 | 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 $< [$]@' |
---|
61 | 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 $< [$]@' |
---|
62 | INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' |
---|
63 | 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 $< [$]@' |
---|
64 | 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 $< [$]@' |
---|
65 | 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 $< [$]@' |
---|
66 | 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 $< [$]@' |
---|
67 | 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 $< [$]@' |
---|
68 | 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 $< [$]@' |
---|
69 | INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' |
---|
70 | 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 $< [$]@' |
---|
71 | 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 $< [$]@' |
---|
72 | 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 $< [$]@' |
---|
73 | 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 $< [$]@' |
---|
74 | 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 $< [$]@' |
---|
75 | 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 $< [$]@' |
---|
76 | 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 $< [$]@' |
---|
77 | |
---|
78 | _IT_SUBST(INTLTOOL_DESKTOP_RULE) |
---|
79 | _IT_SUBST(INTLTOOL_DIRECTORY_RULE) |
---|
80 | _IT_SUBST(INTLTOOL_KEYS_RULE) |
---|
81 | _IT_SUBST(INTLTOOL_PROP_RULE) |
---|
82 | _IT_SUBST(INTLTOOL_OAF_RULE) |
---|
83 | _IT_SUBST(INTLTOOL_PONG_RULE) |
---|
84 | _IT_SUBST(INTLTOOL_SERVER_RULE) |
---|
85 | _IT_SUBST(INTLTOOL_SHEET_RULE) |
---|
86 | _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) |
---|
87 | _IT_SUBST(INTLTOOL_UI_RULE) |
---|
88 | _IT_SUBST(INTLTOOL_XAM_RULE) |
---|
89 | _IT_SUBST(INTLTOOL_KBD_RULE) |
---|
90 | _IT_SUBST(INTLTOOL_XML_RULE) |
---|
91 | _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) |
---|
92 | _IT_SUBST(INTLTOOL_CAVES_RULE) |
---|
93 | _IT_SUBST(INTLTOOL_SCHEMAS_RULE) |
---|
94 | _IT_SUBST(INTLTOOL_THEME_RULE) |
---|
95 | _IT_SUBST(INTLTOOL_SERVICE_RULE) |
---|
96 | _IT_SUBST(INTLTOOL_POLICY_RULE) |
---|
97 | |
---|
98 | # Check the gettext tools to make sure they are GNU |
---|
99 | AC_PATH_PROG(XGETTEXT, xgettext) |
---|
100 | AC_PATH_PROG(MSGMERGE, msgmerge) |
---|
101 | AC_PATH_PROG(MSGFMT, msgfmt) |
---|
102 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) |
---|
103 | if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then |
---|
104 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) |
---|
105 | fi |
---|
106 | xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" |
---|
107 | mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" |
---|
108 | if test -z "$xgversion" -o -z "$mmversion"; then |
---|
109 | AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) |
---|
110 | fi |
---|
111 | |
---|
112 | AC_PATH_PROG(INTLTOOL_PERL, perl) |
---|
113 | if test -z "$INTLTOOL_PERL"; then |
---|
114 | AC_MSG_ERROR([perl not found]) |
---|
115 | fi |
---|
116 | AC_MSG_CHECKING([for perl >= 5.8.1]) |
---|
117 | $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 |
---|
118 | if test $? -ne 0; then |
---|
119 | AC_MSG_ERROR([perl 5.8.1 is required for intltool]) |
---|
120 | else |
---|
121 | IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" |
---|
122 | AC_MSG_RESULT([$IT_PERL_VERSION]) |
---|
123 | fi |
---|
124 | if test "x$2" != "xno-xml"; then |
---|
125 | AC_MSG_CHECKING([for XML::Parser]) |
---|
126 | if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then |
---|
127 | AC_MSG_RESULT([ok]) |
---|
128 | else |
---|
129 | AC_MSG_ERROR([XML::Parser perl module is required for intltool]) |
---|
130 | fi |
---|
131 | fi |
---|
132 | |
---|
133 | # Substitute ALL_LINGUAS so we can use it in po/Makefile |
---|
134 | AC_SUBST(ALL_LINGUAS) |
---|
135 | |
---|
136 | # Set DATADIRNAME correctly if it is not set yet |
---|
137 | # (copied from glib-gettext.m4) |
---|
138 | if test -z "$DATADIRNAME"; then |
---|
139 | AC_LINK_IFELSE( |
---|
140 | [AC_LANG_PROGRAM([[]], |
---|
141 | [[extern int _nl_msg_cat_cntr; |
---|
142 | return _nl_msg_cat_cntr]])], |
---|
143 | [DATADIRNAME=share], |
---|
144 | [case $host in |
---|
145 | *-*-solaris*) |
---|
146 | dnl On Solaris, if bind_textdomain_codeset is in libc, |
---|
147 | dnl GNU format message catalog is always supported, |
---|
148 | dnl since both are added to the libc all together. |
---|
149 | dnl Hence, we'd like to go with DATADIRNAME=share |
---|
150 | dnl in this case. |
---|
151 | AC_CHECK_FUNC(bind_textdomain_codeset, |
---|
152 | [DATADIRNAME=share], [DATADIRNAME=lib]) |
---|
153 | ;; |
---|
154 | *) |
---|
155 | [DATADIRNAME=lib] |
---|
156 | ;; |
---|
157 | esac]) |
---|
158 | fi |
---|
159 | AC_SUBST(DATADIRNAME) |
---|
160 | |
---|
161 | IT_PO_SUBDIR([po]) |
---|
162 | |
---|
163 | ]) |
---|
164 | |
---|
165 | |
---|
166 | # IT_PO_SUBDIR(DIRNAME) |
---|
167 | # --------------------- |
---|
168 | # All po subdirs have to be declared with this macro; the subdir "po" is |
---|
169 | # declared by IT_PROG_INTLTOOL. |
---|
170 | # |
---|
171 | AC_DEFUN([IT_PO_SUBDIR], |
---|
172 | [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. |
---|
173 | dnl |
---|
174 | dnl The following CONFIG_COMMANDS should be exetuted at the very end |
---|
175 | dnl of config.status. |
---|
176 | AC_CONFIG_COMMANDS_PRE([ |
---|
177 | AC_CONFIG_COMMANDS([$1/stamp-it], [ |
---|
178 | if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then |
---|
179 | AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) |
---|
180 | fi |
---|
181 | rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" |
---|
182 | >"$1/stamp-it.tmp" |
---|
183 | [sed '/^#/d |
---|
184 | s/^[[].*] *// |
---|
185 | /^[ ]*$/d |
---|
186 | '"s|^| $ac_top_srcdir/|" \ |
---|
187 | "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" |
---|
188 | ] |
---|
189 | [sed '/^POTFILES =/,/[^\\]$/ { |
---|
190 | /^POTFILES =/!d |
---|
191 | r $1/POTFILES |
---|
192 | } |
---|
193 | ' "$1/Makefile.in" >"$1/Makefile"] |
---|
194 | rm -f "$1/Makefile.tmp" |
---|
195 | mv "$1/stamp-it.tmp" "$1/stamp-it" |
---|
196 | ]) |
---|
197 | ])dnl |
---|
198 | ]) |
---|
199 | |
---|
200 | # _IT_SUBST(VARIABLE) |
---|
201 | # ------------------- |
---|
202 | # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST |
---|
203 | # |
---|
204 | AC_DEFUN([_IT_SUBST], |
---|
205 | [ |
---|
206 | AC_SUBST([$1]) |
---|
207 | m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) |
---|
208 | ] |
---|
209 | ) |
---|
210 | |
---|
211 | # deprecated macros |
---|
212 | AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) |
---|
213 | # A hint is needed for aclocal from Automake <= 1.9.4: |
---|
214 | # AC_DEFUN([AC_PROG_INTLTOOL], ...) |
---|
215 | |
---|