mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-05 13:40:08 +08:00
Updated to use libtool 1.2 (with FreeBSD3.0 a.out v. elf detection). Updated autoconf to 1.12 with sed patch (don't use stock 1.12). aclocal.m4 is built using automake's aclocal, v1.3. Updated mkdep to support libtool .lo files. Updated automake provided macros for TERMIOS, STRTOD, MKTIME, PTRDIFF_T Autoconf now checks to ensure C compiler supports ANSI C prototypes. Updated make files templates.
699 lines
19 KiB
Plaintext
699 lines
19 KiB
Plaintext
dnl aclocal.m4 generated automatically by aclocal 1.3
|
|
|
|
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
|
dnl This Makefile.in is free software; the Free Software Foundation
|
|
dnl gives unlimited permission to copy and/or distribute it,
|
|
dnl with or without modifications, as long as this notice is preserved.
|
|
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
dnl PARTICULAR PURPOSE.
|
|
|
|
dnl
|
|
dnl OpenLDAP Autoconf Macros
|
|
dnl
|
|
builtin(include, build/openldap.m4)dnl
|
|
|
|
# Do all the work for Automake. This macro actually does too much --
|
|
# some checks are only needed if your package does certain things.
|
|
# But this isn't really a big deal.
|
|
|
|
# serial 1
|
|
|
|
dnl Usage:
|
|
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
|
|
|
|
AC_DEFUN(AM_INIT_AUTOMAKE,
|
|
[AC_REQUIRE([AM_PROG_INSTALL])
|
|
PACKAGE=[$1]
|
|
AC_SUBST(PACKAGE)
|
|
VERSION=[$2]
|
|
AC_SUBST(VERSION)
|
|
dnl test to see if srcdir already configured
|
|
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
|
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
|
fi
|
|
ifelse([$3],,
|
|
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
|
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
|
|
AC_REQUIRE([AM_SANITY_CHECK])
|
|
AC_REQUIRE([AC_ARG_PROGRAM])
|
|
dnl FIXME This is truly gross.
|
|
missing_dir=`cd $ac_aux_dir && pwd`
|
|
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
|
|
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
|
|
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
|
|
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
|
|
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
|
|
AC_REQUIRE([AC_PROG_MAKE_SET])])
|
|
|
|
|
|
# serial 1
|
|
|
|
AC_DEFUN(AM_PROG_INSTALL,
|
|
[AC_REQUIRE([AC_PROG_INSTALL])
|
|
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
|
AC_SUBST(INSTALL_SCRIPT)dnl
|
|
])
|
|
|
|
#
|
|
# Check to make sure that the build environment is sane.
|
|
#
|
|
|
|
AC_DEFUN(AM_SANITY_CHECK,
|
|
[AC_MSG_CHECKING([whether build environment is sane])
|
|
# Just in case
|
|
sleep 1
|
|
echo timestamp > conftestfile
|
|
# Do `set' in a subshell so we don't clobber the current shell's
|
|
# arguments. Must try -L first in case configure is actually a
|
|
# symlink; some systems play weird games with the mod time of symlinks
|
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
|
# directory).
|
|
if (
|
|
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
|
|
if test "[$]*" = "X"; then
|
|
# -L didn't work.
|
|
set X `ls -t $srcdir/configure conftestfile`
|
|
fi
|
|
if test "[$]*" != "X $srcdir/configure conftestfile" \
|
|
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
|
|
|
|
# If neither matched, then we have a broken ls. This can happen
|
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
|
# broken ls alias from the environment. This has actually
|
|
# happened. Such a system could not be considered "sane".
|
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
|
alias in your environment])
|
|
fi
|
|
|
|
test "[$]2" = conftestfile
|
|
)
|
|
then
|
|
# Ok.
|
|
:
|
|
else
|
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
|
Check your system clock])
|
|
fi
|
|
rm -f conftest*
|
|
AC_MSG_RESULT(yes)])
|
|
|
|
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
|
|
dnl The program must properly implement --version.
|
|
AC_DEFUN(AM_MISSING_PROG,
|
|
[AC_MSG_CHECKING(for working $2)
|
|
# Run test in a subshell; some versions of sh will print an error if
|
|
# an executable is not found, even if stderr is redirected.
|
|
# Redirect stdin to placate older versions of autoconf. Sigh.
|
|
if ($2 --version) < /dev/null > /dev/null 2>&1; then
|
|
$1=$2
|
|
AC_MSG_RESULT(found)
|
|
else
|
|
$1="$3/missing $2"
|
|
AC_MSG_RESULT(missing)
|
|
fi
|
|
AC_SUBST($1)])
|
|
|
|
|
|
# serial 24 AM_PROG_LIBTOOL
|
|
AC_DEFUN(AM_PROG_LIBTOOL,
|
|
[AC_REQUIRE([AM_ENABLE_SHARED])dnl
|
|
AC_REQUIRE([AM_ENABLE_STATIC])dnl
|
|
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
|
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
|
AC_REQUIRE([AC_PROG_CC])dnl
|
|
AC_REQUIRE([AM_PROG_LD])dnl
|
|
AC_REQUIRE([AM_PROG_NM])dnl
|
|
AC_REQUIRE([AC_PROG_LN_S])dnl
|
|
dnl
|
|
# Always use our own libtool.
|
|
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
|
|
AC_SUBST(LIBTOOL)dnl
|
|
|
|
# Check for any special flags to pass to ltconfig.
|
|
libtool_flags=
|
|
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
|
|
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
|
|
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
|
|
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
|
|
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
|
|
|
|
# Some flags need to be propagated to the compiler or linker for good
|
|
# libtool support.
|
|
case "$host" in
|
|
*-*-irix6*)
|
|
# Find out which ABI we are using.
|
|
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
|
|
if AC_TRY_EVAL(ac_compile); then
|
|
case "`/usr/bin/file conftest.o`" in
|
|
*32-bit*)
|
|
LD="${LD-ld} -32"
|
|
;;
|
|
*N32*)
|
|
LD="${LD-ld} -n32"
|
|
;;
|
|
*64-bit*)
|
|
LD="${LD-ld} -64"
|
|
;;
|
|
esac
|
|
fi
|
|
rm -rf conftest*
|
|
;;
|
|
|
|
*-*-sco3.2v5*)
|
|
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
|
|
CFLAGS="$CFLAGS -belf"
|
|
;;
|
|
esac
|
|
|
|
# Actually configure libtool. ac_aux_dir is where install-sh is found.
|
|
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
|
|
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
|
|
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
|
|
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|
|
|| AC_MSG_ERROR([libtool configure failed])
|
|
])
|
|
|
|
# AM_ENABLE_SHARED - implement the --enable-shared flag
|
|
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
|
|
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
|
# `yes'.
|
|
AC_DEFUN(AM_ENABLE_SHARED,
|
|
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
|
|
AC_ARG_ENABLE(shared,
|
|
changequote(<<, >>)dnl
|
|
<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
|
|
changequote([, ])dnl
|
|
[ --enable-shared=PKGS only build shared libraries if the current package
|
|
appears as an element in the PKGS list],
|
|
[p=${PACKAGE-default}
|
|
case "$enableval" in
|
|
yes) enable_shared=yes ;;
|
|
no) enable_shared=no ;;
|
|
*)
|
|
enable_shared=no
|
|
# Look at the argument we got. We use all the common list separators.
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
|
|
for pkg in $enableval; do
|
|
if test "X$pkg" = "X$p"; then
|
|
enable_shared=yes
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
;;
|
|
esac],
|
|
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
|
|
])
|
|
|
|
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
|
|
AC_DEFUN(AM_DISABLE_SHARED,
|
|
[AM_ENABLE_SHARED(no)])
|
|
|
|
# AM_DISABLE_STATIC - set the default static flag to --disable-static
|
|
AC_DEFUN(AM_DISABLE_STATIC,
|
|
[AM_ENABLE_STATIC(no)])
|
|
|
|
# AM_ENABLE_STATIC - implement the --enable-static flag
|
|
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
|
|
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
|
# `yes'.
|
|
AC_DEFUN(AM_ENABLE_STATIC,
|
|
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
|
|
AC_ARG_ENABLE(static,
|
|
changequote(<<, >>)dnl
|
|
<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
|
|
changequote([, ])dnl
|
|
[ --enable-static=PKGS only build shared libraries if the current package
|
|
appears as an element in the PKGS list],
|
|
[p=${PACKAGE-default}
|
|
case "$enableval" in
|
|
yes) enable_static=yes ;;
|
|
no) enable_static=no ;;
|
|
*)
|
|
enable_static=no
|
|
# Look at the argument we got. We use all the common list separators.
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
|
|
for pkg in $enableval; do
|
|
if test "X$pkg" = "X$p"; then
|
|
enable_static=yes
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
;;
|
|
esac],
|
|
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
|
|
])
|
|
|
|
|
|
# AM_PROG_LD - find the path to the GNU or non-GNU linker
|
|
AC_DEFUN(AM_PROG_LD,
|
|
[AC_ARG_WITH(gnu-ld,
|
|
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
|
|
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
ac_prog=ld
|
|
if test "$ac_cv_prog_gcc" = yes; then
|
|
# Check if gcc -print-prog-name=ld gives a path.
|
|
AC_MSG_CHECKING([for ld used by GCC])
|
|
ac_prog=`($CC -print-prog-name=ld) 2>&5`
|
|
case "$ac_prog" in
|
|
# Accept absolute paths.
|
|
/* | [A-Za-z]:\\*)
|
|
test -z "$LD" && LD="$ac_prog"
|
|
;;
|
|
"")
|
|
# If it fails, then pretend we aren't using GCC.
|
|
ac_prog=ld
|
|
;;
|
|
*)
|
|
# If it is relative, then search for the first ld in PATH.
|
|
with_gnu_ld=unknown
|
|
;;
|
|
esac
|
|
elif test "$with_gnu_ld" = yes; then
|
|
AC_MSG_CHECKING([for GNU ld])
|
|
else
|
|
AC_MSG_CHECKING([for non-GNU ld])
|
|
fi
|
|
AC_CACHE_VAL(ac_cv_path_LD,
|
|
[if test -z "$LD"; then
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
|
for ac_dir in $PATH; do
|
|
test -z "$ac_dir" && ac_dir=.
|
|
if test -f "$ac_dir/$ac_prog"; then
|
|
ac_cv_path_LD="$ac_dir/$ac_prog"
|
|
# Check to see if the program is GNU ld. I'd rather use --version,
|
|
# but apparently some GNU ld's only accept -v.
|
|
# Break only if it was the GNU/non-GNU ld that we prefer.
|
|
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
|
|
test "$with_gnu_ld" != no && break
|
|
else
|
|
test "$with_gnu_ld" != yes && break
|
|
fi
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
else
|
|
ac_cv_path_LD="$LD" # Let the user override the test with a path.
|
|
fi])
|
|
LD="$ac_cv_path_LD"
|
|
if test -n "$LD"; then
|
|
AC_MSG_RESULT($LD)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
|
AC_SUBST(LD)
|
|
AM_PROG_LD_GNU
|
|
])
|
|
|
|
AC_DEFUN(AM_PROG_LD_GNU,
|
|
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
|
|
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
|
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
|
|
ac_cv_prog_gnu_ld=yes
|
|
else
|
|
ac_cv_prog_gnu_ld=no
|
|
fi])
|
|
])
|
|
|
|
# AM_PROG_NM - find the path to a BSD-compatible name lister
|
|
AC_DEFUN(AM_PROG_NM,
|
|
[AC_MSG_CHECKING([for BSD-compatible nm])
|
|
AC_CACHE_VAL(ac_cv_path_NM,
|
|
[case "$NM" in
|
|
/* | [A-Za-z]:\\*)
|
|
ac_cv_path_NM="$NM" # Let the user override the test with a path.
|
|
;;
|
|
*)
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
|
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
|
|
test -z "$ac_dir" && ac_dir=.
|
|
if test -f $ac_dir/nm; then
|
|
# Check to see if the nm accepts a BSD-compat flag.
|
|
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
|
|
# nm: unknown option "B" ignored
|
|
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
|
|
ac_cv_path_NM="$ac_dir/nm -B"
|
|
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
|
|
ac_cv_path_NM="$ac_dir/nm -p"
|
|
else
|
|
ac_cv_path_NM="$ac_dir/nm"
|
|
fi
|
|
break
|
|
fi
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
|
|
;;
|
|
esac])
|
|
NM="$ac_cv_path_NM"
|
|
AC_MSG_RESULT([$NM])
|
|
AC_SUBST(NM)
|
|
])
|
|
|
|
|
|
# serial 1
|
|
|
|
# @defmac AC_PROG_CC_STDC
|
|
# @maindex PROG_CC_STDC
|
|
# @ovindex CC
|
|
# If the C compiler in not in ANSI C mode by default, try to add an option
|
|
# to output variable @code{CC} to make it so. This macro tries various
|
|
# options that select ANSI C on some system or another. It considers the
|
|
# compiler to be in ANSI C mode if it handles function prototypes correctly.
|
|
#
|
|
# If you use this macro, you should check after calling it whether the C
|
|
# compiler has been set to accept ANSI C; if not, the shell variable
|
|
# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
|
|
# code in ANSI C, you can make an un-ANSIfied copy of it by using the
|
|
# program @code{ansi2knr}, which comes with Ghostscript.
|
|
# @end defmac
|
|
|
|
AC_DEFUN(AM_PROG_CC_STDC,
|
|
[AC_REQUIRE([AC_PROG_CC])
|
|
AC_BEFORE([$0], [AC_C_INLINE])
|
|
AC_BEFORE([$0], [AC_C_CONST])
|
|
dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
|
|
dnl a magic option to avoid problems with ANSI preprocessor commands
|
|
dnl like #elif.
|
|
dnl FIXME: can't do this because then AC_AIX won't work due to a
|
|
dnl circular dependency.
|
|
dnl AC_BEFORE([$0], [AC_PROG_CPP])
|
|
AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
|
|
AC_CACHE_VAL(am_cv_prog_cc_stdc,
|
|
[am_cv_prog_cc_stdc=no
|
|
ac_save_CC="$CC"
|
|
# Don't try gcc -ansi; that turns off useful extensions and
|
|
# breaks some systems' header files.
|
|
# AIX -qlanglvl=ansi
|
|
# Ultrix and OSF/1 -std1
|
|
# HP-UX -Aa -D_HPUX_SOURCE
|
|
# SVR4 -Xc -D__EXTENSIONS__
|
|
for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
|
|
do
|
|
CC="$ac_save_CC $ac_arg"
|
|
AC_TRY_COMPILE(
|
|
[#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
|
struct buf { int x; };
|
|
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
|
static char *e (p, i)
|
|
char **p;
|
|
int i;
|
|
{
|
|
return p[i];
|
|
}
|
|
static char *f (char * (*g) (char **, int), char **p, ...)
|
|
{
|
|
char *s;
|
|
va_list v;
|
|
va_start (v,p);
|
|
s = g (p, va_arg (v,int));
|
|
va_end (v);
|
|
return s;
|
|
}
|
|
int test (int i, double x);
|
|
struct s1 {int (*f) (int a);};
|
|
struct s2 {int (*f) (double a);};
|
|
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
|
|
int argc;
|
|
char **argv;
|
|
], [
|
|
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
|
|
],
|
|
[am_cv_prog_cc_stdc="$ac_arg"; break])
|
|
done
|
|
CC="$ac_save_CC"
|
|
])
|
|
if test -z "$am_cv_prog_cc_stdc"; then
|
|
AC_MSG_RESULT([none needed])
|
|
else
|
|
AC_MSG_RESULT($am_cv_prog_cc_stdc)
|
|
fi
|
|
case "x$am_cv_prog_cc_stdc" in
|
|
x|xno) ;;
|
|
*) CC="$CC $am_cv_prog_cc_stdc" ;;
|
|
esac
|
|
])
|
|
|
|
dnl From Jim Meyering.
|
|
|
|
# serial 1
|
|
|
|
AC_DEFUN(AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL,
|
|
[AC_REQUIRE([AM_SYS_POSIX_TERMIOS])
|
|
AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h],
|
|
am_cv_sys_tiocgwinsz_needs_sys_ioctl_h,
|
|
[am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no
|
|
|
|
gwinsz_in_termios_h=no
|
|
if test $am_cv_sys_posix_termios = yes; then
|
|
AC_EGREP_CPP([yes],
|
|
[#include <sys/types.h>
|
|
# include <termios.h>
|
|
# ifdef TIOCGWINSZ
|
|
yes
|
|
# endif
|
|
], gwinsz_in_termios_h=yes)
|
|
fi
|
|
|
|
if test $gwinsz_in_termios_h = no; then
|
|
AC_EGREP_CPP([yes],
|
|
[#include <sys/types.h>
|
|
# include <sys/ioctl.h>
|
|
# ifdef TIOCGWINSZ
|
|
yes
|
|
# endif
|
|
], am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes)
|
|
fi
|
|
])
|
|
if test $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then
|
|
AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
|
|
fi
|
|
])
|
|
|
|
dnl From Jim Meyering.
|
|
|
|
# serial 1
|
|
|
|
AC_DEFUN(AM_SYS_POSIX_TERMIOS,
|
|
[AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
|
|
[AC_TRY_LINK([#include <sys/types.h>
|
|
#include <unistd.h>
|
|
#include <termios.h>],
|
|
[/* SunOS 4.0.3 has termios.h but not the library calls. */
|
|
tcgetattr(0, 0);],
|
|
am_cv_sys_posix_termios=yes,
|
|
am_cv_sys_posix_termios=no)])
|
|
])
|
|
|
|
# From Ulrich Drepper.
|
|
|
|
# serial 1
|
|
|
|
AC_DEFUN(AM_TYPE_PTRDIFF_T,
|
|
[AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
|
|
[AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
|
|
am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
|
|
if test $am_cv_type_ptrdiff_t = yes; then
|
|
AC_DEFINE(HAVE_PTRDIFF_T)
|
|
fi
|
|
])
|
|
|
|
#serial 4
|
|
|
|
dnl From Jim Meyering.
|
|
dnl FIXME: this should migrate into libit.
|
|
|
|
AC_DEFUN(AM_FUNC_MKTIME,
|
|
[AC_REQUIRE([AC_HEADER_TIME])dnl
|
|
AC_CHECK_HEADERS(sys/time.h unistd.h)
|
|
AC_CHECK_FUNCS(alarm)
|
|
AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
|
|
[AC_TRY_RUN(
|
|
changequote(<<, >>)dnl
|
|
<</* Test program from Paul Eggert (eggert@twinsun.com)
|
|
and Tony Leneis (tony@plaza.ds.adp.com). */
|
|
#if TIME_WITH_SYS_TIME
|
|
# include <sys/time.h>
|
|
# include <time.h>
|
|
#else
|
|
# if HAVE_SYS_TIME_H
|
|
# include <sys/time.h>
|
|
# else
|
|
# include <time.h>
|
|
# endif
|
|
#endif
|
|
|
|
#if HAVE_UNISTD_H
|
|
# include <unistd.h>
|
|
#endif
|
|
|
|
#if !HAVE_ALARM
|
|
# define alarm(X) /* empty */
|
|
#endif
|
|
|
|
/* Work around redefinition to rpl_putenv by other config tests. */
|
|
#undef putenv
|
|
|
|
static time_t time_t_max;
|
|
|
|
/* Values we'll use to set the TZ environment variable. */
|
|
static const char *const tz_strings[] = {
|
|
(const char *) 0, "GMT0", "JST-9",
|
|
"EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
|
|
};
|
|
#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
|
|
|
|
static void
|
|
mktime_test (now)
|
|
time_t now;
|
|
{
|
|
struct tm *lt;
|
|
if ((lt = localtime (&now)) && mktime (lt) != now)
|
|
exit (1);
|
|
now = time_t_max - now;
|
|
if ((lt = localtime (&now)) && mktime (lt) != now)
|
|
exit (1);
|
|
}
|
|
|
|
static void
|
|
irix_6_4_bug ()
|
|
{
|
|
/* Based on code from Ariel Faigon. */
|
|
struct tm tm;
|
|
tm.tm_year = 96;
|
|
tm.tm_mon = 3;
|
|
tm.tm_mday = 0;
|
|
tm.tm_hour = 0;
|
|
tm.tm_min = 0;
|
|
tm.tm_sec = 0;
|
|
tm.tm_isdst = -1;
|
|
mktime (&tm);
|
|
if (tm.tm_mon != 2 || tm.tm_mday != 31)
|
|
exit (1);
|
|
}
|
|
|
|
static void
|
|
bigtime_test (j)
|
|
int j;
|
|
{
|
|
struct tm tm;
|
|
time_t now;
|
|
tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
|
|
/* This test makes some buggy mktime implementations loop.
|
|
Give up after 10 seconds. */
|
|
alarm (10);
|
|
now = mktime (&tm);
|
|
alarm (0);
|
|
if (now != (time_t) -1)
|
|
{
|
|
struct tm *lt = localtime (&now);
|
|
if (! (lt
|
|
&& lt->tm_year == tm.tm_year
|
|
&& lt->tm_mon == tm.tm_mon
|
|
&& lt->tm_mday == tm.tm_mday
|
|
&& lt->tm_hour == tm.tm_hour
|
|
&& lt->tm_min == tm.tm_min
|
|
&& lt->tm_sec == tm.tm_sec
|
|
&& lt->tm_yday == tm.tm_yday
|
|
&& lt->tm_wday == tm.tm_wday
|
|
&& ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
|
|
== (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
|
|
exit (1);
|
|
}
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
time_t t, delta;
|
|
int i, j;
|
|
|
|
for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
|
|
continue;
|
|
time_t_max--;
|
|
delta = time_t_max / 997; /* a suitable prime number */
|
|
for (i = 0; i < N_STRINGS; i++)
|
|
{
|
|
if (tz_strings[i])
|
|
putenv (tz_strings[i]);
|
|
|
|
for (t = 0; t <= time_t_max - delta; t += delta)
|
|
mktime_test (t);
|
|
mktime_test ((time_t) 60 * 60);
|
|
mktime_test ((time_t) 60 * 60 * 24);
|
|
|
|
for (j = 1; 0 < j; j *= 2)
|
|
bigtime_test (j);
|
|
bigtime_test (j - 1);
|
|
}
|
|
irix_6_4_bug ();
|
|
exit (0);
|
|
}
|
|
>>,
|
|
changequote([, ])dnl
|
|
am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
|
|
dnl When crosscompiling, assume mktime is missing or broken.
|
|
am_cv_func_working_mktime=no)
|
|
])
|
|
if test $am_cv_func_working_mktime = no; then
|
|
LIBOBJS="$LIBOBJS mktime.o"
|
|
fi
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AC_DEFUN(AM_FUNC_STRTOD,
|
|
[AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
|
|
[AC_TRY_RUN([
|
|
double strtod ();
|
|
int
|
|
main()
|
|
{
|
|
{
|
|
/* Some versions of Linux strtod mis-parse strings with leading '+'. */
|
|
char *string = " +69";
|
|
char *term;
|
|
double value;
|
|
value = strtod (string, &term);
|
|
if (value != 69 || term != (string + 4))
|
|
exit (1);
|
|
}
|
|
|
|
{
|
|
/* Under Solaris 2.4, strtod returns the wrong value for the
|
|
terminating character under some conditions. */
|
|
char *string = "NaN";
|
|
char *term;
|
|
strtod (string, &term);
|
|
if (term != string && *(term - 1) == 0)
|
|
exit (1);
|
|
}
|
|
exit (0);
|
|
}
|
|
], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
|
|
test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
|
|
AC_SUBST(LIBOBJS)dnl
|
|
am_cv_func_strtod_needs_libm=no
|
|
if test $am_cv_func_strtod = no; then
|
|
AC_CHECK_FUNCS(pow)
|
|
if test $ac_cv_func_pow = no; then
|
|
AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
|
|
[AC_MSG_WARN(can't find library containing definition of pow)])
|
|
fi
|
|
fi
|
|
])
|
|
|