]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/aclocal.m4
aclocal.m4 (AM_WITH_NLS): When not using included gettext...
[thirdparty/gcc.git] / gcc / aclocal.m4
CommitLineData
9fdf713f 1Fdnl See whether we can include both string.h and strings.h.
99e757d5 2AC_DEFUN(gcc_AC_HEADER_STRING,
ccc7d11a
KG
3[AC_CACHE_CHECK([whether string.h and strings.h may both be included],
4 gcc_cv_header_string,
5[AC_TRY_COMPILE([#include <string.h>
6#include <strings.h>], , gcc_cv_header_string=yes, gcc_cv_header_string=no)])
7if test $gcc_cv_header_string = yes; then
91029a29 8 AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both <string.h> and <strings.h>.])
ccc7d11a
KG
9fi
10])
11
2f51182a 12dnl See whether we need a declaration for a function.
86cf1cbd
KG
13dnl The result is highly dependent on the INCLUDES passed in, so make sure
14dnl to use a different cache variable name in this macro if it is invoked
15dnl in a different context somewhere else.
f31e826b
KG
16dnl gcc_AC_CHECK_DECL(SYMBOL,
17dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
18AC_DEFUN(gcc_AC_CHECK_DECL,
19[AC_MSG_CHECKING([whether $1 is declared])
20AC_CACHE_VAL(gcc_cv_have_decl_$1,
21[AC_TRY_COMPILE([$4],
86cf1cbd
KG
22[#ifndef $1
23char *(*pfn) = (char *(*)) $1 ;
f31e826b
KG
24#endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
25if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
26 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
a81fb89e 27else
f31e826b 28 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
2f51182a
DE
29fi
30])dnl
ac64120e 31
a81fb89e 32dnl Check multiple functions to see whether each needs a declaration.
f31e826b
KG
33dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
34dnl gcc_AC_CHECK_DECLS(SYMBOLS,
35dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
36AC_DEFUN(gcc_AC_CHECK_DECLS,
a81fb89e
KG
37[for ac_func in $1
38do
f31e826b
KG
39changequote(, )dnl
40 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
86cf1cbd 41changequote([, ])dnl
f31e826b
KG
42gcc_AC_CHECK_DECL($ac_func,
43 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
44 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
45 $4
46)
a81fb89e 47done
86cf1cbd
KG
48dnl Automatically generate config.h entries via autoheader.
49if test x = y ; then
50 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
f31e826b
KG
51 AC_DEFINE([HAVE_DECL_\&], 1,
52 [Define to 1 if we found this declaration otherwise define to 0.]))dnl
86cf1cbd 53fi
a81fb89e
KG
54])
55
76b4b31e
KG
56dnl Check if we have vprintf and possibly _doprnt.
57dnl Note autoconf checks for vprintf even though we care about vfprintf.
99e757d5 58AC_DEFUN(gcc_AC_FUNC_VFPRINTF_DOPRNT,
76b4b31e
KG
59[AC_FUNC_VPRINTF
60vfprintf=
61doprint=
62if test $ac_cv_func_vprintf != yes ; then
63 vfprintf=vfprintf.o
64 if test $ac_cv_func__doprnt != yes ; then
65 doprint=doprint.o
66 fi
67fi
68AC_SUBST(vfprintf)
69AC_SUBST(doprint)
70])
71
f1b54f9b 72dnl See if the printf functions in libc support %p in format strings.
99e757d5 73AC_DEFUN(gcc_AC_FUNC_PRINTF_PTR,
f1b54f9b
KG
74[AC_CACHE_CHECK(whether the printf functions support %p,
75 gcc_cv_func_printf_ptr,
76[AC_TRY_RUN([#include <stdio.h>
77
86cf1cbd 78int main()
f1b54f9b
KG
79{
80 char buf[64];
81 char *p = buf, *q = NULL;
82 sprintf(buf, "%p", p);
83 sscanf(buf, "%p", &q);
86cf1cbd 84 return (p != q);
f1b54f9b
KG
85}], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
86 gcc_cv_func_printf_ptr=no)
87rm -f core core.* *.core])
88if test $gcc_cv_func_printf_ptr = yes ; then
91029a29 89 AC_DEFINE(HAVE_PRINTF_PTR, 1, [Define if printf supports "%p".])
f1b54f9b
KG
90fi
91])
92
ac64120e 93dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
99e757d5 94AC_DEFUN(gcc_AC_PROG_LN_S,
ac64120e
JW
95[AC_MSG_CHECKING(whether ln -s works)
96AC_CACHE_VAL(gcc_cv_prog_LN_S,
e566af04
MH
97[rm -f conftestdata_t
98echo >conftestdata_f
99if ln -s conftestdata_f conftestdata_t 2>/dev/null
ac64120e
JW
100then
101 gcc_cv_prog_LN_S="ln -s"
102else
e566af04 103 if ln conftestdata_f conftestdata_t 2>/dev/null
ac64120e
JW
104 then
105 gcc_cv_prog_LN_S=ln
106 else
107 gcc_cv_prog_LN_S=cp
108 fi
109fi
e566af04 110rm -f conftestdata_f conftestdata_t
ac64120e
JW
111])dnl
112LN_S="$gcc_cv_prog_LN_S"
113if test "$gcc_cv_prog_LN_S" = "ln -s"; then
114 AC_MSG_RESULT(yes)
115else
116 if test "$gcc_cv_prog_LN_S" = "ln"; then
117 AC_MSG_RESULT([no, using ln])
118 else
119 AC_MSG_RESULT([no, and neither does ln, so using cp])
120 fi
121fi
122AC_SUBST(LN_S)dnl
123])
124
125dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
99e757d5 126AC_DEFUN(gcc_AC_PROG_LN,
ac64120e
JW
127[AC_MSG_CHECKING(whether ln works)
128AC_CACHE_VAL(gcc_cv_prog_LN,
e566af04
MH
129[rm -f conftestdata_t
130echo >conftestdata_f
131if ln conftestdata_f conftestdata_t 2>/dev/null
ac64120e
JW
132then
133 gcc_cv_prog_LN="ln"
134else
e566af04 135 if ln -s conftestdata_f conftestdata_t 2>/dev/null
ac64120e
JW
136 then
137 gcc_cv_prog_LN="ln -s"
138 else
139 gcc_cv_prog_LN=cp
140 fi
141fi
e566af04 142rm -f conftestdata_f conftestdata_t
ac64120e
JW
143])dnl
144LN="$gcc_cv_prog_LN"
145if test "$gcc_cv_prog_LN" = "ln"; then
146 AC_MSG_RESULT(yes)
147else
148 if test "$gcc_cv_prog_LN" = "ln -s"; then
149 AC_MSG_RESULT([no, using ln -s])
150 else
151 AC_MSG_RESULT([no, and neither does ln -s, so using cp])
152 fi
153fi
154AC_SUBST(LN)dnl
155])
76143254 156
e9b4fabf 157dnl See whether the stage1 host compiler accepts the volatile keyword.
99e757d5 158AC_DEFUN(gcc_AC_C_VOLATILE,
e9b4fabf
JL
159[AC_CACHE_CHECK([for volatile], gcc_cv_c_volatile,
160[AC_TRY_COMPILE(, [volatile int foo;],
161 gcc_cv_c_volatile=yes, gcc_cv_c_volatile=no)])
162if test $gcc_cv_c_volatile = yes ; then
91029a29 163 AC_DEFINE(HAVE_VOLATILE, 1, [Define if your compiler understands volatile.])
e9b4fabf
JL
164fi
165])
166
04cabffc
KG
167dnl Check whether long double is supported. This differs from the
168dnl built-in autoconf test in that it works for cross compiles.
99e757d5 169AC_DEFUN(gcc_AC_C_LONG_DOUBLE,
04cabffc
KG
170[AC_CACHE_CHECK(for long double, gcc_cv_c_long_double,
171[if test "$GCC" = yes; then
172 gcc_cv_c_long_double=yes
173else
174AC_TRY_COMPILE(,
175[/* The Stardent Vistra knows sizeof(long double), but does not support it. */
176long double foo = 0.0;
177/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
178switch (0) case 0: case (sizeof(long double) >= sizeof(double)):;],
179gcc_cv_c_long_double=yes, gcc_cv_c_long_double=no)
180fi])
181if test $gcc_cv_c_long_double = yes; then
182 AC_DEFINE(HAVE_LONG_DOUBLE)
183fi
184])
185
75923b2f
MK
186dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
187dnl of the usual 2.
99e757d5 188AC_DEFUN(gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG,
75923b2f
MK
189[AC_CACHE_CHECK([if mkdir takes one argument], gcc_cv_mkdir_takes_one_arg,
190[AC_TRY_COMPILE([
191#include <sys/types.h>
192#ifdef HAVE_SYS_STAT_H
193# include <sys/stat.h>
194#endif
195#ifdef HAVE_UNISTD_H
196# include <unistd.h>
197#endif
198#ifdef HAVE_DIRECT_H
199# include <direct.h>
200#endif], [mkdir ("foo", 0);],
201 gcc_cv_mkdir_takes_one_arg=no, gcc_cv_mkdir_takes_one_arg=yes)])
202if test $gcc_cv_mkdir_takes_one_arg = yes ; then
91029a29 203 AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
75923b2f
MK
204fi
205])
206
99e757d5 207AC_DEFUN(gcc_AC_PROG_INSTALL,
76143254
JL
208[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
209# Find a good install program. We prefer a C program (faster),
210# so one script is as good as another. But avoid the broken or
211# incompatible versions:
212# SysV /etc/install, /usr/sbin/install
213# SunOS /usr/etc/install
214# IRIX /sbin/install
215# AIX /bin/install
216# AFS /usr/afsws/bin/install, which mishandles nonexistent args
217# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
218# ./install, which can be erroneously created by make from ./install.sh.
219AC_MSG_CHECKING(for a BSD compatible install)
220if test -z "$INSTALL"; then
221AC_CACHE_VAL(ac_cv_path_install,
222[ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
223 for ac_dir in $PATH; do
224 # Account for people who put trailing slashes in PATH elements.
225 case "$ac_dir/" in
226 /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
227 *)
228 # OSF1 and SCO ODT 3.0 have their own names for install.
229 for ac_prog in ginstall scoinst install; do
230 if test -f $ac_dir/$ac_prog; then
231 if test $ac_prog = install &&
232 grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
233 # AIX install. It has an incompatible calling convention.
234 # OSF/1 installbsd also uses dspmsg, but is usable.
235 :
236 else
237 ac_cv_path_install="$ac_dir/$ac_prog -c"
238 break 2
239 fi
240 fi
241 done
242 ;;
243 esac
244 done
245 IFS="$ac_save_IFS"
246])dnl
247 if test "${ac_cv_path_install+set}" = set; then
248 INSTALL="$ac_cv_path_install"
249 else
250 # As a last resort, use the slow shell script. We don't cache a
251 # path for INSTALL within a source directory, because that will
252 # break other packages using the cache if that directory is
253 # removed, or if the path is relative.
254 INSTALL="$ac_install_sh"
255 fi
256fi
257dnl We do special magic for INSTALL instead of AC_SUBST, to get
258dnl relative paths right.
259AC_MSG_RESULT($INSTALL)
5643c767 260AC_SUBST(INSTALL)dnl
76143254
JL
261
262# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
263# It thinks the first close brace ends the variable substitution.
264test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
265AC_SUBST(INSTALL_PROGRAM)dnl
266
267test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
268AC_SUBST(INSTALL_DATA)dnl
269])
ab87f8c8
JL
270
271#serial 1
272dnl This test replaces the one in autoconf.
273dnl Currently this macro should have the same name as the autoconf macro
274dnl because gettext's gettext.m4 (distributed in the automake package)
275dnl still uses it. Otherwise, the use in gettext.m4 makes autoheader
276dnl give these diagnostics:
277dnl configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
278dnl configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
279
280undefine([AC_ISC_POSIX])
281AC_DEFUN(AC_ISC_POSIX,
282 [
283 dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
284 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
285 ]
286)
287
00036f5c
PT
288
289dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
290dnl like AC_PATH_PROG but use other cache variables
291AC_DEFUN(GCC_PATH_PROG,
292[# Extract the first word of "$2", so it can be a program name with args.
293set dummy $2; ac_word=[$]2
294AC_MSG_CHECKING([for $ac_word])
295AC_CACHE_VAL(gcc_cv_path_$1,
296[case "[$]$1" in
297 /*)
298 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
299 ;;
300 ?:/*)
301 gcc_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
302 ;;
303 *)
304 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
305dnl $ac_dummy forces splitting on constant user-supplied paths.
306dnl POSIX.2 word splitting is done only on the output of word expansions,
307dnl not every word. This closes a longstanding sh security hole.
308 ac_dummy="ifelse([$4], , $PATH, [$4])"
309 for ac_dir in $ac_dummy; do
310 test -z "$ac_dir" && ac_dir=.
311 if test -f $ac_dir/$ac_word; then
312 gcc_cv_path_$1="$ac_dir/$ac_word"
313 break
314 fi
315 done
316 IFS="$ac_save_ifs"
317dnl If no 3rd arg is given, leave the cache variable unset,
318dnl so GCC_PATH_PROGS will keep looking.
319ifelse([$3], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$3"
320])dnl
321 ;;
322esac])dnl
323$1="$gcc_cv_path_$1"
324if test -n "[$]$1"; then
325 AC_MSG_RESULT([$]$1)
326else
327 AC_MSG_RESULT(no)
328fi
329AC_SUBST($1)dnl
330])
331
332
333
ab87f8c8
JL
334# Macro to add for using GNU gettext.
335# Ulrich Drepper <drepper@cygnus.com>, 1995.
336#
337# This file can be copied and used freely without restrictions. It can
338# be used in projects which are not available under the GNU Public License
339# but which still want to provide support for the GNU gettext functionality.
340# Please note that the actual code is *not* freely available.
341
342# serial 5
343
344AC_DEFUN(AM_WITH_NLS,
345 [AC_MSG_CHECKING([whether NLS is requested])
346 dnl Default is enabled NLS
347 AC_ARG_ENABLE(nls,
348 [ --disable-nls do not use Native Language Support],
349 USE_NLS=$enableval, USE_NLS=yes)
350 AC_MSG_RESULT($USE_NLS)
351 AC_SUBST(USE_NLS)
352
353 USE_INCLUDED_LIBINTL=no
354
355 dnl If we use NLS figure out what method
356 if test "$USE_NLS" = "yes"; then
357 AC_DEFINE(ENABLE_NLS)
358 AC_MSG_CHECKING([whether included gettext is requested])
359 AC_ARG_WITH(included-gettext,
360 [ --with-included-gettext use the GNU gettext library included here],
361 nls_cv_force_use_gnu_gettext=$withval,
bfa29b63 362 nls_cv_force_use_gnu_gettext=no)
ab87f8c8
JL
363 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
364
365 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
366 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
367 dnl User does not insist on using GNU NLS library. Figure out what
368 dnl to use. If gettext or catgets are available (in this order) we
369 dnl use this. Else we have to fall back to GNU NLS library.
370 dnl catgets is only used if permitted by option --with-catgets.
371 nls_cv_header_intl=
372 nls_cv_header_libgt=
373 CATOBJEXT=NONE
374
375 AC_CHECK_HEADER(libintl.h,
376 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
377 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
378 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
379
380 if test "$gt_cv_func_gettext_libc" != "yes"; then
381 AC_CHECK_LIB(intl, bindtextdomain,
382 [AC_CACHE_CHECK([for gettext in libintl],
383 gt_cv_func_gettext_libintl,
384 [AC_CHECK_LIB(intl, gettext,
385 gt_cv_func_gettext_libintl=yes,
386 gt_cv_func_gettext_libintl=no)],
387 gt_cv_func_gettext_libintl=no)])
388 fi
389
390 if test "$gt_cv_func_gettext_libc" = "yes" \
391 || test "$gt_cv_func_gettext_libintl" = "yes"; then
392 AC_DEFINE(HAVE_GETTEXT)
00036f5c 393 GCC_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
ab87f8c8
JL
394 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
395 if test "$MSGFMT" != "no"; then
396 AC_CHECK_FUNCS(dcgettext)
00036f5c
PT
397 GCC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
398 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
ab87f8c8
JL
399 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
400 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
401 return _nl_msg_cat_cntr],
402 [CATOBJEXT=.gmo
403 DATADIRNAME=share],
404 [CATOBJEXT=.mo
405 DATADIRNAME=lib])
406 INSTOBJEXT=.mo
9fdf713f
PT
407 else
408 create_catalogs="no"
ab87f8c8
JL
409 fi
410 fi
411 ])
412
413 if test "$CATOBJEXT" = "NONE"; then
414 AC_MSG_CHECKING([whether catgets can be used])
415 AC_ARG_WITH(catgets,
416 [ --with-catgets use catgets functions if available],
417 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
418 AC_MSG_RESULT($nls_cv_use_catgets)
419
420 if test "$nls_cv_use_catgets" = "yes"; then
421 dnl No gettext in C library. Try catgets next.
422 AC_CHECK_LIB(i, main)
423 AC_CHECK_FUNC(catgets,
424 [AC_DEFINE(HAVE_CATGETS)
425 INTLOBJS="\$(CATOBJS)"
00036f5c 426 GCC_PATH_PROG(GENCAT, gencat, no)dnl
ab87f8c8 427 if test "$GENCAT" != "no"; then
00036f5c 428 GCC_PATH_PROG(GMSGFMT, gmsgfmt, no)
ab87f8c8 429 if test "$GMSGFMT" = "no"; then
00036f5c 430 GCC_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
cab10d56
PT
431 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
432 if test "$GMSGFMT" = "msgfmt"; then
17297c41
PT
433 create_catalogs="no"
434 fi
ab87f8c8 435 fi
00036f5c 436 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
ab87f8c8
JL
437 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
438 USE_INCLUDED_LIBINTL=yes
439 CATOBJEXT=.cat
440 INSTOBJEXT=.cat
441 DATADIRNAME=lib
442 INTLDEPS='$(top_builddir)/intl/libintl.a'
443 INTLLIBS=$INTLDEPS
444 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
445 nls_cv_header_intl=intl/libintl.h
446 nls_cv_header_libgt=intl/libgettext.h
447 fi])
448 fi
449 fi
450
451 if test "$CATOBJEXT" = "NONE"; then
452 dnl Neither gettext nor catgets in included in the C library.
453 dnl Fall back on GNU gettext library.
454 nls_cv_use_gnu_gettext=yes
455 fi
456 fi
457
458 if test "$nls_cv_use_gnu_gettext" = "yes"; then
459 dnl Mark actions used to generate GNU NLS library.
460 INTLOBJS="\$(GETTOBJS)"
00036f5c 461 GCC_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
cab10d56 462 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
00036f5c 463 GCC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
17297c41
PT
464 dnl If we didn't find either msgfmt or gmsgfmt, don't try to
465 dnl create a catalog.
cab10d56 466 if test "$MSGFMT" = "msgfmt" && test "$GMSGFMT" = "msgfmt"; then
17297c41 467 create_catalogs="no"
17297c41 468 fi
00036f5c 469 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
ab87f8c8
JL
470 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
471 AC_SUBST(MSGFMT)
472 USE_INCLUDED_LIBINTL=yes
473 CATOBJEXT=.gmo
474 INSTOBJEXT=.mo
475 DATADIRNAME=share
476 INTLDEPS='$(top_builddir)/intl/libintl.a'
477 INTLLIBS=$INTLDEPS
478 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
479 nls_cv_header_intl=intl/libintl.h
480 nls_cv_header_libgt=intl/libgettext.h
481 fi
482
483 dnl Test whether we really found GNU xgettext.
484 if test "$XGETTEXT" != ":"; then
485 dnl If it is no GNU xgettext we define it as : so that the
486 dnl Makefiles still can work.
487 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
488 : ;
489 else
490 AC_MSG_RESULT(
491 [found xgettext program is not GNU xgettext; ignore it])
492 XGETTEXT=":"
493 fi
494 fi
495
17297c41
PT
496
497
ab87f8c8
JL
498 # We need to process the po/ directory.
499 POSUB=po
500 else
501 DATADIRNAME=share
502 nls_cv_header_intl=intl/libintl.h
503 nls_cv_header_libgt=intl/libgettext.h
504 fi
505 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
506 AC_OUTPUT_COMMANDS(
507 [case "$CONFIG_FILES" in *po/Makefile.in*)
508 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
509 esac])
510
511
512 # If this is used in GNU gettext we have to set USE_NLS to `yes'
513 # because some of the sources are only built for this goal.
514 if test "$PACKAGE" = gettext; then
515 USE_NLS=yes
516 USE_INCLUDED_LIBINTL=yes
517 fi
518
519 dnl These rules are solely for the distribution goal. While doing this
520 dnl we only have to keep exactly one list of the available catalogs
521 dnl in configure.in.
522 for lang in $ALL_LINGUAS; do
523 GMOFILES="$GMOFILES $lang.gmo"
524 POFILES="$POFILES $lang.po"
525 done
526
527 dnl Make all variables we use known to autoconf.
528 AC_SUBST(USE_INCLUDED_LIBINTL)
529 AC_SUBST(CATALOGS)
530 AC_SUBST(CATOBJEXT)
531 AC_SUBST(DATADIRNAME)
532 AC_SUBST(GMOFILES)
533 AC_SUBST(INSTOBJEXT)
534 AC_SUBST(INTLDEPS)
535 AC_SUBST(INTLLIBS)
536 AC_SUBST(INTLOBJS)
537 AC_SUBST(POFILES)
538 AC_SUBST(POSUB)
539 ])
540
541AC_DEFUN(AM_GNU_GETTEXT,
542 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
543 AC_REQUIRE([AC_PROG_CC])dnl
544 AC_REQUIRE([AC_PROG_RANLIB])dnl
545 AC_REQUIRE([AC_ISC_POSIX])dnl
546 AC_REQUIRE([AC_HEADER_STDC])dnl
547 AC_REQUIRE([AC_C_CONST])dnl
548 AC_REQUIRE([AC_C_INLINE])dnl
549 AC_REQUIRE([AC_TYPE_OFF_T])dnl
550 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
551 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
ab87f8c8
JL
552
553 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
554unistd.h sys/param.h])
555 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
556strdup __argz_count __argz_stringify __argz_next])
557
558 if test "${ac_cv_func_stpcpy+set}" != "set"; then
559 AC_CHECK_FUNCS(stpcpy)
560 fi
561 if test "${ac_cv_func_stpcpy}" = "yes"; then
562 AC_DEFINE(HAVE_STPCPY)
563 fi
564
565 AM_LC_MESSAGES
566 AM_WITH_NLS
567
9fdf713f
PT
568 if test "x$create_catalogs" == "xno"; then
569 AC_MSG_WARN([No program for building catalogs found -> building disabled])
570 fi
571
17297c41 572 if test "x$CATOBJEXT" != "x" && test "x$create_catalogs" != "xno" ; then
ab87f8c8
JL
573 if test "x$ALL_LINGUAS" = "x"; then
574 LINGUAS=
575 else
576 AC_MSG_CHECKING(for catalogs to be installed)
47f01856
PT
577 if test "x$LINGUAS" = "x"; then
578 LINGUAS=$ALL_LINGUAS
579 else
580 NEW_LINGUAS=
581 for lang in $ALL_LINGUAS; do
582 case " $LINGUAS " in
583 *" $lang "*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
584 esac
585 done
586 LINGUAS=$NEW_LINGUAS
587 fi
ab87f8c8
JL
588 AC_MSG_RESULT($LINGUAS)
589 fi
590
591 dnl Construct list of names of catalog files to be constructed.
592 if test -n "$LINGUAS"; then
593 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
594 fi
595 fi
596
597 dnl The reference to <locale.h> in the installed <libintl.h> file
598 dnl must be resolved because we cannot expect the users of this
599 dnl to define HAVE_LOCALE_H.
600 if test $ac_cv_header_locale_h = yes; then
601 INCLUDE_LOCALE_H="#include <locale.h>"
602 else
603 INCLUDE_LOCALE_H="\
604/* The system does not provide the header <locale.h>. Take care yourself. */"
605 fi
606 AC_SUBST(INCLUDE_LOCALE_H)
607
608 dnl Determine which catalog format we have (if any is needed)
609 dnl For now we know about two different formats:
610 dnl Linux libc-5 and the normal X/Open format
611 test -d intl || mkdir intl
612 if test "$CATOBJEXT" = ".cat"; then
613 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
614
615 dnl Transform the SED scripts while copying because some dumb SEDs
616 dnl cannot handle comments.
617 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
618 fi
619 dnl po2tbl.sed is always needed.
620 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
621 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
622
623 dnl In the intl/Makefile.in we have a special dependency which makes
624 dnl only sense for gettext. We comment this out for non-gettext
625 dnl packages.
626 if test "$PACKAGE" = "gettext"; then
627 GT_NO="#NO#"
628 GT_YES=
629 else
630 GT_NO=
631 GT_YES="#YES#"
632 fi
633 AC_SUBST(GT_NO)
634 AC_SUBST(GT_YES)
635
636 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
637 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
638 dnl Try to locate is.
639 MKINSTALLDIRS=
640 if test -n "$ac_aux_dir"; then
641 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
642 fi
643 if test -z "$MKINSTALLDIRS"; then
644 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
645 fi
646 AC_SUBST(MKINSTALLDIRS)
647
648 dnl *** For now the libtool support in intl/Makefile is not for real.
649 l=
650 AC_SUBST(l)
651
652 dnl Generate list of files to be processed by xgettext which will
653 dnl be included in po/Makefile.
654 test -d po || mkdir po
655 if test "x$srcdir" != "x."; then
656 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
657 posrcprefix="$srcdir/"
658 else
659 posrcprefix="../$srcdir/"
660 fi
661 else
662 posrcprefix="../"
663 fi
664 rm -f po/POTFILES
665 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
666 < $srcdir/po/POTFILES.in > po/POTFILES
667 ])
668
669# Check whether LC_MESSAGES is available in <locale.h>.
670# Ulrich Drepper <drepper@cygnus.com>, 1995.
671#
672# This file can be copied and used freely without restrictions. It can
673# be used in projects which are not available under the GNU Public License
674# but which still want to provide support for the GNU gettext functionality.
675# Please note that the actual code is *not* freely available.
676
677# serial 1
678
679AC_DEFUN(AM_LC_MESSAGES,
680 [if test $ac_cv_header_locale_h = yes; then
681 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
682 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
683 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
684 if test $am_cv_val_LC_MESSAGES = yes; then
685 AC_DEFINE(HAVE_LC_MESSAGES)
686 fi
687 fi])
688
689# Search path for a program which passes the given test.
690# Ulrich Drepper <drepper@cygnus.com>, 1996.
691#
692# This file can be copied and used freely without restrictions. It can
693# be used in projects which are not available under the GNU Public License
694# but which still want to provide support for the GNU gettext functionality.
695# Please note that the actual code is *not* freely available.
696
697# serial 1
698
00036f5c 699dnl GCC_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
ab87f8c8 700dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
00036f5c 701AC_DEFUN(GCC_PATH_PROG_WITH_TEST,
ab87f8c8
JL
702[# Extract the first word of "$2", so it can be a program name with args.
703set dummy $2; ac_word=[$]2
704AC_MSG_CHECKING([for $ac_word])
00036f5c 705AC_CACHE_VAL(gcc_cv_path_$1,
ab87f8c8
JL
706[case "[$]$1" in
707 /*)
00036f5c 708 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
ab87f8c8
JL
709 ;;
710 *)
711 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
712 for ac_dir in ifelse([$5], , $PATH, [$5]); do
713 test -z "$ac_dir" && ac_dir=.
714 if test -f $ac_dir/$ac_word; then
715 if [$3]; then
00036f5c 716 gcc_cv_path_$1="$ac_dir/$ac_word"
ab87f8c8
JL
717 break
718 fi
719 fi
720 done
721 IFS="$ac_save_ifs"
722dnl If no 4th arg is given, leave the cache variable unset,
00036f5c
PT
723dnl so GCC_PATH_PROGS will keep looking.
724ifelse([$4], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$4"
ab87f8c8
JL
725])dnl
726 ;;
727esac])dnl
00036f5c 728$1="$gcc_cv_path_$1"
ab87f8c8
JL
729if test -n "[$]$1"; then
730 AC_MSG_RESULT([$]$1)
731else
732 AC_MSG_RESULT(no)
733fi
734AC_SUBST($1)dnl
735])
4acab94b 736
4c1331d6
DA
737# Check whether mmap can map an arbitrary page from /dev/zero or with
738# MAP_ANONYMOUS, without MAP_FIXED.
4acab94b
AO
739AC_DEFUN([AC_FUNC_MMAP_ANYWHERE],
740[AC_CHECK_HEADERS(unistd.h)
741AC_CHECK_FUNCS(getpagesize)
4c1331d6
DA
742AC_CACHE_CHECK(for working mmap which provides zeroed pages anywhere,
743 ac_cv_func_mmap_anywhere,
4acab94b
AO
744[AC_TRY_RUN([
745/* Test by Richard Henderson and Alexandre Oliva.
4c1331d6 746 Check whether mmap MAP_ANONYMOUS or mmap from /dev/zero works. */
4acab94b
AO
747#include <sys/types.h>
748#include <fcntl.h>
749#include <sys/mman.h>
750
4c1331d6
DA
751#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
752# define MAP_ANONYMOUS MAP_ANON
753#endif
754
4acab94b
AO
755/* This mess was copied from the GNU getpagesize.h. */
756#ifndef HAVE_GETPAGESIZE
757# ifdef HAVE_UNISTD_H
758# include <unistd.h>
759# endif
760
761/* Assume that all systems that can run configure have sys/param.h. */
762# ifndef HAVE_SYS_PARAM_H
763# define HAVE_SYS_PARAM_H 1
764# endif
765
766# ifdef _SC_PAGESIZE
767# define getpagesize() sysconf(_SC_PAGESIZE)
768# else /* no _SC_PAGESIZE */
769# ifdef HAVE_SYS_PARAM_H
770# include <sys/param.h>
771# ifdef EXEC_PAGESIZE
772# define getpagesize() EXEC_PAGESIZE
773# else /* no EXEC_PAGESIZE */
774# ifdef NBPG
775# define getpagesize() NBPG * CLSIZE
776# ifndef CLSIZE
777# define CLSIZE 1
778# endif /* no CLSIZE */
779# else /* no NBPG */
780# ifdef NBPC
781# define getpagesize() NBPC
782# else /* no NBPC */
783# ifdef PAGESIZE
784# define getpagesize() PAGESIZE
785# endif /* PAGESIZE */
786# endif /* no NBPC */
787# endif /* no NBPG */
788# endif /* no EXEC_PAGESIZE */
789# else /* no HAVE_SYS_PARAM_H */
790# define getpagesize() 8192 /* punt totally */
791# endif /* no HAVE_SYS_PARAM_H */
792# endif /* no _SC_PAGESIZE */
793
794#endif /* no HAVE_GETPAGESIZE */
795
796int main()
797{
798 char *x;
799 int fd, pg;
800
4c1331d6 801#ifndef MAP_ANONYMOUS
4acab94b
AO
802 fd = open("/dev/zero", O_RDWR);
803 if (fd < 0)
804 exit(1);
4c1331d6 805#endif
4acab94b
AO
806
807 pg = getpagesize();
4c1331d6
DA
808#ifdef MAP_ANONYMOUS
809 x = (char*)mmap(0, pg, PROT_READ|PROT_WRITE,
810 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
811#else
4acab94b 812 x = (char*)mmap(0, pg, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
4c1331d6 813#endif
4acab94b
AO
814 if (x == (char *) -1)
815 exit(2);
816
817 *(int *)x += 1;
818
819 if (munmap(x, pg) < 0)
820 exit(3);
821
822 exit(0);
823}], ac_cv_func_mmap_anywhere=yes, ac_cv_func_mmap_anywhere=no,
824ac_cv_func_mmap_anywhere=no)])
825if test $ac_cv_func_mmap_anywhere = yes; then
826 AC_DEFINE(HAVE_MMAP_ANYWHERE, 1,
4c1331d6 827 [Define if mmap can get us zeroed pages without MAP_FIXED.])
4acab94b
AO
828fi
829])
56f02b88
ZW
830
831# Check whether mmap can map a plain file, without MAP_FIXED.
832AC_DEFUN([AC_FUNC_MMAP_FILE],
833[AC_REQUIRE([AC_FUNC_MMAP_ANYWHERE])dnl
834AC_CACHE_CHECK(for working mmap of a file, ac_cv_func_mmap_file,
835[# Create a file one thousand bytes long.
836for i in 1 2 3 4 5 6 7 8 9 0
837do for j in 1 2 3 4 5 6 7 8 9 0
838do echo $i $j xxxxx
839done
840done > conftestdata$$
841
842AC_TRY_RUN([
843/* Test by Zack Weinberg. Modified from MMAP_ANYWHERE test by
844 Richard Henderson and Alexandre Oliva.
845 Check whether read-only mmap of a plain file works. */
846#include <sys/types.h>
847#include <sys/stat.h>
848#include <fcntl.h>
849#include <sys/mman.h>
850
851int main()
852{
853 char *x;
854 int fd;
855 struct stat st;
856
857 fd = open("conftestdata$$", O_RDONLY);
858 if (fd < 0)
859 exit(1);
860
861 if (fstat (fd, &st))
862 exit(2);
863
864 x = (char*)mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
865 if (x == (char *) -1)
866 exit(3);
867
868 if (x[0] != '1' || x[1] != ' ' || x[2] != '1' || x[3] != ' ')
869 exit(4);
870
871 if (munmap(x, st.st_size) < 0)
872 exit(5);
873
874 exit(0);
875}], ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no,
876ac_cv_func_mmap_file=no)])
877if test $ac_cv_func_mmap_file = yes; then
878 AC_DEFINE(HAVE_MMAP_FILE, 1,
879 [Define if read-only mmap of a plain file works.])
880fi
881])
09fa0705
ZW
882
883dnl Locate a program and check that its version is acceptable.
884dnl AC_PROG_CHECK_VER(var, name, version-switch,
885dnl version-extract-regexp, version-glob)
886AC_DEFUN(gcc_AC_CHECK_PROG_VER,
887[AC_CHECK_PROG([$1], [$2], [$2])
888if test -n "[$]$1"; then
889 # Found it, now check the version.
890 AC_CACHE_CHECK(for modern $2, gcc_cv_prog_$2_modern,
891[changequote(<<,>>)dnl
892 ac_prog_version=`<<$>>$1 $3 2>&1 |
893 sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'`
894 echo "configure:__oline__: version of $2 is $ac_prog_version" >&AC_FD_CC
895 case $ac_prog_version in
896 '') gcc_cv_prog_$2_modern=no;;
897 <<$5>>)
898 gcc_cv_prog_$2_modern=yes;;
899 *) gcc_cv_prog_$2_modern=no;;
900 esac
901changequote([,])dnl
902])
903else
904 gcc_cv_prog_$2_modern=no
905fi
906])