b63f9ab414
Newer Linux systems have moved libutil.h to bsd/libutil.h, add the necessary checks for that location. Fixes at least Ubuntu 12.04.
570 lines
13 KiB
Text
570 lines
13 KiB
Text
dnl $NetBSD: configure.ac,v 1.83 2014/07/25 13:26:24 jperkin Exp $
|
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
AC_PREREQ(2.52)
|
|
AC_INIT([libnbcompat], [20120702], [joerg@NetBSD.org])
|
|
AC_CONFIG_HEADER(nbcompat/config.h)
|
|
AC_ARG_PROGRAM
|
|
|
|
AC_CANONICAL_HOST
|
|
CANONICAL_HOST=$host
|
|
AC_SUBST(CANONICAL_HOST)
|
|
AC_SUBST(INCLUDES)
|
|
|
|
# Checks for programs.
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_RANLIB
|
|
AC_PROG_AWK
|
|
AC_CHECK_PROG(AR, ar, ar)
|
|
|
|
AUTOCONF=${AUTOCONF-"$srcdir/missing --run autoconf"}
|
|
AC_SUBST(AUTOCONF)
|
|
AUTOHEADER=${AUTOHEADER-"$srcdir/missing --run autoheader"}
|
|
AC_SUBST(AUTOHEADER)
|
|
|
|
dnl Checks for libraries
|
|
AC_CHECK_LIB(util, fparseln)
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_TIME
|
|
AC_HEADER_STDBOOL
|
|
|
|
AC_CHECK_HEADERS([alloca.h assert.h bsd/libutil.h ctype.h dirent.h endian.h \
|
|
err.h errno.h fcntl.h fnmatch.h fts.h grp.h inttypes.h libutil.h \
|
|
limits.h machine/endian.h ndir.h netdb.h paths.h pwd.h signal.h \
|
|
stdarg.h stddef.h stdint.h stdio.h \
|
|
stdlib.h string.h sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h \
|
|
sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/socket.h sys/stat.h \
|
|
sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \
|
|
sys/uio.h sys/vfs.h sysexits.h termcap.h time.h tzfile.h unistd.h \
|
|
util.h utime.h sys/mman.h
|
|
])
|
|
AC_CHECK_HEADERS([sys/mount.h], [:], [:], [
|
|
AC_INCLUDES_DEFAULT
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
])
|
|
|
|
dnl Always use our own glob().
|
|
AC_CHECK_HEADERS([glob.h])
|
|
AC_DEFINE(HAVE_NBCOMPAT_GLOB)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_GLOB], [
|
|
Define to 1 if the `glob' function is built into the library.
|
|
])
|
|
AC_LIBOBJ(glob)
|
|
|
|
dnl Always use our own queue(3) implementation.
|
|
AC_CHECK_HEADERS([sys/queue.h])
|
|
AC_DEFINE(HAVE_NBCOMPAT_QUEUE)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_QUEUE], [
|
|
Define to 1 if the `queue' macros are supplied by the library.
|
|
])
|
|
|
|
AC_CHECK_HEADERS([regex.h])
|
|
AC_CHECK_FUNC(regexec, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_REGEX)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_REGEX], [
|
|
Define to 1 if the `regex' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(regcomp)
|
|
AC_LIBOBJ(regerror)
|
|
AC_LIBOBJ(regexec)
|
|
AC_LIBOBJ(regfree)
|
|
])
|
|
|
|
AC_MSG_TRY_LINK([for va_copy], pkg_cv_have_va_copy, [
|
|
#include <stdarg.h>
|
|
], [
|
|
va_list ap, ap2;
|
|
va_copy(ap2, ap);
|
|
return 0;
|
|
], AC_DEFINE(HAVE_VA_COPY)
|
|
AH_TEMPLATE([HAVE_VA_COPY], [
|
|
Define to 1 if the `va_copy' function is supported.
|
|
]), [:]
|
|
])
|
|
|
|
AC_MSG_TRY_LINK([for __builtin_va_copy], pkg_cv_have___builtin_va_copy, [
|
|
#include <stdarg.h>
|
|
], [
|
|
va_list ap, ap2;
|
|
__builtin_va_copy(ap2, ap);
|
|
return 0;
|
|
], AC_DEFINE(HAVE___BUILTIN_VA_COPY)
|
|
AH_TEMPLATE([HAVE___BUILTIN_VA_COPY], [
|
|
Define to 1 if the `__builtin_va_copy' function is supported.
|
|
]), [:]
|
|
])
|
|
|
|
AC_CHECK_HEADERS([md5.h], [
|
|
AC_MSG_TRY_COMPILE([for MD5Init in md5.h], pkg_cv_have_md5init, [
|
|
#include <sys/types.h>
|
|
#include <md5.h>
|
|
], [
|
|
MD5_CTX *f;
|
|
MD5Init(f);
|
|
], [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_MD5INIT)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_MD5INIT], [
|
|
Define to 1 if the `MD5Init' function is built into
|
|
the library.
|
|
])
|
|
])
|
|
])
|
|
|
|
AC_CHECK_HEADERS([md5.h rmd160.h sha1.h sha2.h])
|
|
AC_CHECK_FUNC(MD5File, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_MD5)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_MD5], [
|
|
Define to 1 if the `MD5*' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(md5c)
|
|
AC_LIBOBJ(md5hl)
|
|
])
|
|
AC_CHECK_FUNC(RMD160File, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_RMD160)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_RMD160], [
|
|
Define to 1 if the `RMD160*' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(rmd160)
|
|
AC_LIBOBJ(rmd160hl)
|
|
])
|
|
AC_CHECK_FUNC(SHA1File, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_SHA1)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_SHA1], [
|
|
Define to 1 if the `SHA1*' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(sha1)
|
|
AC_LIBOBJ(sha1hl)
|
|
])
|
|
|
|
AC_CHECK_FUNC(SHA512_File, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_SHA2)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_SHA2], [
|
|
Define to 1 if the `SHA2*' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(sha2)
|
|
AC_LIBOBJ(sha2hl)
|
|
])
|
|
|
|
case $host in
|
|
*-*-hpux*)
|
|
AC_DEFINE(BROKEN_PREAD)
|
|
AH_TEMPLATE([BROKEN_PREAD], [
|
|
Define to 1 if the `pread' function is broken.
|
|
])
|
|
AC_DEFINE(BROKEN_PWRITE)
|
|
AH_TEMPLATE([BROKEN_PWRITE], [
|
|
Define to 1 if the `pwrite' function is broken.
|
|
])
|
|
;;
|
|
*-*-sco3.2v5*)
|
|
AC_DEFINE(BROKEN_PREAD)
|
|
AH_TEMPLATE([BROKEN_PREAD], [
|
|
Define to 1 if the `pread' function is broken.
|
|
])
|
|
AC_DEFINE(BROKEN_PWRITE)
|
|
AH_TEMPLATE([BROKEN_PWRITE], [
|
|
Define to 1 if the `pwrite' function is broken.
|
|
])
|
|
;;
|
|
esac
|
|
|
|
AC_ARG_ENABLE([db],
|
|
[AS_HELP_STRING([--enable-db], [include DB implementation])])
|
|
AC_SUBST(WITH_DB, $enable_db)
|
|
AC_CHECK_FUNCS(issetugid)
|
|
|
|
AC_ARG_ENABLE([bsd-getopt],
|
|
[AS_HELP_STRING([--enable-bsd-getopt],
|
|
[force use of BSDish getopt implementation])])
|
|
|
|
AC_CHECK_DECLS([optarg, optind, optreset], [:], [:], [
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
])
|
|
|
|
our_getopt_long=no
|
|
AC_CHECK_HEADERS([getopt.h],
|
|
[ AC_CHECK_TYPES([struct option], [:],
|
|
[ our_getopt_long=yes ], [#include <getopt.h>])],
|
|
[ our_getopt_long=yes ]
|
|
)
|
|
|
|
if test "$enable_bsd_getopt" = yes; then
|
|
if test "$ac_cv_have_decl_optreset" = no; then
|
|
AC_MSG_NOTICE([Using included getopt and getopt_long])
|
|
AC_LIBOBJ(getopt)
|
|
our_getopt_long=yes
|
|
fi
|
|
fi
|
|
|
|
if test "$our_getopt_long" = "yes"; then
|
|
AC_LIBOBJ(getopt_long)
|
|
fi
|
|
|
|
dnl Check that this vis.h has *vis()-related functions because Solaris'
|
|
dnl vis.h doesn't. Also, only consider the header found if it defines
|
|
dnl all of the functions that we need.
|
|
dnl
|
|
pkg_use_nbcompat_vis=yes
|
|
AC_CHECK_HEADERS([vis.h], [
|
|
AC_MSG_TRY_COMPILE([for VIS_WHITE in vis.h], pkg_cv_have_vis_white, [
|
|
#include <sys/types.h>
|
|
#include <vis.h>
|
|
], [ int X = VIS_WHITE; ], [
|
|
AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis])
|
|
AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis],
|
|
[pkg_use_nbcompat_vis=no],
|
|
[pkg_use_nbcompat_vis=yes; break])
|
|
])
|
|
])
|
|
|
|
if test $pkg_use_nbcompat_vis = yes; then
|
|
AC_DEFINE(HAVE_NBCOMPAT_VIS)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_VIS], [
|
|
Define to 1 if the `vis' function is built into the library.
|
|
])
|
|
AC_LIBOBJ(vis)
|
|
AC_LIBOBJ(unvis)
|
|
fi
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C___ATTRIBUTE__
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UINTPTR_T
|
|
AC_TYPE_INT8_T
|
|
AC_TYPE_INT16_T
|
|
AC_TYPE_INT32_T
|
|
AC_TYPE_INT64_T
|
|
AC_TYPE_UINT8_T
|
|
AC_TYPE_UINT16_T
|
|
AC_TYPE_UINT32_T
|
|
AC_TYPE_UINT64_T
|
|
AC_CHECK_TYPES([long long, long double],[],[],
|
|
[#if STDC_HEADERS
|
|
#include <stdlib.h>
|
|
#include <stddef.h>
|
|
#endif
|
|
#if HAVE_INTTYPES_H
|
|
#include <inttypes.h>
|
|
#endif
|
|
#if HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#if HAVE_SYS_BITYPES_H
|
|
#include <sys/bitypes.h>
|
|
#endif])
|
|
AC_CHECK_TYPES([fsid_t],[],[],
|
|
[#if HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#if HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
#if HAVE_SYS_MOUNT_H
|
|
#include <sys/mount.h>
|
|
#endif
|
|
#if HAVE_SYS_VFS_H
|
|
#include <sys/vfs.h>
|
|
#endif])
|
|
AC_C_BIGENDIAN
|
|
AC_CHECK_SIZEOF(off_t, 0)
|
|
|
|
# Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_STRERROR_R
|
|
AC_FUNC_VFORK
|
|
AC_FUNC_VPRINTF
|
|
|
|
AC_CHECK_DECLS([snprintf, vasprintf], [], [], [#include <stdio.h>])
|
|
|
|
case $host_os in
|
|
darwin*)
|
|
# NetBSD PR 38488: warnx(3) escapes certain characters like \n
|
|
ac_cv_func_warn=no
|
|
;;
|
|
esac
|
|
|
|
AC_REPLACE_FUNCS([asprintf err fgetln fnmatch fparseln getenv isblank \
|
|
lchflags lchmod lchown lutimes mkdtemp mkstemp setenv setgroupent \
|
|
setpassent setprogname shquote snprintf statvfs strdup strerror \
|
|
strlcat strlcpy strmode strsep strtoll unsetenv usleep utimes warn
|
|
])
|
|
|
|
AC_SEARCH_LIBS(socket, [socket network])
|
|
AC_CHECK_LIB(nsl, gethostbyname)
|
|
|
|
need_getaddrinfo=no
|
|
AC_CHECK_TYPES([socklen_t], [], [], [[#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
|
|
#include <sys/socket.h>
|
|
]])
|
|
AC_CHECK_TYPES([struct addrinfo], [], [], [[#include <netdb.h>]])
|
|
AC_CHECK_TYPES([struct in6_addr], [], [], [[#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
#include <netinet/in.h>
|
|
]])
|
|
AC_CHECK_TYPES([struct sockaddr_in6], [], [], [[#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
#include <netinet/in.h>
|
|
]])
|
|
AC_CHECK_TYPES([struct sockaddr_storage], [], [], [[#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
#include <sys/socket.h>
|
|
]])
|
|
dnl Assume that freeaddrinfo is only missing if getaddrinfo is also missing
|
|
AC_CHECK_FUNCS([getnameinfo gai_strerror getaddrinfo], [:],
|
|
[need_getaddrinfo=yes])
|
|
if test $need_getaddrinfo = yes; then
|
|
AC_LIBOBJ(getaddrinfo)
|
|
fi
|
|
|
|
need_findenv=no
|
|
AC_CHECK_FUNCS([getenv setenv unsetenv], [:], [need_findenv=yes])
|
|
if test $need_findenv = yes; then
|
|
AC_LIBOBJ(findenv)
|
|
fi
|
|
|
|
need_gettemp=no
|
|
AC_CHECK_FUNCS([mkdtemp mkstemp], [:], [ need_gettemp=yes ])
|
|
if test $need_gettemp = yes; then
|
|
AC_LIBOBJ(gettemp)
|
|
fi
|
|
|
|
AC_CHECK_FUNCS([bcopy bzero memset memcpy setlocale])
|
|
|
|
need_setmode=no
|
|
AC_CHECK_FUNCS([getmode setmode], [:], [need_setmode=yes])
|
|
|
|
if test $need_setmode = yes; then
|
|
AC_LIBOBJ(setmode)
|
|
fi
|
|
|
|
AC_CHECK_DECLS([endgrent, endpwent, setpassent])
|
|
|
|
need_pwcache=no
|
|
AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \
|
|
pwcache_userdb uid_from_user user_from_uid \
|
|
], [:], [need_pwcache=yes])
|
|
|
|
if test $need_pwcache = yes; then
|
|
AC_LIBOBJ(pwcache)
|
|
fi
|
|
|
|
AC_CHECK_FUNC(fts_open, [:], [
|
|
AC_DEFINE(HAVE_NBCOMPAT_FTS, 1)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_FTS], [
|
|
Define to 1 if the `fts_*' functions are built into the
|
|
library.
|
|
])
|
|
AC_LIBOBJ(fts)
|
|
])
|
|
|
|
AC_CHECK_FUNC(timegm, [:], [AC_LIBOBJ(timegm)])
|
|
|
|
# Handle Darwin 7 having a poll() compatibility function. Be
|
|
# conservative -- if we don't find one of <poll.h> or <sys/poll.h>, then
|
|
# use our own poll() implementation.
|
|
#
|
|
pkg_cv_have_poll_h=no
|
|
AC_CHECK_HEADERS([poll.h sys/poll.h])
|
|
AC_CHECK_HEADERS([poll.h sys/poll.h], [pkg_cv_have_poll_h=yes])
|
|
|
|
pkg_use_nbcompat_poll=yes
|
|
if test $pkg_cv_have_poll_h = yes; then
|
|
pkg_use_nbcompat_poll=no
|
|
fi
|
|
|
|
if test $pkg_cv_have_poll_h = yes -o test $pkg_cv_have_sys_poll_h = yes; then
|
|
AC_CHECK_FUNC(poll, [
|
|
AC_MSG_TRY_COMPILE([if poll() is implemented natively],
|
|
pkg_cv_native_poll,
|
|
[ #if HAVE_POLL_H
|
|
#include <poll.h>
|
|
#endif
|
|
#if HAVE_SYS_POLL_H
|
|
#include <sys/poll.h>
|
|
#endif
|
|
],
|
|
[ #ifdef _POLL_EMUL_H_
|
|
#error "poll() is emulated"
|
|
#endif
|
|
],
|
|
[pkg_use_nbcompat_poll=no],
|
|
[pkg_use_nbcompat_poll=yes])
|
|
])
|
|
fi
|
|
|
|
if test $pkg_use_nbcompat_poll = yes; then
|
|
AC_DEFINE(HAVE_NBCOMPAT_POLL, 1)
|
|
AH_TEMPLATE([HAVE_NBCOMPAT_POLL], [
|
|
Define to 1 if the `poll' function is built into the library.
|
|
])
|
|
AC_LIBOBJ(poll)
|
|
fi
|
|
|
|
AC_CHECK_FUNCS([getpassphrase getpgrp memmove select])
|
|
|
|
AC_CHECK_FUNC(getpgrp, [AC_FUNC_GETPGRP])
|
|
|
|
AC_CHECK_MEMBERS([struct statfs.f_flags], [:], [:],
|
|
[ #include <sys/statfs.h> ])
|
|
AC_CHECK_MEMBERS([struct statfs.f_fsize], [:], [:],
|
|
[ #include <sys/statfs.h> ])
|
|
AC_CHECK_MEMBERS([struct statfs.f_iosize], [:], [:],
|
|
[ #include <sys/statfs.h> ])
|
|
AC_CHECK_MEMBERS([struct dirent.d_namlen, DIR.dd_fd], [:], [:],
|
|
[ #include <sys/types.h>
|
|
#if HAVE_DIRENT_H
|
|
# include <dirent.h>
|
|
#else
|
|
# define dirent direct
|
|
# if HAVE_SYS_NDIR_H
|
|
# include <sys/ndir.h>
|
|
# endif
|
|
# if HAVE_SYS_DIR_H
|
|
# include <sys/dir.h>
|
|
# endif
|
|
# if HAVE_NDIR_H
|
|
# include <ndir.h>
|
|
# endif
|
|
#endif ])
|
|
|
|
AC_MSG_CHECKING([for dirfd])
|
|
AC_TRY_LINK(
|
|
[ #include <sys/types.h>
|
|
#if HAVE_DIRENT_H
|
|
# include <dirent.h>
|
|
#else
|
|
# define dirent direct
|
|
# if HAVE_SYS_NDIR_H
|
|
# include <sys/ndir.h>
|
|
# endif
|
|
# if HAVE_SYS_DIR_H
|
|
# include <sys/dir.h>
|
|
# endif
|
|
# if HAVE_NDIR_H
|
|
# include <ndir.h>
|
|
# endif
|
|
#endif
|
|
int dummy_var;
|
|
], [ dummy_var = dirfd((DIR *)0) ],
|
|
[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE([HAVE_DIRFD], [1], [Define if dirfd is either a function or a macro.])
|
|
], [ AC_MSG_RESULT(no) ]
|
|
|
|
)
|
|
|
|
if test $ac_cv_type_long_long = yes; then
|
|
|
|
dnl We assume that if sprintf() supports %lld or %qd,
|
|
dnl then all of *printf() does. If not, disable long long
|
|
dnl support because we don't know how to display it.
|
|
|
|
AC_MSG_CHECKING(*printf() support for %lld)
|
|
can_printf_longlong=no
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
int main() {
|
|
char buf[100];
|
|
sprintf(buf, "%lld", 4294967300LL);
|
|
return (strcmp(buf, "4294967300"));
|
|
}
|
|
], [
|
|
AC_MSG_RESULT(yes)
|
|
can_printf_longlong=yes
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
], [:])
|
|
|
|
if test $can_printf_longlong != yes; then
|
|
AC_MSG_CHECKING(*printf() support for %qd)
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
int main() {
|
|
char buf[100];
|
|
sprintf(buf, "%qd", 4294967300LL);
|
|
return (strcmp(buf, "4294967300"));
|
|
}
|
|
], [
|
|
AC_MSG_RESULT(yes)
|
|
can_printf_longlong=yes
|
|
AC_DEFINE(HAVE_PRINTF_QD, 1)
|
|
AH_TEMPLATE([HAVE_PRINTF_QD], [
|
|
Define to 1 if *printf() uses %qd to print
|
|
`long long' (otherwise uses %lld).
|
|
])
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
], [:])
|
|
fi
|
|
|
|
if test $can_printf_longlong = yes; then
|
|
AC_DEFINE(HAVE_WORKING_LONG_LONG, 1)
|
|
AH_TEMPLATE([HAVE_WORKING_LONG_LONG], [
|
|
Define to 1 if `long long' is supported and
|
|
sizeof(off_t) >= 8.
|
|
])
|
|
AC_REPLACE_FUNCS(strtoll)
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
dnl Check if vsnprintf returns the number of bytes that would have been
|
|
dnl written, had the buffer been large enough.
|
|
|
|
AC_MSG_CHECKING(if vsnprintf is standards compliant)
|
|
have_std_vsnprintf=no
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
void dotest(char *fmt, ...) {
|
|
char buf[3];
|
|
va_list ap;
|
|
va_start(ap, fmt);
|
|
exit(snprintf(buf, 3, fmt, ap) == 4 ? 0 : 1);
|
|
}
|
|
int main() {
|
|
dotest("test");
|
|
}
|
|
], [
|
|
AC_MSG_RESULT(yes)
|
|
have_std_vsnprintf=yes
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
], [:])
|
|
|
|
if test $have_std_vsnprintf = no; then
|
|
AC_LIBOBJ(snprintf)
|
|
fi
|
|
|
|
AH_BOTTOM([
|
|
/* NBCOMPAT template section follows. */
|
|
|
|
#ifndef HAVE___ATTRIBUTE__
|
|
# define __attribute__(x)
|
|
#endif
|
|
])
|
|
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|