xref: /netbsd-src/external/gpl2/grep/dist/aclocal.m4 (revision a8fa202a6440953be7b92a8960a811bff58203f4)
1# aclocal.m4 generated automatically by aclocal 1.5
2
3# Copyright 1996, 1997, 1998, 1999, 2000, 2001
4# Free Software Foundation, Inc.
5# This file is free software; the Free Software Foundation
6# gives unlimited permission to copy and/or distribute it,
7# with or without modifications, as long as this notice is preserved.
8
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12# PARTICULAR PURPOSE.
13
14# Do all the work for Automake.  This macro actually does too much --
15# some checks are only needed if your package does certain things.
16# But this isn't really a big deal.
17
18# serial 5
19
20# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
21# written in clear, in which case automake, when reading aclocal.m4,
22# will think it sees a *use*, and therefore will trigger all it's
23# C support machinery.  Also note that it means that autoscan, seeing
24# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
25
26
27# We require 2.13 because we rely on SHELL being computed by configure.
28AC_PREREQ([2.13])
29
30# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
31# -----------------------------------------------------------
32# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
33# The purpose of this macro is to provide the user with a means to
34# check macros which are provided without letting her know how the
35# information is coded.
36# If this macro is not defined by Autoconf, define it here.
37ifdef([AC_PROVIDE_IFELSE],
38      [],
39      [define([AC_PROVIDE_IFELSE],
40              [ifdef([AC_PROVIDE_$1],
41                     [$2], [$3])])])
42
43
44# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
45# ----------------------------------------------
46AC_DEFUN([AM_INIT_AUTOMAKE],
47[AC_REQUIRE([AC_PROG_INSTALL])dnl
48# test to see if srcdir already configured
49if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
50   test -f $srcdir/config.status; then
51  AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
52fi
53
54# Define the identity of the package.
55PACKAGE=$1
56AC_SUBST(PACKAGE)dnl
57VERSION=$2
58AC_SUBST(VERSION)dnl
59ifelse([$3],,
60[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
61AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
62
63# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
64# the ones we care about.
65ifdef([m4_pattern_allow],
66      [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
67
68# Autoconf 2.50 always computes EXEEXT.  However we need to be
69# compatible with 2.13, for now.  So we always define EXEEXT, but we
70# don't compute it.
71AC_SUBST(EXEEXT)
72# Similar for OBJEXT -- only we only use OBJEXT if the user actually
73# requests that it be used.  This is a bit dumb.
74: ${OBJEXT=o}
75AC_SUBST(OBJEXT)
76
77# Some tools Automake needs.
78AC_REQUIRE([AM_SANITY_CHECK])dnl
79AC_REQUIRE([AC_ARG_PROGRAM])dnl
80AM_MISSING_PROG(ACLOCAL, aclocal)
81AM_MISSING_PROG(AUTOCONF, autoconf)
82AM_MISSING_PROG(AUTOMAKE, automake)
83AM_MISSING_PROG(AUTOHEADER, autoheader)
84AM_MISSING_PROG(MAKEINFO, makeinfo)
85AM_MISSING_PROG(AMTAR, tar)
86AM_PROG_INSTALL_SH
87AM_PROG_INSTALL_STRIP
88# We need awk for the "check" target.  The system "awk" is bad on
89# some platforms.
90AC_REQUIRE([AC_PROG_AWK])dnl
91AC_REQUIRE([AC_PROG_MAKE_SET])dnl
92AC_REQUIRE([AM_DEP_TRACK])dnl
93AC_REQUIRE([AM_SET_DEPDIR])dnl
94AC_PROVIDE_IFELSE([AC_PROG_][CC],
95                  [_AM_DEPENDENCIES(CC)],
96                  [define([AC_PROG_][CC],
97                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
98AC_PROVIDE_IFELSE([AC_PROG_][CXX],
99                  [_AM_DEPENDENCIES(CXX)],
100                  [define([AC_PROG_][CXX],
101                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
102])
103
104#
105# Check to make sure that the build environment is sane.
106#
107
108# serial 3
109
110# AM_SANITY_CHECK
111# ---------------
112AC_DEFUN([AM_SANITY_CHECK],
113[AC_MSG_CHECKING([whether build environment is sane])
114# Just in case
115sleep 1
116echo timestamp > conftest.file
117# Do `set' in a subshell so we don't clobber the current shell's
118# arguments.  Must try -L first in case configure is actually a
119# symlink; some systems play weird games with the mod time of symlinks
120# (eg FreeBSD returns the mod time of the symlink's containing
121# directory).
122if (
123   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
124   if test "$[*]" = "X"; then
125      # -L didn't work.
126      set X `ls -t $srcdir/configure conftest.file`
127   fi
128   rm -f conftest.file
129   if test "$[*]" != "X $srcdir/configure conftest.file" \
130      && test "$[*]" != "X conftest.file $srcdir/configure"; then
131
132      # If neither matched, then we have a broken ls.  This can happen
133      # if, for instance, CONFIG_SHELL is bash and it inherits a
134      # broken ls alias from the environment.  This has actually
135      # happened.  Such a system could not be considered "sane".
136      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
137alias in your environment])
138   fi
139
140   test "$[2]" = conftest.file
141   )
142then
143   # Ok.
144   :
145else
146   AC_MSG_ERROR([newly created file is older than distributed files!
147Check your system clock])
148fi
149AC_MSG_RESULT(yes)])
150
151
152# serial 2
153
154# AM_MISSING_PROG(NAME, PROGRAM)
155# ------------------------------
156AC_DEFUN([AM_MISSING_PROG],
157[AC_REQUIRE([AM_MISSING_HAS_RUN])
158$1=${$1-"${am_missing_run}$2"}
159AC_SUBST($1)])
160
161
162# AM_MISSING_HAS_RUN
163# ------------------
164# Define MISSING if not defined so far and test if it supports --run.
165# If it does, set am_missing_run to use it, otherwise, to nothing.
166AC_DEFUN([AM_MISSING_HAS_RUN],
167[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
168test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
169# Use eval to expand $SHELL
170if eval "$MISSING --run true"; then
171  am_missing_run="$MISSING --run "
172else
173  am_missing_run=
174  am_backtick='`'
175  AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
176fi
177])
178
179# AM_AUX_DIR_EXPAND
180
181# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
182# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
183# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
184#
185# Of course, Automake must honor this variable whenever it calls a
186# tool from the auxiliary directory.  The problem is that $srcdir (and
187# therefore $ac_aux_dir as well) can be either absolute or relative,
188# depending on how configure is run.  This is pretty annoying, since
189# it makes $ac_aux_dir quite unusable in subdirectories: in the top
190# source directory, any form will work fine, but in subdirectories a
191# relative path needs to be adjusted first.
192#
193# $ac_aux_dir/missing
194#    fails when called from a subdirectory if $ac_aux_dir is relative
195# $top_srcdir/$ac_aux_dir/missing
196#    fails if $ac_aux_dir is absolute,
197#    fails when called from a subdirectory in a VPATH build with
198#          a relative $ac_aux_dir
199#
200# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
201# are both prefixed by $srcdir.  In an in-source build this is usually
202# harmless because $srcdir is `.', but things will broke when you
203# start a VPATH build or use an absolute $srcdir.
204#
205# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
206# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
207#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
208# and then we would define $MISSING as
209#   MISSING="\${SHELL} $am_aux_dir/missing"
210# This will work as long as MISSING is not called from configure, because
211# unfortunately $(top_srcdir) has no meaning in configure.
212# However there are other variables, like CC, which are often used in
213# configure, and could therefore not use this "fixed" $ac_aux_dir.
214#
215# Another solution, used here, is to always expand $ac_aux_dir to an
216# absolute PATH.  The drawback is that using absolute paths prevent a
217# configured tree to be moved without reconfiguration.
218
219AC_DEFUN([AM_AUX_DIR_EXPAND], [
220# expand $ac_aux_dir to an absolute path
221am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
222])
223
224# AM_PROG_INSTALL_SH
225# ------------------
226# Define $install_sh.
227AC_DEFUN([AM_PROG_INSTALL_SH],
228[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
229install_sh=${install_sh-"$am_aux_dir/install-sh"}
230AC_SUBST(install_sh)])
231
232# One issue with vendor `install' (even GNU) is that you can't
233# specify the program used to strip binaries.  This is especially
234# annoying in cross-compiling environments, where the build's strip
235# is unlikely to handle the host's binaries.
236# Fortunately install-sh will honor a STRIPPROG variable, so we
237# always use install-sh in `make install-strip', and initialize
238# STRIPPROG with the value of the STRIP variable (set by the user).
239AC_DEFUN([AM_PROG_INSTALL_STRIP],
240[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
241INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
242AC_SUBST([INSTALL_STRIP_PROGRAM])])
243
244# serial 4						-*- Autoconf -*-
245
246
247
248# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
249# written in clear, in which case automake, when reading aclocal.m4,
250# will think it sees a *use*, and therefore will trigger all it's
251# C support machinery.  Also note that it means that autoscan, seeing
252# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
253
254
255
256# _AM_DEPENDENCIES(NAME)
257# ---------------------
258# See how the compiler implements dependency checking.
259# NAME is "CC", "CXX" or "OBJC".
260# We try a few techniques and use that to set a single cache variable.
261#
262# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
263# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
264# dependency, and given that the user is not expected to run this macro,
265# just rely on AC_PROG_CC.
266AC_DEFUN([_AM_DEPENDENCIES],
267[AC_REQUIRE([AM_SET_DEPDIR])dnl
268AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
269AC_REQUIRE([AM_MAKE_INCLUDE])dnl
270AC_REQUIRE([AM_DEP_TRACK])dnl
271
272ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
273       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
274       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
275       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
276                   [depcc="$$1"   am_compiler_list=])
277
278AC_CACHE_CHECK([dependency style of $depcc],
279               [am_cv_$1_dependencies_compiler_type],
280[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
281  # We make a subdir and do the tests there.  Otherwise we can end up
282  # making bogus files that we don't know about and never remove.  For
283  # instance it was reported that on HP-UX the gcc test will end up
284  # making a dummy file named `D' -- because `-MD' means `put the output
285  # in D'.
286  mkdir conftest.dir
287  # Copy depcomp to subdir because otherwise we won't find it if we're
288  # using a relative directory.
289  cp "$am_depcomp" conftest.dir
290  cd conftest.dir
291
292  am_cv_$1_dependencies_compiler_type=none
293  if test "$am_compiler_list" = ""; then
294     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
295  fi
296  for depmode in $am_compiler_list; do
297    # We need to recreate these files for each test, as the compiler may
298    # overwrite some of them when testing with obscure command lines.
299    # This happens at least with the AIX C compiler.
300    echo '#include "conftest.h"' > conftest.c
301    echo 'int i;' > conftest.h
302    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
303
304    case $depmode in
305    nosideeffect)
306      # after this tag, mechanisms are not by side-effect, so they'll
307      # only be used when explicitly requested
308      if test "x$enable_dependency_tracking" = xyes; then
309	continue
310      else
311	break
312      fi
313      ;;
314    none) break ;;
315    esac
316    # We check with `-c' and `-o' for the sake of the "dashmstdout"
317    # mode.  It turns out that the SunPro C++ compiler does not properly
318    # handle `-M -o', and we need to detect this.
319    if depmode=$depmode \
320       source=conftest.c object=conftest.o \
321       depfile=conftest.Po tmpdepfile=conftest.TPo \
322       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
323       grep conftest.h conftest.Po > /dev/null 2>&1 &&
324       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
325      am_cv_$1_dependencies_compiler_type=$depmode
326      break
327    fi
328  done
329
330  cd ..
331  rm -rf conftest.dir
332else
333  am_cv_$1_dependencies_compiler_type=none
334fi
335])
336$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
337AC_SUBST([$1DEPMODE])
338])
339
340
341# AM_SET_DEPDIR
342# -------------
343# Choose a directory name for dependency files.
344# This macro is AC_REQUIREd in _AM_DEPENDENCIES
345AC_DEFUN([AM_SET_DEPDIR],
346[rm -f .deps 2>/dev/null
347mkdir .deps 2>/dev/null
348if test -d .deps; then
349  DEPDIR=.deps
350else
351  # MS-DOS does not allow filenames that begin with a dot.
352  DEPDIR=_deps
353fi
354rmdir .deps 2>/dev/null
355AC_SUBST(DEPDIR)
356])
357
358
359# AM_DEP_TRACK
360# ------------
361AC_DEFUN([AM_DEP_TRACK],
362[AC_ARG_ENABLE(dependency-tracking,
363[  --disable-dependency-tracking Speeds up one-time builds
364  --enable-dependency-tracking  Do not reject slow dependency extractors])
365if test "x$enable_dependency_tracking" != xno; then
366  am_depcomp="$ac_aux_dir/depcomp"
367  AMDEPBACKSLASH='\'
368fi
369AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
370pushdef([subst], defn([AC_SUBST]))
371subst(AMDEPBACKSLASH)
372popdef([subst])
373])
374
375# Generate code to set up dependency tracking.
376# This macro should only be invoked once -- use via AC_REQUIRE.
377# Usage:
378# AM_OUTPUT_DEPENDENCY_COMMANDS
379
380#
381# This code is only required when automatic dependency tracking
382# is enabled.  FIXME.  This creates each `.P' file that we will
383# need in order to bootstrap the dependency handling code.
384AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
385AC_OUTPUT_COMMANDS([
386test x"$AMDEP_TRUE" != x"" ||
387for mf in $CONFIG_FILES; do
388  case "$mf" in
389  Makefile) dirpart=.;;
390  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
391  *) continue;;
392  esac
393  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
394  # Extract the definition of DEP_FILES from the Makefile without
395  # running `make'.
396  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
397  test -z "$DEPDIR" && continue
398  # When using ansi2knr, U may be empty or an underscore; expand it
399  U=`sed -n -e '/^U = / s///p' < "$mf"`
400  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
401  # We invoke sed twice because it is the simplest approach to
402  # changing $(DEPDIR) to its actual value in the expansion.
403  for file in `sed -n -e '
404    /^DEP_FILES = .*\\\\$/ {
405      s/^DEP_FILES = //
406      :loop
407	s/\\\\$//
408	p
409	n
410	/\\\\$/ b loop
411      p
412    }
413    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
414       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
415    # Make sure the directory exists.
416    test -f "$dirpart/$file" && continue
417    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
418    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
419    # echo "creating $dirpart/$file"
420    echo '# dummy' > "$dirpart/$file"
421  done
422done
423], [AMDEP_TRUE="$AMDEP_TRUE"
424ac_aux_dir="$ac_aux_dir"])])
425
426# AM_MAKE_INCLUDE()
427# -----------------
428# Check to see how make treats includes.
429AC_DEFUN([AM_MAKE_INCLUDE],
430[am_make=${MAKE-make}
431cat > confinc << 'END'
432doit:
433	@echo done
434END
435# If we don't find an include directive, just comment out the code.
436AC_MSG_CHECKING([for style of include used by $am_make])
437am__include='#'
438am__quote=
439_am_result=none
440# First try GNU make style include.
441echo "include confinc" > confmf
442# We grep out `Entering directory' and `Leaving directory'
443# messages which can occur if `w' ends up in MAKEFLAGS.
444# In particular we don't look at `^make:' because GNU make might
445# be invoked under some other name (usually "gmake"), in which
446# case it prints its new name instead of `make'.
447if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
448   am__include=include
449   am__quote=
450   _am_result=GNU
451fi
452# Now try BSD make style include.
453if test "$am__include" = "#"; then
454   echo '.include "confinc"' > confmf
455   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
456      am__include=.include
457      am__quote='"'
458      _am_result=BSD
459   fi
460fi
461AC_SUBST(am__include)
462AC_SUBST(am__quote)
463AC_MSG_RESULT($_am_result)
464rm -f confinc confmf
465])
466
467# serial 3
468
469# AM_CONDITIONAL(NAME, SHELL-CONDITION)
470# -------------------------------------
471# Define a conditional.
472#
473# FIXME: Once using 2.50, use this:
474# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
475AC_DEFUN([AM_CONDITIONAL],
476[ifelse([$1], [TRUE],
477        [errprint(__file__:__line__: [$0: invalid condition: $1
478])dnl
479m4exit(1)])dnl
480ifelse([$1], [FALSE],
481       [errprint(__file__:__line__: [$0: invalid condition: $1
482])dnl
483m4exit(1)])dnl
484AC_SUBST([$1_TRUE])
485AC_SUBST([$1_FALSE])
486if $2; then
487  $1_TRUE=
488  $1_FALSE='#'
489else
490  $1_TRUE='#'
491  $1_FALSE=
492fi])
493
494# Like AC_CONFIG_HEADER, but automatically create stamp file.
495
496# serial 3
497
498# When config.status generates a header, we must update the stamp-h file.
499# This file resides in the same directory as the config header
500# that is generated.  We must strip everything past the first ":",
501# and everything past the last "/".
502
503AC_PREREQ([2.12])
504
505AC_DEFUN([AM_CONFIG_HEADER],
506[ifdef([AC_FOREACH],dnl
507	 [dnl init our file count if it isn't already
508	 m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
509	 dnl prepare to store our destination file list for use in config.status
510	 AC_FOREACH([_AM_File], [$1],
511		    [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
512		    m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
513		    dnl and add it to the list of files AC keeps track of, along
514		    dnl with our hook
515		    AC_CONFIG_HEADERS(_AM_File,
516dnl COMMANDS, [, INIT-CMDS]
517[# update the timestamp
518echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
519][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
520		    m4_popdef([_AM_Dest])])],dnl
521[AC_CONFIG_HEADER([$1])
522  AC_OUTPUT_COMMANDS(
523   ifelse(patsubst([$1], [[^ ]], []),
524	  [],
525	  [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
526	   patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
527[am_indx=1
528for am_file in $1; do
529  case " \$CONFIG_HEADERS " in
530  *" \$am_file "*)
531    am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
532    if test -n "\$am_dir"; then
533      am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
534      for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
535        am_tmpdir=\$am_tmpdir\$am_subdir/
536        if test ! -d \$am_tmpdir; then
537          mkdir \$am_tmpdir
538        fi
539      done
540    fi
541    echo timestamp > "\$am_dir"stamp-h\$am_indx
542    ;;
543  esac
544  am_indx=\`expr \$am_indx + 1\`
545done])
546])]) # AM_CONFIG_HEADER
547
548# _AM_DIRNAME(PATH)
549# -----------------
550# Like AS_DIRNAME, only do it during macro expansion
551AC_DEFUN([_AM_DIRNAME],
552       [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
553	      m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
554		    m4_if(m4_regexp([$1], [^/.*]), -1,
555			  [.],
556			  m4_patsubst([$1], [^\(/\).*], [\1])),
557		    m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
558	      m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
559]) # _AM_DIRNAME
560
561#serial 6
562
563dnl By default, many hosts won't let programs access large files;
564dnl one must use special compiler options to get large-file access to work.
565dnl For more details about this brain damage please see:
566dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
567
568dnl Written by Paul Eggert <eggert@twinsun.com>.
569
570dnl Internal subroutine of AC_SYS_LARGEFILE.
571dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME)
572AC_DEFUN([AC_SYS_LARGEFILE_FLAGS],
573  [AC_CACHE_CHECK([for $1 value to request large file support],
574     ac_cv_sys_largefile_$1,
575     [if ($GETCONF LFS_$1) >conftest.1 2>conftest.2 && test ! -s conftest.2
576      then
577        ac_cv_sys_largefile_$1=`cat conftest.1`
578      else
579	ac_cv_sys_largefile_$1=no
580	ifelse($1, CFLAGS,
581	  [case "$host_os" in
582	   # HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1.
583changequote(, )dnl
584	   hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
585changequote([, ])dnl
586	     if test "$GCC" = yes; then
587	       ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__
588	     fi
589	     ;;
590	   # IRIX 6.2 and later require cc -n32.
591changequote(, )dnl
592	   irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
593changequote([, ])dnl
594	     if test "$GCC" != yes; then
595	       ac_cv_sys_largefile_CFLAGS=-n32
596	     fi
597	   esac
598	   if test "$ac_cv_sys_largefile_CFLAGS" != no; then
599	     ac_save_CC="$CC"
600	     CC="$CC $ac_cv_sys_largefile_CFLAGS"
601	     AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no)
602	     CC="$ac_save_CC"
603	   fi])
604      fi
605      rm -f conftest*])])
606
607dnl Internal subroutine of AC_SYS_LARGEFILE.
608dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL)
609AC_DEFUN([AC_SYS_LARGEFILE_SPACE_APPEND],
610  [case $2 in
611   no) ;;
612   ?*)
613     case "[$]$1" in
614     '') $1=$2 ;;
615     *) $1=[$]$1' '$2 ;;
616     esac ;;
617   esac])
618
619dnl Internal subroutine of AC_SYS_LARGEFILE.
620dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT)
621AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE],
622  [AC_CACHE_CHECK([for $1], $2,
623     [$2=no
624changequote(, )dnl
625      $4
626      for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
627	case "$ac_flag" in
628	-D$1)
629	  $2=1 ;;
630	-D$1=*)
631	  $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
632	esac
633      done
634changequote([, ])dnl
635      ])
636   if test "[$]$2" != no; then
637     AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
638   fi])
639
640AC_DEFUN([AC_SYS_LARGEFILE],
641  [AC_REQUIRE([AC_CANONICAL_HOST])
642   AC_ARG_ENABLE(largefile,
643     [  --disable-largefile     omit support for large files])
644   if test "$enable_largefile" != no; then
645     AC_CHECK_TOOL(GETCONF, getconf)
646     AC_SYS_LARGEFILE_FLAGS(CFLAGS)
647     AC_SYS_LARGEFILE_FLAGS(LDFLAGS)
648     AC_SYS_LARGEFILE_FLAGS(LIBS)
649
650     for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
651       case "$ac_flag" in
652       no) ;;
653       -D_FILE_OFFSET_BITS=*) ;;
654       -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;;
655       -D_LARGE_FILES | -D_LARGE_FILES=*) ;;
656       -D?* | -I?*)
657	 AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;;
658       *)
659	 AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;;
660       esac
661     done
662     AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS")
663     AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS")
664     AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS,
665       ac_cv_sys_file_offset_bits,
666       [Number of bits in a file offset, on hosts where this is settable.],
667       [case "$host_os" in
668	# HP-UX 10.20 and later
669	hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
670	  ac_cv_sys_file_offset_bits=64 ;;
671	esac])
672     AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
673       ac_cv_sys_largefile_source,
674       [Define to make fseeko etc. visible, on some hosts.],
675       [case "$host_os" in
676	# HP-UX 10.20 and later
677	hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
678	  ac_cv_sys_largefile_source=1 ;;
679	esac])
680     AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
681       ac_cv_sys_large_files,
682       [Define for large files, on AIX-style hosts.],
683       [case "$host_os" in
684	# AIX 4.2 and later
685	aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
686	  ac_cv_sys_large_files=1 ;;
687	esac])
688   fi
689  ])
690
691
692# serial 1
693
694AC_DEFUN([AM_C_PROTOTYPES],
695[AC_REQUIRE([AM_PROG_CC_STDC])
696AC_REQUIRE([AC_PROG_CPP])
697AC_MSG_CHECKING([for function prototypes])
698if test "$am_cv_prog_cc_stdc" != no; then
699  AC_MSG_RESULT(yes)
700  AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes])
701  U= ANSI2KNR=
702else
703  AC_MSG_RESULT(no)
704  U=_ ANSI2KNR=./ansi2knr
705fi
706# Ensure some checks needed by ansi2knr itself.
707AC_HEADER_STDC
708AC_CHECK_HEADERS(string.h)
709AC_SUBST(U)dnl
710AC_SUBST(ANSI2KNR)dnl
711])
712
713
714# serial 1
715
716# @defmac AC_PROG_CC_STDC
717# @maindex PROG_CC_STDC
718# @ovindex CC
719# If the C compiler in not in ANSI C mode by default, try to add an option
720# to output variable @code{CC} to make it so.  This macro tries various
721# options that select ANSI C on some system or another.  It considers the
722# compiler to be in ANSI C mode if it handles function prototypes correctly.
723#
724# If you use this macro, you should check after calling it whether the C
725# compiler has been set to accept ANSI C; if not, the shell variable
726# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
727# code in ANSI C, you can make an un-ANSIfied copy of it by using the
728# program @code{ansi2knr}, which comes with Ghostscript.
729# @end defmac
730
731AC_DEFUN([AM_PROG_CC_STDC],
732[AC_REQUIRE([AC_PROG_CC])
733AC_BEFORE([$0], [AC_C_INLINE])
734AC_BEFORE([$0], [AC_C_CONST])
735dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
736dnl a magic option to avoid problems with ANSI preprocessor commands
737dnl like #elif.
738dnl FIXME: can't do this because then AC_AIX won't work due to a
739dnl circular dependency.
740dnl AC_BEFORE([$0], [AC_PROG_CPP])
741AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
742AC_CACHE_VAL(am_cv_prog_cc_stdc,
743[am_cv_prog_cc_stdc=no
744ac_save_CC="$CC"
745# Don't try gcc -ansi; that turns off useful extensions and
746# breaks some systems' header files.
747# AIX			-qlanglvl=ansi
748# Ultrix and OSF/1	-std1
749# HP-UX 10.20 and later	-Ae
750# HP-UX older versions	-Aa -D_HPUX_SOURCE
751# SVR4			-Xc -D__EXTENSIONS__
752for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
753do
754  CC="$ac_save_CC $ac_arg"
755  AC_TRY_COMPILE(
756[#include <stdarg.h>
757#include <stdio.h>
758#include <sys/types.h>
759#include <sys/stat.h>
760/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
761struct buf { int x; };
762FILE * (*rcsopen) (struct buf *, struct stat *, int);
763static char *e (p, i)
764     char **p;
765     int i;
766{
767  return p[i];
768}
769static char *f (char * (*g) (char **, int), char **p, ...)
770{
771  char *s;
772  va_list v;
773  va_start (v,p);
774  s = g (p, va_arg (v,int));
775  va_end (v);
776  return s;
777}
778int test (int i, double x);
779struct s1 {int (*f) (int a);};
780struct s2 {int (*f) (double a);};
781int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
782int argc;
783char **argv;
784], [
785return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
786],
787[am_cv_prog_cc_stdc="$ac_arg"; break])
788done
789CC="$ac_save_CC"
790])
791if test -z "$am_cv_prog_cc_stdc"; then
792  AC_MSG_RESULT([none needed])
793else
794  AC_MSG_RESULT([$am_cv_prog_cc_stdc])
795fi
796case "x$am_cv_prog_cc_stdc" in
797  x|xno) ;;
798  *) CC="$CC $am_cv_prog_cc_stdc" ;;
799esac
800])
801
802#serial 5
803
804dnl From Paul Eggert.
805
806AC_PREREQ(2.13)
807
808# Define uintmax_t to `unsigned long' or `unsigned long long'
809# if <inttypes.h> does not exist.
810
811AC_DEFUN(jm_AC_TYPE_UINTMAX_T,
812[
813  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
814  if test $jm_ac_cv_header_inttypes_h = no; then
815    AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
816    test $ac_cv_type_unsigned_long_long = yes \
817      && ac_type='unsigned long long' \
818      || ac_type='unsigned long'
819    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
820[  Define to unsigned long or unsigned long long
821   if <inttypes.h> doesn't define.])
822  fi
823])
824
825#serial 3
826
827dnl From Paul Eggert.
828
829# Define HAVE_INTTYPES_H if <inttypes.h> exists,
830# doesn't clash with <sys/types.h>, and declares uintmax_t.
831
832AC_DEFUN(jm_AC_HEADER_INTTYPES_H,
833[
834  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
835  [AC_TRY_COMPILE(
836    [#include <sys/types.h>
837#include <inttypes.h>],
838    [uintmax_t i = (uintmax_t) -1;],
839    jm_ac_cv_header_inttypes_h=yes,
840    jm_ac_cv_header_inttypes_h=no)])
841  if test $jm_ac_cv_header_inttypes_h = yes; then
842    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
843[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
844   and declares uintmax_t. ])
845  fi
846])
847
848#serial 2
849
850dnl From Paul Eggert.
851
852AC_DEFUN(jm_AC_TYPE_UNSIGNED_LONG_LONG,
853[
854  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
855  [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
856    [unsigned long long ullmax = (unsigned long long) -1;
857     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
858    ac_cv_type_unsigned_long_long=yes,
859    ac_cv_type_unsigned_long_long=no)])
860  if test $ac_cv_type_unsigned_long_long = yes; then
861    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
862      [Define if you have the unsigned long long type.])
863  fi
864])
865
866# serial 8
867
868# From Paul Eggert.
869
870# BeOS 5 has <wchar.h> but does not define mbstate_t,
871# so you can't declare an object of that type.
872# Check for this incompatibility with Standard C.
873
874# Include stdlib.h first, because otherwise this test would fail on Linux
875# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits
876# a syntax error in wchar.h due to the use of undefined __int32_t.
877
878AC_DEFUN(AC_MBSTATE_T,
879  [
880   AC_CHECK_HEADERS(stdlib.h)
881
882   AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
883    [AC_TRY_COMPILE([
884#if HAVE_STDLIB_H
885# include <stdlib.h>
886#endif
887#include <wchar.h>],
888      [mbstate_t x; return sizeof x;],
889      ac_cv_type_mbstate_t=yes,
890      ac_cv_type_mbstate_t=no)])
891   if test $ac_cv_type_mbstate_t = no; then
892     AC_DEFINE(mbstate_t, int,
893	       [Define to a type if <wchar.h> does not define.])
894   fi])
895
896#serial 2
897
898# autoconf tests required for use of xstrtoumax.c
899
900AC_DEFUN(jm_AC_PREREQ_XSTRTOUMAX,
901[
902  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
903  AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
904  AC_CHECK_HEADERS(stdlib.h)
905
906  AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
907    jm_cv_func_strtoumax_macro,
908    AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
909#ifdef strtoumax
910 inttypes_h_defines_strtoumax
911#endif],
912      jm_cv_func_strtoumax_macro=yes,
913      jm_cv_func_strtoumax_macro=no))
914
915  if test "$jm_cv_func_strtoumax_macro" != yes; then
916    AC_REPLACE_FUNCS(strtoumax)
917  fi
918
919  dnl We don't need (and can't compile) the replacement strtoull
920  dnl unless the type `unsigned long long' exists.
921  dnl Also, only the replacement strtoumax invokes strtoull,
922  dnl so we need the replacement strtoull only if strtoumax does not exist.
923  case "$ac_cv_type_unsigned_long_long,$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in
924    yes,no,no)
925      AC_REPLACE_FUNCS(strtoull)
926      ;;
927  esac
928
929])
930
931#serial 5
932
933AC_DEFUN(jm_CHECK_DECLARATION,
934[
935  AC_MSG_CHECKING([whether $1 is declared])
936  AC_CACHE_VAL(jm_cv_func_decl_$1,
937    [AC_TRY_COMPILE([$2],
938      [
939#ifndef $1
940char *(*pfn) = (char *(*)) $1
941#endif
942      ],
943      eval "jm_cv_func_decl_$1=yes",
944      eval "jm_cv_func_decl_$1=no")])
945
946  if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then
947    AC_MSG_RESULT(yes)
948    ifelse([$3], , :, [$3])
949  else
950    AC_MSG_RESULT(no)
951    ifelse([$4], , , [$4
952])dnl
953  fi
954])dnl
955
956dnl jm_CHECK_DECLARATIONS(INCLUDES, FUNCTION... [, ACTION-IF-DECLARED
957dnl                       [, ACTION-IF-NOT-DECLARED]])
958AC_DEFUN(jm_CHECK_DECLARATIONS,
959[
960  for jm_func in $2
961  do
962    jm_CHECK_DECLARATION($jm_func, [$1],
963    [
964      jm_tr_func=HAVE_DECL_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
965      AC_DEFINE_UNQUOTED($jm_tr_func, 1, [Define if your system declares $1]) $3], [$4])dnl
966  done
967])
968
969# Macro to add for using GNU gettext.
970# Ulrich Drepper <drepper@cygnus.com>, 1995.
971#
972# This file can be copied and used freely without restrictions.  It can
973# be used in projects which are not available under the GNU General Public
974# License or the GNU Library General Public License but which still want
975# to provide support for the GNU gettext functionality.
976# Please note that the actual code of the GNU gettext library is covered
977# by the GNU Library General Public License, and the rest of the GNU
978# gettext package package is covered by the GNU General Public License.
979# They are *not* in the public domain.
980
981# serial 10
982
983dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
984dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
985dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
986dnl    depending on --{enable,disable}-{shared,static} and on the presence of
987dnl    AM-DISABLE-SHARED). Otherwise, a static library
988dnl    $(top_builddir)/intl/libintl.a will be created.
989dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
990dnl    implementations (in libc or libintl) without the ngettext() function
991dnl    will be ignored.
992dnl LIBDIR is used to find the intl libraries.  If empty,
993dnl    the value `$(top_builddir)/intl/' is used.
994dnl
995dnl The result of the configuration is one of three cases:
996dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
997dnl    and used.
998dnl    Catalog format: GNU --> install in $(datadir)
999dnl    Catalog extension: .mo after installation, .gmo in source tree
1000dnl 2) GNU gettext has been found in the system's C library.
1001dnl    Catalog format: GNU --> install in $(datadir)
1002dnl    Catalog extension: .mo after installation, .gmo in source tree
1003dnl 3) No internationalization, always use English msgid.
1004dnl    Catalog format: none
1005dnl    Catalog extension: none
1006dnl The use of .gmo is historical (it was needed to avoid overwriting the
1007dnl GNU format catalogs when building on a platform with an X/Open gettext),
1008dnl but we keep it in order not to force irrelevant filename changes on the
1009dnl maintainers.
1010dnl
1011AC_DEFUN([AM_WITH_NLS],
1012  [AC_MSG_CHECKING([whether NLS is requested])
1013    dnl Default is enabled NLS
1014    AC_ARG_ENABLE(nls,
1015      [  --disable-nls           do not use Native Language Support],
1016      USE_NLS=$enableval, USE_NLS=yes)
1017    AC_MSG_RESULT($USE_NLS)
1018    AC_SUBST(USE_NLS)
1019
1020    BUILD_INCLUDED_LIBINTL=no
1021    USE_INCLUDED_LIBINTL=no
1022    INTLLIBS=
1023
1024    dnl If we use NLS figure out what method
1025    if test "$USE_NLS" = "yes"; then
1026      AC_DEFINE(ENABLE_NLS, 1,
1027        [Define to 1 if translation of program messages to the user's native language
1028   is requested.])
1029      AC_MSG_CHECKING([whether included gettext is requested])
1030      AC_ARG_WITH(included-gettext,
1031        [  --with-included-gettext use the GNU gettext library included here],
1032        nls_cv_force_use_gnu_gettext=$withval,
1033        nls_cv_force_use_gnu_gettext=no)
1034      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1035
1036      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1037      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1038        dnl User does not insist on using GNU NLS library.  Figure out what
1039        dnl to use.  If GNU gettext is available we use this.  Else we have
1040        dnl to fall back to GNU NLS library.
1041	CATOBJEXT=NONE
1042
1043        dnl Add a version number to the cache macros.
1044        define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
1045        define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
1046
1047	AC_CHECK_HEADER(libintl.h,
1048	  [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
1049	    [AC_TRY_LINK([#include <libintl.h>
1050extern int _nl_msg_cat_cntr;],
1051	       [bindtextdomain ("", "");
1052return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
1053	       gt_cv_func_gnugettext_libc=yes,
1054	       gt_cv_func_gnugettext_libc=no)])
1055
1056	   if test "$gt_cv_func_gnugettext_libc" != "yes"; then
1057	     AC_CACHE_CHECK([for GNU gettext in libintl],
1058	       gt_cv_func_gnugettext_libintl,
1059	       [gt_save_LIBS="$LIBS"
1060		LIBS="$LIBS -lintl $LIBICONV"
1061		AC_TRY_LINK([#include <libintl.h>
1062extern int _nl_msg_cat_cntr;],
1063		  [bindtextdomain ("", "");
1064return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
1065		  gt_cv_func_gnugettext_libintl=yes,
1066		  gt_cv_func_gnugettext_libintl=no)
1067		LIBS="$gt_save_LIBS"])
1068	   fi
1069
1070	   dnl If an already present or preinstalled GNU gettext() is found,
1071	   dnl use it.  But if this macro is used in GNU gettext, and GNU
1072	   dnl gettext is already preinstalled in libintl, we update this
1073	   dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
1074	   if test "$gt_cv_func_gnugettext_libc" = "yes" \
1075	      || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
1076		   && test "$PACKAGE" != gettext; }; then
1077	     AC_DEFINE(HAVE_GETTEXT, 1,
1078               [Define if the GNU gettext() function is already present or preinstalled.])
1079
1080	     if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
1081	       dnl If iconv() is in a separate libiconv library, then anyone
1082	       dnl linking with libintl{.a,.so} also needs to link with
1083	       dnl libiconv.
1084	       INTLLIBS="-lintl $LIBICONV"
1085	     fi
1086
1087	     gt_save_LIBS="$LIBS"
1088	     LIBS="$LIBS $INTLLIBS"
1089	     AC_CHECK_FUNCS(dcgettext)
1090	     LIBS="$gt_save_LIBS"
1091
1092	     dnl Search for GNU msgfmt in the PATH.
1093	     AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1094	       [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
1095	     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1096
1097	     dnl Search for GNU xgettext in the PATH.
1098	     AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1099	       [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
1100
1101	     CATOBJEXT=.gmo
1102	   fi
1103	])
1104
1105        if test "$CATOBJEXT" = "NONE"; then
1106	  dnl GNU gettext is not found in the C library.
1107	  dnl Fall back on GNU gettext library.
1108	  nls_cv_use_gnu_gettext=yes
1109        fi
1110      fi
1111
1112      if test "$nls_cv_use_gnu_gettext" = "yes"; then
1113        dnl Mark actions used to generate GNU NLS library.
1114        INTLOBJS="\$(GETTOBJS)"
1115        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1116	  [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
1117        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1118        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1119	  [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
1120        AC_SUBST(MSGFMT)
1121	BUILD_INCLUDED_LIBINTL=yes
1122	USE_INCLUDED_LIBINTL=yes
1123        CATOBJEXT=.gmo
1124	INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
1125	LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
1126      fi
1127
1128      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
1129      dnl Test whether we really found GNU msgfmt.
1130      if test "$GMSGFMT" != ":"; then
1131	dnl If it is no GNU msgfmt we define it as : so that the
1132	dnl Makefiles still can work.
1133	if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
1134	  : ;
1135	else
1136	  AC_MSG_RESULT(
1137	    [found msgfmt program is not GNU msgfmt; ignore it])
1138	  GMSGFMT=":"
1139	fi
1140      fi
1141
1142      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
1143      dnl Test whether we really found GNU xgettext.
1144      if test "$XGETTEXT" != ":"; then
1145	dnl If it is no GNU xgettext we define it as : so that the
1146	dnl Makefiles still can work.
1147	if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
1148	  : ;
1149	else
1150	  AC_MSG_RESULT(
1151	    [found xgettext program is not GNU xgettext; ignore it])
1152	  XGETTEXT=":"
1153	fi
1154      fi
1155
1156      dnl We need to process the po/ directory.
1157      POSUB=po
1158    fi
1159    AC_OUTPUT_COMMANDS(
1160     [for ac_file in $CONFIG_FILES; do
1161        # Support "outfile[:infile[:infile...]]"
1162        case "$ac_file" in
1163          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
1164        esac
1165        # PO directories have a Makefile.in generated from Makefile.in.in.
1166        case "$ac_file" in */Makefile.in)
1167          # Adjust a relative srcdir.
1168          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
1169          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
1170          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
1171          # In autoconf-2.13 it is called $ac_given_srcdir.
1172          # In autoconf-2.50 it is called $srcdir.
1173          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
1174          case "$ac_given_srcdir" in
1175            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
1176            /*) top_srcdir="$ac_given_srcdir" ;;
1177            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
1178          esac
1179          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
1180            rm -f "$ac_dir/POTFILES"
1181            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
1182            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
1183            test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
1184            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
1185          fi
1186          ;;
1187        esac
1188      done])
1189
1190
1191    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
1192    dnl to 'yes' because some of the testsuite requires it.
1193    if test "$PACKAGE" = gettext; then
1194      BUILD_INCLUDED_LIBINTL=yes
1195    fi
1196
1197    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
1198    dnl because plural.y uses bison specific features. It requires at least
1199    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
1200    dnl compile.
1201    dnl bison is only needed for the maintainer (who touches plural.y). But in
1202    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
1203    dnl the rule in general Makefile. Now, some people carelessly touch the
1204    dnl files or have a broken "make" program, hence the plural.c rule will
1205    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
1206    dnl present or too old.
1207    AC_CHECK_PROGS([INTLBISON], [bison])
1208    if test -z "$INTLBISON"; then
1209      ac_verc_fail=yes
1210    else
1211      dnl Found it, now check the version.
1212      AC_MSG_CHECKING([version of bison])
1213changequote(<<,>>)dnl
1214      ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
1215      case $ac_prog_version in
1216        '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
1217        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
1218changequote([,])dnl
1219           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
1220        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
1221      esac
1222      AC_MSG_RESULT([$ac_prog_version])
1223    fi
1224    if test $ac_verc_fail = yes; then
1225      INTLBISON=:
1226    fi
1227
1228    dnl These rules are solely for the distribution goal.  While doing this
1229    dnl we only have to keep exactly one list of the available catalogs
1230    dnl in configure.in.
1231    for lang in $ALL_LINGUAS; do
1232      GMOFILES="$GMOFILES $lang.gmo"
1233      POFILES="$POFILES $lang.po"
1234    done
1235
1236    dnl Make all variables we use known to autoconf.
1237    AC_SUBST(BUILD_INCLUDED_LIBINTL)
1238    AC_SUBST(USE_INCLUDED_LIBINTL)
1239    AC_SUBST(CATALOGS)
1240    AC_SUBST(CATOBJEXT)
1241    AC_SUBST(GMOFILES)
1242    AC_SUBST(INTLLIBS)
1243    AC_SUBST(INTLOBJS)
1244    AC_SUBST(POFILES)
1245    AC_SUBST(POSUB)
1246
1247    dnl For backward compatibility. Some configure.ins may be using this.
1248    nls_cv_header_intl=
1249    nls_cv_header_libgt=
1250
1251    dnl For backward compatibility. Some Makefiles may be using this.
1252    DATADIRNAME=share
1253    AC_SUBST(DATADIRNAME)
1254
1255    dnl For backward compatibility. Some Makefiles may be using this.
1256    INSTOBJEXT=.mo
1257    AC_SUBST(INSTOBJEXT)
1258
1259    dnl For backward compatibility. Some Makefiles may be using this.
1260    GENCAT=gencat
1261    AC_SUBST(GENCAT)
1262  ])
1263
1264dnl Usage: Just like AM_WITH_NLS, which see.
1265AC_DEFUN([AM_GNU_GETTEXT],
1266  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1267   AC_REQUIRE([AC_PROG_CC])dnl
1268   AC_REQUIRE([AC_CANONICAL_HOST])dnl
1269   AC_REQUIRE([AC_PROG_RANLIB])dnl
1270   AC_REQUIRE([AC_ISC_POSIX])dnl
1271   AC_REQUIRE([AC_HEADER_STDC])dnl
1272   AC_REQUIRE([AC_C_CONST])dnl
1273   AC_REQUIRE([AC_C_INLINE])dnl
1274   AC_REQUIRE([AC_TYPE_OFF_T])dnl
1275   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1276   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1277   AC_REQUIRE([AC_FUNC_MMAP])dnl
1278   AC_REQUIRE([jm_GLIBC21])dnl
1279
1280   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
1281stdlib.h string.h unistd.h sys/param.h])
1282   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
1283getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
1284strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
1285
1286   AM_ICONV
1287   AM_LANGINFO_CODESET
1288   AM_LC_MESSAGES
1289   AM_WITH_NLS([$1],[$2],[$3])
1290
1291   if test "x$CATOBJEXT" != "x"; then
1292     if test "x$ALL_LINGUAS" = "x"; then
1293       LINGUAS=
1294     else
1295       AC_MSG_CHECKING(for catalogs to be installed)
1296       NEW_LINGUAS=
1297       for presentlang in $ALL_LINGUAS; do
1298         useit=no
1299         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
1300           # Use the presentlang catalog if desiredlang is
1301           #   a. equal to presentlang, or
1302           #   b. a variant of presentlang (because in this case,
1303           #      presentlang can be used as a fallback for messages
1304           #      which are not translated in the desiredlang catalog).
1305           case "$desiredlang" in
1306             "$presentlang"*) useit=yes;;
1307           esac
1308         done
1309         if test $useit = yes; then
1310           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
1311         fi
1312       done
1313       LINGUAS=$NEW_LINGUAS
1314       AC_MSG_RESULT($LINGUAS)
1315     fi
1316
1317     dnl Construct list of names of catalog files to be constructed.
1318     if test -n "$LINGUAS"; then
1319       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1320     fi
1321   fi
1322
1323   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1324   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
1325   dnl Try to locate is.
1326   MKINSTALLDIRS=
1327   if test -n "$ac_aux_dir"; then
1328     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1329   fi
1330   if test -z "$MKINSTALLDIRS"; then
1331     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1332   fi
1333   AC_SUBST(MKINSTALLDIRS)
1334
1335   dnl Enable libtool support if the surrounding package wishes it.
1336   INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
1337   AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
1338  ])
1339
1340# Search path for a program which passes the given test.
1341# Ulrich Drepper <drepper@cygnus.com>, 1996.
1342#
1343# This file can be copied and used freely without restrictions.  It can
1344# be used in projects which are not available under the GNU General Public
1345# License or the GNU Library General Public License but which still want
1346# to provide support for the GNU gettext functionality.
1347# Please note that the actual code of the GNU gettext library is covered
1348# by the GNU Library General Public License, and the rest of the GNU
1349# gettext package package is covered by the GNU General Public License.
1350# They are *not* in the public domain.
1351
1352# serial 2
1353
1354dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
1355dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
1356AC_DEFUN([AM_PATH_PROG_WITH_TEST],
1357[# Extract the first word of "$2", so it can be a program name with args.
1358set dummy $2; ac_word=[$]2
1359AC_MSG_CHECKING([for $ac_word])
1360AC_CACHE_VAL(ac_cv_path_$1,
1361[case "[$]$1" in
1362  /*)
1363  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1364  ;;
1365  *)
1366  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
1367  for ac_dir in ifelse([$5], , $PATH, [$5]); do
1368    test -z "$ac_dir" && ac_dir=.
1369    if test -f $ac_dir/$ac_word; then
1370      if [$3]; then
1371	ac_cv_path_$1="$ac_dir/$ac_word"
1372	break
1373      fi
1374    fi
1375  done
1376  IFS="$ac_save_ifs"
1377dnl If no 4th arg is given, leave the cache variable unset,
1378dnl so AC_PATH_PROGS will keep looking.
1379ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
1380])dnl
1381  ;;
1382esac])dnl
1383$1="$ac_cv_path_$1"
1384if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
1385  AC_MSG_RESULT([$]$1)
1386else
1387  AC_MSG_RESULT(no)
1388fi
1389AC_SUBST($1)dnl
1390])
1391
1392#serial 1
1393# This test replaces the one in autoconf.
1394# Currently this macro should have the same name as the autoconf macro
1395# because gettext's gettext.m4 (distributed in the automake package)
1396# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
1397# give these diagnostics:
1398#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
1399#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
1400
1401undefine([AC_ISC_POSIX])
1402
1403AC_DEFUN([AC_ISC_POSIX],
1404  [
1405    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
1406    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
1407  ]
1408)
1409
1410#serial 2
1411
1412# Test for the GNU C Library, version 2.1 or newer.
1413# From Bruno Haible.
1414
1415AC_DEFUN([jm_GLIBC21],
1416  [
1417    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
1418      ac_cv_gnu_library_2_1,
1419      [AC_EGREP_CPP([Lucky GNU user],
1420	[
1421#include <features.h>
1422#ifdef __GNU_LIBRARY__
1423 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
1424  Lucky GNU user
1425 #endif
1426#endif
1427	],
1428	ac_cv_gnu_library_2_1=yes,
1429	ac_cv_gnu_library_2_1=no)
1430      ]
1431    )
1432    AC_SUBST(GLIBC21)
1433    GLIBC21="$ac_cv_gnu_library_2_1"
1434  ]
1435)
1436
1437#serial AM2
1438
1439dnl From Bruno Haible.
1440
1441AC_DEFUN([AM_ICONV],
1442[
1443  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
1444  dnl those with the standalone portable GNU libiconv installed).
1445
1446  AC_ARG_WITH([libiconv-prefix],
1447[  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
1448    for dir in `echo "$withval" | tr : ' '`; do
1449      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
1450      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
1451    done
1452   ])
1453
1454  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
1455    am_cv_func_iconv="no, consider installing GNU libiconv"
1456    am_cv_lib_iconv=no
1457    AC_TRY_LINK([#include <stdlib.h>
1458#include <iconv.h>],
1459      [iconv_t cd = iconv_open("","");
1460       iconv(cd,NULL,NULL,NULL,NULL);
1461       iconv_close(cd);],
1462      am_cv_func_iconv=yes)
1463    if test "$am_cv_func_iconv" != yes; then
1464      am_save_LIBS="$LIBS"
1465      LIBS="$LIBS -liconv"
1466      AC_TRY_LINK([#include <stdlib.h>
1467#include <iconv.h>],
1468        [iconv_t cd = iconv_open("","");
1469         iconv(cd,NULL,NULL,NULL,NULL);
1470         iconv_close(cd);],
1471        am_cv_lib_iconv=yes
1472        am_cv_func_iconv=yes)
1473      LIBS="$am_save_LIBS"
1474    fi
1475  ])
1476  if test "$am_cv_func_iconv" = yes; then
1477    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
1478    AC_MSG_CHECKING([for iconv declaration])
1479    AC_CACHE_VAL(am_cv_proto_iconv, [
1480      AC_TRY_COMPILE([
1481#include <stdlib.h>
1482#include <iconv.h>
1483extern
1484#ifdef __cplusplus
1485"C"
1486#endif
1487#if defined(__STDC__) || defined(__cplusplus)
1488size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
1489#else
1490size_t iconv();
1491#endif
1492], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
1493      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
1494    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
1495    AC_MSG_RESULT([$]{ac_t:-
1496         }[$]am_cv_proto_iconv)
1497    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
1498      [Define as const if the declaration of iconv() needs const.])
1499  fi
1500  LIBICONV=
1501  if test "$am_cv_lib_iconv" = yes; then
1502    LIBICONV="-liconv"
1503  fi
1504  AC_SUBST(LIBICONV)
1505])
1506
1507#serial AM1
1508
1509dnl From Bruno Haible.
1510
1511AC_DEFUN([AM_LANGINFO_CODESET],
1512[
1513  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
1514    [AC_TRY_LINK([#include <langinfo.h>],
1515      [char* cs = nl_langinfo(CODESET);],
1516      am_cv_langinfo_codeset=yes,
1517      am_cv_langinfo_codeset=no)
1518    ])
1519  if test $am_cv_langinfo_codeset = yes; then
1520    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
1521      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
1522  fi
1523])
1524
1525# Check whether LC_MESSAGES is available in <locale.h>.
1526# Ulrich Drepper <drepper@cygnus.com>, 1995.
1527#
1528# This file can be copied and used freely without restrictions.  It can
1529# be used in projects which are not available under the GNU General Public
1530# License or the GNU Library General Public License but which still want
1531# to provide support for the GNU gettext functionality.
1532# Please note that the actual code of the GNU gettext library is covered
1533# by the GNU Library General Public License, and the rest of the GNU
1534# gettext package package is covered by the GNU General Public License.
1535# They are *not* in the public domain.
1536
1537# serial 2
1538
1539AC_DEFUN([AM_LC_MESSAGES],
1540  [if test $ac_cv_header_locale_h = yes; then
1541    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
1542      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1543       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
1544    if test $am_cv_val_LC_MESSAGES = yes; then
1545      AC_DEFINE(HAVE_LC_MESSAGES, 1,
1546        [Define if your <locale.h> file defines LC_MESSAGES.])
1547    fi
1548  fi])
1549
1550# Check to see if we use dir\file name conventtion
1551# If so, set macro HAVE_DOS_FILE_NAMES
1552# Also set the macro HAVE_DOS_FILE_CONTENTS for now,
1553# since don't know of a good way to independently check this.
1554dnl AC_DOSFILE()
1555AC_DEFUN(AC_DOSFILE,
1556[
1557  AC_CACHE_CHECK([for dos file convention], ac_cv_dosfile,
1558    [if test -d ".\."; then
1559       ac_cv_dosfile=yes
1560    else
1561       ac_cv_dosfile=no
1562    fi
1563    ])
1564
1565  if test $ac_cv_dosfile = yes; then
1566    AC_DEFINE(HAVE_DOS_FILE_NAMES, 1, [Define if your OS uses backslashes as directory separators])
1567    AC_DEFINE(HAVE_DOS_FILE_CONTENTS, 1,
1568      [Define if text file lines end in CRLF.])
1569  fi
1570])
1571
1572# Check to see the separator for the environment variables
1573# and set SEP to ";" or default ":"
1574
1575dnl AM_SEP()
1576dnl SEP
1577AC_DEFUN(AM_SEP,
1578[AC_REQUIRE([AC_CYGWIN])
1579AC_REQUIRE([AC_MINGW32])
1580AC_REQUIRE([AC_DJGPP])
1581AC_MSG_CHECKING([for environ variable separator])
1582AC_CACHE_VAL(ac_cv_sep,
1583[if test "$CYGWIN" = yes || test "$MINGW32" = yes || test "$DJ_GPP" = yes ; then
1584  ac_cv_sep=yes
1585else
1586  ac_cv_sep=no
1587fi])
1588SEP=":"
1589test x"$ac_cv_sep" = xyes && SEP=";"
1590AC_MSG_RESULT(${SEP})
1591AC_SUBST(SEP)])
1592
1593dnl Check for DJGPP. we use DJ_GPP as the variable
1594dnl EXEEXXT
1595AC_DEFUN(AC_DJGPP,
1596[AC_CACHE_CHECK(for DJGPP environment, ac_cv_djgpp,
1597[AC_TRY_COMPILE(,[ return __DJGPP__;],
1598ac_cv_djgpp=yes, ac_cv_djgpp=no)
1599rm -f conftest*])
1600DJ_GPP=
1601test "$ac_cv_djgpp" = yes && DJ_GPP=yes])
1602
1603#serial 5001
1604
1605dnl Initially derived from code in GNU grep.
1606dnl Mostly written by Jim Meyering.
1607
1608dnl Usage: jm_INCLUDED_REGEX([lib/regex.c])
1609dnl
1610AC_DEFUN(jm_INCLUDED_REGEX,
1611  [
1612    dnl Even packages that don't use regex.c can use this macro.
1613    dnl Of course, for them it doesn't do anything.
1614
1615    # Assume we'll default to using the included regex.c.
1616    ac_use_included_regex=yes
1617
1618    # However, if the system regex support is good enough that it passes the
1619    # the following run test, then default to *not* using the included regex.c.
1620    # If cross compiling, assume the test would fail and use the included
1621    # regex.c.  The first failing regular expression is from `Spencer ere
1622    # test #75' in grep-2.3.
1623    AC_CACHE_CHECK([for working re_compile_pattern],
1624		   jm_cv_func_working_re_compile_pattern,
1625      AC_TRY_RUN(
1626	changequote(<<, >>)dnl
1627	<<
1628#include <stdio.h>
1629#include <regex.h>
1630	  int
1631	  main ()
1632	  {
1633	    static struct re_pattern_buffer regex;
1634	    const char *s;
1635	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
1636	    /* Add this third left square bracket, [, to balance the
1637	       three right ones below.  Otherwise autoconf-2.14 chokes.  */
1638	    s = re_compile_pattern ("a[[:]:]]b\n", 9, &regex);
1639	    /* This should fail with _Invalid character class name_ error.  */
1640	    if (!s)
1641	      exit (1);
1642
1643	    /* This should succeed, but doesn't for e.g. glibc-2.1.3.  */
1644	    s = re_compile_pattern ("{1", 2, &regex);
1645
1646	   exit (s ? 1 : 0);
1647	  }
1648	>>,
1649	changequote([, ])dnl
1650
1651	       jm_cv_func_working_re_compile_pattern=yes,
1652	       jm_cv_func_working_re_compile_pattern=no,
1653	       dnl When crosscompiling, assume it's broken.
1654	       jm_cv_func_working_re_compile_pattern=no))
1655    if test $jm_cv_func_working_re_compile_pattern = yes; then
1656      ac_use_included_regex=no
1657    fi
1658
1659    test -n "$1" || AC_MSG_ERROR([missing argument])
1660    syscmd([test -f $1])
1661    ifelse(sysval, 0,
1662      [
1663
1664	AC_ARG_WITH(included-regex,
1665	[  --without-included-regex don't compile regex; this is the default on
1666                          systems with version 2 of the GNU C library
1667                          (use with caution on other system)],
1668		    jm_with_regex=$withval,
1669		    jm_with_regex=$ac_use_included_regex)
1670	if test "$jm_with_regex" = yes; then
1671	  AC_LIBOBJ(regex)
1672	fi
1673      ],
1674    )
1675  ]
1676)
1677
1678#serial 1002, but ported to autoconf 2.13 by eggert
1679# Experimental replacement for the function in the latest CVS autoconf.
1680# If the compile-test says strerror_r doesn't work, then resort to a
1681# `run'-test that works on BeOS and segfaults on DEC Unix.
1682# Use with the error.c file in ../lib.
1683
1684undefine([AC_FUNC_STRERROR_R])
1685
1686# AC_FUNC_STRERROR_R
1687# ------------------
1688AC_DEFUN([AC_FUNC_STRERROR_R],
1689[jm_CHECK_DECLARATION(strerror_r, [#include <string.h>])
1690test $jm_cv_func_decl_strerror_r != yes
1691AC_DEFINE_UNQUOTED(HAVE_DECL_STRERROR_R, $?,
1692  [Define to 1 if strerror_r is declared.])
1693AC_CHECK_FUNCS([strerror_r])
1694if test $ac_cv_func_strerror_r = yes; then
1695  AC_CHECK_HEADERS(string.h)
1696  AC_CACHE_CHECK([for working strerror_r],
1697		 ac_cv_func_strerror_r_works,
1698   [
1699    AC_TRY_COMPILE(
1700     [
1701#       include <stdio.h>
1702#       if HAVE_STRING_H
1703#        include <string.h>
1704#       endif
1705     ],
1706     [
1707       char buf[100];
1708       char x = *strerror_r (0, buf, sizeof buf);
1709     ],
1710     ac_cv_func_strerror_r_works=yes,
1711     ac_cv_func_strerror_r_works=no
1712    )
1713    if test $ac_cv_func_strerror_r_works = no; then
1714      # strerror_r seems not to work, but now we have to choose between
1715      # systems that have relatively inaccessible declarations for the
1716      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
1717      # former has a strerror_r that returns char*, while the latter
1718      # has a strerror_r that returns int.
1719      # This test should segfault on the DEC system.
1720      AC_TRY_RUN(
1721       [
1722#       include <stdio.h>
1723#       include <string.h>
1724#       include <ctype.h>
1725
1726	extern char *strerror_r ();
1727
1728	int
1729	main ()
1730	{
1731	  char buf[100];
1732	  char x = *strerror_r (0, buf, sizeof buf);
1733	  exit (!isalpha (x));
1734	}
1735       ],
1736       ac_cv_func_strerror_r_works=yes,
1737       ac_cv_func_strerror_r_works=no,
1738       ac_cv_func_strerror_r_works=no)
1739    fi
1740  ])
1741  if test $ac_cv_func_strerror_r_works = yes; then
1742    AC_DEFINE_UNQUOTED(HAVE_WORKING_STRERROR_R, 1,
1743      [Define to 1 if strerror_r returns a string.])
1744  fi
1745fi
1746])# AC_FUNC_STRERROR_R
1747
1748#serial 1
1749
1750dnl FIXME: put these prerequisite-only *.m4 files in a separate
1751dnl directory -- otherwise, they'll conflict with existing files.
1752
1753dnl These are the prerequisite macros for GNU's error.c file.
1754AC_DEFUN(jm_PREREQ_ERROR,
1755[
1756  AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
1757  AC_HEADER_STDC
1758])
1759
1760#serial 3
1761
1762dnl From Jim Meyering.
1763dnl Determine whether malloc accepts 0 as its argument.
1764dnl If it doesn't, arrange to use the replacement function.
1765dnl
1766
1767AC_DEFUN(jm_FUNC_MALLOC,
1768[
1769 dnl xmalloc.c requires that this symbol be defined so it doesn't
1770 dnl mistakenly use a broken malloc -- as it might if this test were omitted.
1771 AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_MALLOC_CHECK, 1,
1772                    [Define if the malloc check has been performed. ])
1773
1774 AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc,
1775  [AC_TRY_RUN([
1776    char *malloc ();
1777    int
1778    main ()
1779    {
1780      exit (malloc (0) ? 0 : 1);
1781    }
1782	  ],
1783	 jm_cv_func_working_malloc=yes,
1784	 jm_cv_func_working_malloc=no,
1785	 dnl When crosscompiling, assume malloc is broken.
1786	 jm_cv_func_working_malloc=no)
1787  ])
1788  if test $jm_cv_func_working_malloc = no; then
1789    AC_LIBOBJ(malloc)
1790    AC_DEFINE_UNQUOTED(malloc, rpl_malloc,
1791      [Define to rpl_malloc if the replacement function should be used.])
1792  fi
1793])
1794
1795#serial 3
1796
1797dnl From Jim Meyering.
1798dnl Determine whether realloc works when both arguments are 0.
1799dnl If it doesn't, arrange to use the replacement function.
1800dnl
1801
1802AC_DEFUN(jm_FUNC_REALLOC,
1803[
1804 dnl xmalloc.c requires that this symbol be defined so it doesn't
1805 dnl mistakenly use a broken realloc -- as it might if this test were omitted.
1806 AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_REALLOC_CHECK, 1,
1807                    [Define if the realloc check has been performed. ])
1808
1809 AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc,
1810  [AC_TRY_RUN([
1811    char *realloc ();
1812    int
1813    main ()
1814    {
1815      exit (realloc (0, 0) ? 0 : 1);
1816    }
1817	  ],
1818	 jm_cv_func_working_realloc=yes,
1819	 jm_cv_func_working_realloc=no,
1820	 dnl When crosscompiling, assume realloc is broken.
1821	 jm_cv_func_working_realloc=no)
1822  ])
1823  if test $jm_cv_func_working_realloc = no; then
1824    AC_LIBOBJ(realloc)
1825    AC_DEFINE_UNQUOTED(realloc, rpl_realloc,
1826      [Define to rpl_realloc if the replacement function should be used.])
1827  fi
1828])
1829
1830