1 Fdnl See whether we can include both string.h and strings.h.
2 AC_DEFUN(gcc_AC_HEADER_STRING,
3 [AC_CACHE_CHECK([whether string.h and strings.h may both be included],
5 [AC_TRY_COMPILE([#include <string.h>
6 #include <strings.h>], , gcc_cv_header_string=yes, gcc_cv_header_string=no)])
7 if test $gcc_cv_header_string = yes; then
8 AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both <string.h> and <strings.h>.])
12 dnl See whether we need a declaration for a function.
13 dnl The result is highly dependent on the INCLUDES passed in, so make sure
14 dnl to use a different cache variable name in this macro if it is invoked
15 dnl in a different context somewhere else.
16 dnl gcc_AC_CHECK_DECL(SYMBOL,
17 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
18 AC_DEFUN(gcc_AC_CHECK_DECL,
19 [AC_MSG_CHECKING([whether $1 is declared])
20 AC_CACHE_VAL(gcc_cv_have_decl_$1,
23 char *(*pfn) = (char *(*)) $1 ;
24 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
25 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
26 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
28 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
32 dnl Check multiple functions to see whether each needs a declaration.
33 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
34 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
35 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
36 AC_DEFUN(gcc_AC_CHECK_DECLS,
40 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
42 gcc_AC_CHECK_DECL($ac_func,
43 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
44 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
45 dnl It is possible that the include files passed in here are local headers
46 dnl which supply a backup declaration for the relevant prototype based on
47 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
48 dnl will always return success. E.g. see libiberty.h's handling of
49 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
50 dnl 1 so that any local headers used do not provide their own prototype
57 dnl Automatically generate config.h entries via autoheader.
59 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
60 AC_DEFINE([HAVE_DECL_\&], 1,
61 [Define to 1 if we found this declaration otherwise define to 0.]))dnl
65 dnl Check if we have vprintf and possibly _doprnt.
66 dnl Note autoconf checks for vprintf even though we care about vfprintf.
67 AC_DEFUN(gcc_AC_FUNC_VFPRINTF_DOPRNT,
71 if test $ac_cv_func_vprintf != yes ; then
73 if test $ac_cv_func__doprnt != yes ; then
81 dnl Check if we have strstr.
82 AC_DEFUN([gcc_AC_FUNC_STRSTR],
83 [AC_CHECK_FUNCS([strstr], [strstr=], [strstr=strstr.o])
86 dnl See if the printf functions in libc support %p in format strings.
87 AC_DEFUN(gcc_AC_FUNC_PRINTF_PTR,
88 [AC_CACHE_CHECK(whether the printf functions support %p,
89 gcc_cv_func_printf_ptr,
90 [AC_TRY_RUN([#include <stdio.h>
95 char *p = buf, *q = NULL;
96 sprintf(buf, "%p", p);
97 sscanf(buf, "%p", &q);
99 }], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
100 gcc_cv_func_printf_ptr=no)
101 rm -f core core.* *.core])
102 if test $gcc_cv_func_printf_ptr = yes ; then
103 AC_DEFINE(HAVE_PRINTF_PTR, 1, [Define if printf supports "%p".])
107 dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
108 AC_DEFUN(gcc_AC_PROG_LN_S,
109 [AC_MSG_CHECKING(whether ln -s works)
110 AC_CACHE_VAL(gcc_cv_prog_LN_S,
111 [rm -f conftestdata_t
113 if ln -s conftestdata_f conftestdata_t 2>/dev/null
115 gcc_cv_prog_LN_S="ln -s"
117 if ln conftestdata_f conftestdata_t 2>/dev/null
124 rm -f conftestdata_f conftestdata_t
126 LN_S="$gcc_cv_prog_LN_S"
127 if test "$gcc_cv_prog_LN_S" = "ln -s"; then
130 if test "$gcc_cv_prog_LN_S" = "ln"; then
131 AC_MSG_RESULT([no, using ln])
133 AC_MSG_RESULT([no, and neither does ln, so using cp])
139 dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
140 AC_DEFUN(gcc_AC_PROG_LN,
141 [AC_MSG_CHECKING(whether ln works)
142 AC_CACHE_VAL(gcc_cv_prog_LN,
143 [rm -f conftestdata_t
145 if ln conftestdata_f conftestdata_t 2>/dev/null
149 if ln -s conftestdata_f conftestdata_t 2>/dev/null
151 gcc_cv_prog_LN="ln -s"
156 rm -f conftestdata_f conftestdata_t
159 if test "$gcc_cv_prog_LN" = "ln"; then
162 if test "$gcc_cv_prog_LN" = "ln -s"; then
163 AC_MSG_RESULT([no, using ln -s])
165 AC_MSG_RESULT([no, and neither does ln -s, so using cp])
171 dnl See whether the stage1 host compiler accepts the volatile keyword.
172 AC_DEFUN(gcc_AC_C_VOLATILE,
173 [AC_CACHE_CHECK([for volatile], gcc_cv_c_volatile,
174 [AC_TRY_COMPILE(, [volatile int foo;],
175 gcc_cv_c_volatile=yes, gcc_cv_c_volatile=no)])
176 if test $gcc_cv_c_volatile = yes ; then
177 AC_DEFINE(HAVE_VOLATILE, 1, [Define if your compiler understands volatile.])
181 dnl Check whether long double is supported. This differs from the
182 dnl built-in autoconf test in that it works for cross compiles.
183 AC_DEFUN(gcc_AC_C_LONG_DOUBLE,
184 [AC_CACHE_CHECK(for long double, gcc_cv_c_long_double,
185 [if test "$GCC" = yes; then
186 gcc_cv_c_long_double=yes
189 [/* The Stardent Vistra knows sizeof(long double), but does not support it. */
190 long double foo = 0.0;
191 /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
192 switch (0) case 0: case (sizeof(long double) >= sizeof(double)):;],
193 gcc_cv_c_long_double=yes, gcc_cv_c_long_double=no)
195 if test $gcc_cv_c_long_double = yes; then
196 AC_DEFINE(HAVE_LONG_DOUBLE)
200 dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
202 AC_DEFUN(gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG,
203 [AC_CACHE_CHECK([if mkdir takes one argument], gcc_cv_mkdir_takes_one_arg,
205 #include <sys/types.h>
206 #ifdef HAVE_SYS_STAT_H
207 # include <sys/stat.h>
214 #endif], [mkdir ("foo", 0);],
215 gcc_cv_mkdir_takes_one_arg=no, gcc_cv_mkdir_takes_one_arg=yes)])
216 if test $gcc_cv_mkdir_takes_one_arg = yes ; then
217 AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
221 AC_DEFUN(gcc_AC_PROG_INSTALL,
222 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
223 # Find a good install program. We prefer a C program (faster),
224 # so one script is as good as another. But avoid the broken or
225 # incompatible versions:
226 # SysV /etc/install, /usr/sbin/install
227 # SunOS /usr/etc/install
230 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
231 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
232 # ./install, which can be erroneously created by make from ./install.sh.
233 AC_MSG_CHECKING(for a BSD compatible install)
234 if test -z "$INSTALL"; then
235 AC_CACHE_VAL(ac_cv_path_install,
236 [ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
237 for ac_dir in $PATH; do
238 # Account for people who put trailing slashes in PATH elements.
240 /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
242 # OSF1 and SCO ODT 3.0 have their own names for install.
243 for ac_prog in ginstall scoinst install; do
244 if test -f $ac_dir/$ac_prog; then
245 if test $ac_prog = install &&
246 grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
247 # AIX install. It has an incompatible calling convention.
248 # OSF/1 installbsd also uses dspmsg, but is usable.
251 ac_cv_path_install="$ac_dir/$ac_prog -c"
261 if test "${ac_cv_path_install+set}" = set; then
262 INSTALL="$ac_cv_path_install"
264 # As a last resort, use the slow shell script. We don't cache a
265 # path for INSTALL within a source directory, because that will
266 # break other packages using the cache if that directory is
267 # removed, or if the path is relative.
268 INSTALL="$ac_install_sh"
271 dnl We do special magic for INSTALL instead of AC_SUBST, to get
272 dnl relative paths right.
273 AC_MSG_RESULT($INSTALL)
276 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
277 # It thinks the first close brace ends the variable substitution.
278 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
279 AC_SUBST(INSTALL_PROGRAM)dnl
281 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
282 AC_SUBST(INSTALL_DATA)dnl
286 dnl This test replaces the one in autoconf.
287 dnl Currently this macro should have the same name as the autoconf macro
288 dnl because gettext's gettext.m4 (distributed in the automake package)
289 dnl still uses it. Otherwise, the use in gettext.m4 makes autoheader
290 dnl give these diagnostics:
291 dnl configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
292 dnl configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
294 undefine([AC_ISC_POSIX])
295 AC_DEFUN(AC_ISC_POSIX,
297 dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
298 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
303 dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
304 dnl like AC_PATH_PROG but use other cache variables
305 AC_DEFUN(GCC_PATH_PROG,
306 [# Extract the first word of "$2", so it can be a program name with args.
307 set dummy $2; ac_word=[$]2
308 AC_MSG_CHECKING([for $ac_word])
309 AC_CACHE_VAL(gcc_cv_path_$1,
312 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
315 gcc_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
318 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
319 dnl $ac_dummy forces splitting on constant user-supplied paths.
320 dnl POSIX.2 word splitting is done only on the output of word expansions,
321 dnl not every word. This closes a longstanding sh security hole.
322 ac_dummy="ifelse([$4], , $PATH, [$4])"
323 for ac_dir in $ac_dummy; do
324 test -z "$ac_dir" && ac_dir=.
325 if test -f $ac_dir/$ac_word; then
326 gcc_cv_path_$1="$ac_dir/$ac_word"
331 dnl If no 3rd arg is given, leave the cache variable unset,
332 dnl so GCC_PATH_PROGS will keep looking.
333 ifelse([$3], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$3"
338 if test -n "[$]$1"; then
348 # Macro to add for using GNU gettext.
349 # Ulrich Drepper <drepper@cygnus.com>, 1995.
351 # This file can be copied and used freely without restrictions. It can
352 # be used in projects which are not available under the GNU Public License
353 # but which still want to provide support for the GNU gettext functionality.
354 # Please note that the actual code is *not* freely available.
358 AC_DEFUN(AM_WITH_NLS,
359 [AC_MSG_CHECKING([whether NLS is requested])
360 dnl Default is enabled NLS
362 [ --disable-nls do not use Native Language Support],
363 USE_NLS=$enableval, USE_NLS=yes)
364 AC_MSG_RESULT($USE_NLS)
367 USE_INCLUDED_LIBINTL=no
369 dnl If we use NLS figure out what method
370 if test "$USE_NLS" = "yes"; then
371 AC_DEFINE(ENABLE_NLS)
372 AC_MSG_CHECKING([whether included gettext is requested])
373 AC_ARG_WITH(included-gettext,
374 [ --with-included-gettext use the GNU gettext library included here],
375 nls_cv_force_use_gnu_gettext=$withval,
376 nls_cv_force_use_gnu_gettext=no)
377 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
379 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
380 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
381 dnl User does not insist on using GNU NLS library. Figure out what
382 dnl to use. If gettext or catgets are available (in this order) we
383 dnl use this. Else we have to fall back to GNU NLS library.
384 dnl catgets is only used if permitted by option --with-catgets.
389 AC_CHECK_HEADER(libintl.h,
390 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
391 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
392 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
394 if test "$gt_cv_func_gettext_libc" != "yes"; then
395 AC_CHECK_LIB(intl, bindtextdomain,
396 [AC_CACHE_CHECK([for gettext in libintl],
397 gt_cv_func_gettext_libintl,
398 [AC_CHECK_LIB(intl, gettext,
399 gt_cv_func_gettext_libintl=yes,
400 gt_cv_func_gettext_libintl=no)],
401 gt_cv_func_gettext_libintl=no)])
404 if test "$gt_cv_func_gettext_libintl" = "yes"; then
408 if test "$gt_cv_func_gettext_libc" = "yes" \
409 || test "$gt_cv_func_gettext_libintl" = "yes"; then
410 AC_DEFINE(HAVE_GETTEXT)
411 GCC_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
412 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
413 if test "$MSGFMT" != "no"; then
414 AC_CHECK_FUNCS(dcgettext)
415 GCC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
416 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
417 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
418 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
419 return _nl_msg_cat_cntr],
431 if test "$CATOBJEXT" = "NONE"; then
432 AC_MSG_CHECKING([whether catgets can be used])
434 [ --with-catgets use catgets functions if available],
435 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
436 AC_MSG_RESULT($nls_cv_use_catgets)
438 if test "$nls_cv_use_catgets" = "yes"; then
439 dnl No gettext in C library. Try catgets next.
440 AC_CHECK_LIB(i, main)
441 AC_CHECK_FUNC(catgets,
442 [AC_DEFINE(HAVE_CATGETS)
443 INTLOBJS="\$(CATOBJS)"
444 GCC_PATH_PROG(GENCAT, gencat, no)dnl
445 if test "$GENCAT" != "no"; then
446 GCC_PATH_PROG(GMSGFMT, gmsgfmt, no)
447 if test "$GMSGFMT" = "no"; then
448 GCC_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
449 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
450 if test "$GMSGFMT" = "msgfmt"; then
454 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
455 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
456 USE_INCLUDED_LIBINTL=yes
460 INTLDEPS='$(top_builddir)/intl/libintl.a'
462 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
463 nls_cv_header_intl=intl/libintl.h
464 nls_cv_header_libgt=intl/libgettext.h
469 if test "$CATOBJEXT" = "NONE"; then
470 dnl Neither gettext nor catgets in included in the C library.
471 dnl Fall back on GNU gettext library.
472 nls_cv_use_gnu_gettext=yes
476 if test "$nls_cv_use_gnu_gettext" = "yes"; then
477 dnl Mark actions used to generate GNU NLS library.
478 INTLOBJS="\$(GETTOBJS)"
479 GCC_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
480 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
481 GCC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
482 dnl If we didn't find either msgfmt or gmsgfmt, don't try to
483 dnl create a catalog.
484 if test "$MSGFMT" = "msgfmt" && test "$GMSGFMT" = "msgfmt"; then
487 GCC_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
488 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
490 USE_INCLUDED_LIBINTL=yes
494 INTLDEPS='$(top_builddir)/intl/libintl.a'
496 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
497 nls_cv_header_intl=intl/libintl.h
498 nls_cv_header_libgt=intl/libgettext.h
501 dnl Test whether we really found GNU xgettext.
502 if test "$XGETTEXT" != ":"; then
503 dnl If it is no GNU xgettext we define it as : so that the
504 dnl Makefiles still can work.
505 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
509 [found xgettext program is not GNU xgettext; ignore it])
516 # We need to process the po/ directory.
520 nls_cv_header_intl=intl/libintl.h
521 nls_cv_header_libgt=intl/libgettext.h
523 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
525 [case "$CONFIG_FILES" in *po/Makefile.in*)
526 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
530 # If this is used in GNU gettext we have to set USE_NLS to `yes'
531 # because some of the sources are only built for this goal.
532 if test "$PACKAGE" = gettext; then
534 USE_INCLUDED_LIBINTL=yes
537 dnl These rules are solely for the distribution goal. While doing this
538 dnl we only have to keep exactly one list of the available catalogs
540 for lang in $ALL_LINGUAS; do
541 GMOFILES="$GMOFILES $lang.gmo"
542 POFILES="$POFILES $lang.po"
545 dnl Make all variables we use known to autoconf.
546 AC_SUBST(USE_INCLUDED_LIBINTL)
549 AC_SUBST(DATADIRNAME)
559 AC_DEFUN(AM_GNU_GETTEXT,
560 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
561 AC_REQUIRE([AC_PROG_CC])dnl
562 AC_REQUIRE([AC_PROG_RANLIB])dnl
563 AC_REQUIRE([AC_ISC_POSIX])dnl
564 AC_REQUIRE([AC_HEADER_STDC])dnl
565 AC_REQUIRE([AC_C_CONST])dnl
566 AC_REQUIRE([AC_C_INLINE])dnl
567 AC_REQUIRE([AC_TYPE_OFF_T])dnl
568 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
569 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
571 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
572 unistd.h sys/param.h])
573 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
574 strdup __argz_count __argz_stringify __argz_next])
576 if test "${ac_cv_func_stpcpy+set}" != "set"; then
577 AC_CHECK_FUNCS(stpcpy)
579 if test "${ac_cv_func_stpcpy}" = "yes"; then
580 AC_DEFINE(HAVE_STPCPY)
586 if test "x$create_catalogs" = "xno"; then
587 AC_MSG_WARN([No program for building catalogs found -> building disabled])
590 if test "x$CATOBJEXT" != "x" && test "x$create_catalogs" != "xno" ; then
591 if test "x$ALL_LINGUAS" = "x"; then
594 AC_MSG_CHECKING(for catalogs to be installed)
595 if test "x$LINGUAS" = "x"; then
599 for lang in $ALL_LINGUAS; do
601 *" $lang "*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
606 AC_MSG_RESULT($LINGUAS)
609 dnl Construct list of names of catalog files to be constructed.
610 if test -n "$LINGUAS"; then
611 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
615 dnl The reference to <locale.h> in the installed <libintl.h> file
616 dnl must be resolved because we cannot expect the users of this
617 dnl to define HAVE_LOCALE_H.
618 if test $ac_cv_header_locale_h = yes; then
619 INCLUDE_LOCALE_H="#include <locale.h>"
622 /* The system does not provide the header <locale.h>. Take care yourself. */"
624 AC_SUBST(INCLUDE_LOCALE_H)
626 dnl Determine which catalog format we have (if any is needed)
627 dnl For now we know about two different formats:
628 dnl Linux libc-5 and the normal X/Open format
629 test -d intl || mkdir intl
630 if test "$CATOBJEXT" = ".cat"; then
631 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
633 dnl Transform the SED scripts while copying because some dumb SEDs
634 dnl cannot handle comments.
635 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
637 dnl po2tbl.sed is always needed.
638 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
639 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
641 dnl In the intl/Makefile.in we have a special dependency which makes
642 dnl only sense for gettext. We comment this out for non-gettext
644 if test "$PACKAGE" = "gettext"; then
654 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
655 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
656 dnl Try to locate is.
658 if test -n "$ac_aux_dir"; then
659 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
661 if test -z "$MKINSTALLDIRS"; then
662 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
664 AC_SUBST(MKINSTALLDIRS)
666 dnl *** For now the libtool support in intl/Makefile is not for real.
670 dnl Generate list of files to be processed by xgettext which will
671 dnl be included in po/Makefile.
672 test -d po || mkdir po
673 if test "x$srcdir" != "x."; then
674 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
675 posrcprefix="$srcdir/"
677 posrcprefix="../$srcdir/"
683 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
684 < $srcdir/po/POTFILES.in > po/POTFILES
687 # Check whether LC_MESSAGES is available in <locale.h>.
688 # Ulrich Drepper <drepper@cygnus.com>, 1995.
690 # This file can be copied and used freely without restrictions. It can
691 # be used in projects which are not available under the GNU Public License
692 # but which still want to provide support for the GNU gettext functionality.
693 # Please note that the actual code is *not* freely available.
697 AC_DEFUN(AM_LC_MESSAGES,
698 [if test $ac_cv_header_locale_h = yes; then
699 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
700 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
701 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
702 if test $am_cv_val_LC_MESSAGES = yes; then
703 AC_DEFINE(HAVE_LC_MESSAGES)
707 # Search path for a program which passes the given test.
708 # Ulrich Drepper <drepper@cygnus.com>, 1996.
710 # This file can be copied and used freely without restrictions. It can
711 # be used in projects which are not available under the GNU Public License
712 # but which still want to provide support for the GNU gettext functionality.
713 # Please note that the actual code is *not* freely available.
717 dnl GCC_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
718 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
719 AC_DEFUN(GCC_PATH_PROG_WITH_TEST,
720 [# Extract the first word of "$2", so it can be a program name with args.
721 set dummy $2; ac_word=[$]2
722 AC_MSG_CHECKING([for $ac_word])
723 AC_CACHE_VAL(gcc_cv_path_$1,
726 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
729 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
730 for ac_dir in ifelse([$5], , $PATH, [$5]); do
731 test -z "$ac_dir" && ac_dir=.
732 if test -f $ac_dir/$ac_word; then
734 gcc_cv_path_$1="$ac_dir/$ac_word"
740 dnl If no 4th arg is given, leave the cache variable unset,
741 dnl so GCC_PATH_PROGS will keep looking.
742 ifelse([$4], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$4"
747 if test -n "[$]$1"; then
755 # Check whether mmap can map an arbitrary page from /dev/zero or with
756 # MAP_ANONYMOUS, without MAP_FIXED.
757 AC_DEFUN([AC_FUNC_MMAP_ANYWHERE],
758 [AC_CHECK_FUNCS(getpagesize)
759 # The test program for the next two tests is the same except for one
761 changequote({{{,}}})dnl
762 {{{cat >ct-mmap.inc <<'EOF'
763 #include <sys/types.h>
764 #include <sys/mman.h>
770 #if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
771 # define MAP_ANONYMOUS MAP_ANON
774 /* This mess was copied from the GNU getpagesize.h. */
775 #ifndef HAVE_GETPAGESIZE
776 # ifdef HAVE_UNISTD_H
780 /* Assume that all systems that can run configure have sys/param.h. */
781 # ifndef HAVE_SYS_PARAM_H
782 # define HAVE_SYS_PARAM_H 1
786 # define getpagesize() sysconf(_SC_PAGESIZE)
787 # else /* no _SC_PAGESIZE */
788 # ifdef HAVE_SYS_PARAM_H
789 # include <sys/param.h>
790 # ifdef EXEC_PAGESIZE
791 # define getpagesize() EXEC_PAGESIZE
792 # else /* no EXEC_PAGESIZE */
794 # define getpagesize() NBPG * CLSIZE
797 # endif /* no CLSIZE */
800 # define getpagesize() NBPC
803 # define getpagesize() PAGESIZE
804 # endif /* PAGESIZE */
805 # endif /* no NBPC */
806 # endif /* no NBPG */
807 # endif /* no EXEC_PAGESIZE */
808 # else /* no HAVE_SYS_PARAM_H */
809 # define getpagesize() 8192 /* punt totally */
810 # endif /* no HAVE_SYS_PARAM_H */
811 # endif /* no _SC_PAGESIZE */
813 #endif /* no HAVE_GETPAGESIZE */
816 # define MAP_FAILED -1
820 #define perror_exit(str, val) \
821 do { perror(str); exit(val); } while (0)
823 /* Some versions of cygwin mmap require that munmap is called with the
824 same parameters as mmap. GCC expects that this is not the case.
825 Test for various forms of this problem. Warning - icky signal games. */
827 static sigset_t unblock_sigsegv;
837 return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
838 MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
840 return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
841 MAP_PRIVATE, devzero, 0);
849 sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
853 /* Basic functionality test. */
857 char *x = anonmap (pg);
858 if (x == (char *) MAP_FAILED)
859 perror_exit("test 0 mmap", 2);
863 if (munmap(x, pg) < 0)
864 perror_exit("test 0 munmap", 3);
867 /* 1. If we map a 2-page region and unmap its second page, the first page
872 char *x = anonmap (pg * 2);
873 if (x == (char *)MAP_FAILED)
874 perror_exit ("test 1 mmap", 4);
876 signal (SIGSEGV, sigsegv);
878 perror_exit ("test 1 fault", 5);
883 if (munmap (x + pg, pg) < 0)
884 perror_exit ("test 1 munmap 1", 6);
890 perror_exit ("test 1 no fault", 7);
892 if (munmap (x, pg) < 0)
893 perror_exit ("test 1 munmap 2", 8);
896 /* 2. If we map a 2-page region and unmap its first page, the second
901 char *x = anonmap (pg * 2);
902 if (x == (char *)MAP_FAILED)
903 perror_exit ("test 2 mmap", 9);
905 signal (SIGSEGV, sigsegv);
907 perror_exit ("test 2 fault", 10);
912 if (munmap (x, pg) < 0)
913 perror_exit ("test 2 munmap 1", 11);
920 perror_exit ("test 2 no fault", 12);
923 if (munmap (x+pg, pg) < 0)
924 perror_exit ("test 2 munmap 2", 13);
927 /* 3. If we map two adjacent 1-page regions and unmap them both with
928 one munmap, both must go away.
930 Getting two adjacent 1-page regions with two mmap calls is slightly
931 tricky. All OS's tested skip over already-allocated blocks; therefore
932 we have been careful to unmap all allocated regions in previous tests.
933 HP/UX allocates pages backward in memory. No OS has yet been observed
934 to be so perverse as to leave unmapped space between consecutive calls
943 if (x == (char *)MAP_FAILED)
944 perror_exit ("test 3 mmap 1", 14);
946 if (y == (char *)MAP_FAILED)
947 perror_exit ("test 3 mmap 2", 15);
955 fprintf (stderr, "test 3 nonconsecutive pages - %lx, %lx\n",
956 (unsigned long)x, (unsigned long)y);
961 signal (SIGSEGV, sigsegv);
963 perror_exit ("test 3 fault", 17);
968 if (munmap (x, pg*2) < 0)
969 perror_exit ("test 3 munmap", 18);
974 perror_exit ("test 3 no fault 1", 19);
977 signal (SIGSEGV, sigsegv);
981 perror_exit ("test 3 no fault 2", 20);
988 sigemptyset (&unblock_sigsegv);
989 sigaddset (&unblock_sigsegv, SIGSEGV);
992 devzero = open ("/dev/zero", O_RDWR);
994 perror_exit ("open /dev/zero", 1);
1007 AC_CACHE_CHECK(for working mmap from /dev/zero,
1008 ac_cv_func_mmap_dev_zero,
1010 [#include "ct-mmap.inc"],
1011 ac_cv_func_mmap_dev_zero=yes,
1013 then ac_cv_func_mmap_dev_zero=no
1014 else ac_cv_func_mmap_dev_zero=buggy
1016 # If this is not cygwin, and /dev/zero is a character device, it's probably
1017 # safe to assume it works.
1019 cygwin* | win32 | pe | mingw* ) ac_cv_func_mmap_dev_zero=buggy ;;
1020 * ) if test -c /dev/zero
1021 then ac_cv_func_mmap_dev_zero=yes
1022 else ac_cv_func_mmap_dev_zero=no
1026 if test $ac_cv_func_mmap_dev_zero = yes; then
1027 AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
1028 [Define if mmap can get us zeroed pages from /dev/zero.])
1031 AC_CACHE_CHECK([for working mmap with MAP_ANON(YMOUS)],
1032 ac_cv_func_mmap_anon,
1034 [#define USE_MAP_ANON
1035 #include "ct-mmap.inc"],
1036 ac_cv_func_mmap_anon=yes,
1038 then ac_cv_func_mmap_anon=no
1039 else ac_cv_func_mmap_anon=buggy
1041 # Unlike /dev/zero, it is not safe to assume MAP_ANON(YMOUS) works
1042 # just because it's there. Some SCO Un*xen define it but don't implement it.
1043 ac_cv_func_mmap_anon=no)
1045 if test $ac_cv_func_mmap_anon = yes; then
1046 AC_DEFINE(HAVE_MMAP_ANON, 1,
1047 [Define if mmap can get us zeroed pages using MAP_ANON(YMOUS).])
1052 # Check whether mmap can map a plain file, without MAP_FIXED.
1053 AC_DEFUN([AC_FUNC_MMAP_FILE],
1054 [AC_CACHE_CHECK(for working mmap of a file, ac_cv_func_mmap_file,
1055 [# Create a file one thousand bytes long.
1056 for i in 1 2 3 4 5 6 7 8 9 0
1057 do for j in 1 2 3 4 5 6 7 8 9 0
1060 done > conftestdata$$
1063 /* Test by Zack Weinberg. Modified from MMAP_ANYWHERE test by
1064 Richard Henderson and Alexandre Oliva.
1065 Check whether read-only mmap of a plain file works. */
1066 #include <sys/types.h>
1067 #include <sys/stat.h>
1069 #include <sys/mman.h>
1077 fd = open("conftestdata$$", O_RDONLY);
1081 if (fstat (fd, &st))
1084 x = (char*)mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
1085 if (x == (char *) -1)
1088 if (x[0] != '1' || x[1] != ' ' || x[2] != '1' || x[3] != ' ')
1091 if (munmap(x, st.st_size) < 0)
1095 }], ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no,
1096 ac_cv_func_mmap_file=no)])
1097 if test $ac_cv_func_mmap_file = yes; then
1098 AC_DEFINE(HAVE_MMAP_FILE, 1,
1099 [Define if read-only mmap of a plain file works.])
1103 dnl Locate a program and check that its version is acceptable.
1104 dnl AC_PROG_CHECK_VER(var, name, version-switch,
1105 dnl version-extract-regexp, version-glob)
1106 AC_DEFUN(gcc_AC_CHECK_PROG_VER,
1107 [AC_CHECK_PROG([$1], [$2], [$2])
1108 if test -n "[$]$1"; then
1109 # Found it, now check the version.
1110 AC_CACHE_CHECK(for modern $2, gcc_cv_prog_$2_modern,
1111 [changequote(<<,>>)dnl
1112 ac_prog_version=`<<$>>$1 $3 2>&1 |
1113 sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'`
1114 echo "configure:__oline__: version of $2 is $ac_prog_version" >&AC_FD_CC
1115 case $ac_prog_version in
1116 '') gcc_cv_prog_$2_modern=no;;
1118 gcc_cv_prog_$2_modern=yes;;
1119 *) gcc_cv_prog_$2_modern=no;;
1124 gcc_cv_prog_$2_modern=no