dnl Process this file with autoconf to produce a configure script. AC_REVISION($Revision$) AC_INIT(snprintf.c) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(roken,10) dnl options berkeley_db=db AC_ARG_WITH(berkeley-db, [ --without-berkeley-db if you don't want berkeley db],[ if test "$withval" = no; then berkeley_db="" fi ]) dnl Checks for programs AC_PROG_CC AC_PROG_AWK AC_CYGWIN AC_OBJEXT AC_EXEEXT AM_PROG_LIBTOOL AC_MIPS_ABI CC="$CC $abi" libdir="$libdir$abilibdirext" dnl C characteristics AC_C___ATTRIBUTE__ AC_C_INLINE AC_C_CONST AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs) dnl C types AC_TYPE_SIZE_T AC_CHECK_TYPE_EXTRA(ssize_t, int, [#include ]) AC_TYPE_PID_T AC_TYPE_UID_T AC_HAVE_TYPE([long long]) AC_TYPE_SIGNAL if test "$ac_cv_type_signal" = "void" ; then AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.]) fi AC_SUBST(VOID_RETSIGTYPE) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_TIME if test "$berkeley_db"; then AC_CHECK_HEADERS([ \ db.h \ db_185.h \ ]) fi AC_CHECK_HEADERS([\ arpa/inet.h \ arpa/nameser.h \ config.h \ crypt.h \ dbm.h \ db.h \ dirent.h \ errno.h \ err.h \ fcntl.h \ grp.h \ ndbm.h \ netdb.h \ netinet/in.h \ netinet/in6.h \ netinet/in_systm.h \ netinet6/in6.h \ paths.h \ pwd.h \ resolv.h \ rpcsvc/dbm.h \ rpcsvc/ypclnt.h \ shadow.h \ sys/ioctl.h \ sys/param.h \ sys/proc.h \ sys/resource.h \ sys/socket.h \ sys/stat.h \ sys/sysctl.h \ sys/time.h \ sys/tty.h \ sys/types.h \ sys/uio.h \ sys/utsname.h \ sys/wait.h \ syslog.h \ termios.h \ unistd.h \ userconf.h \ usersec.h \ winsock.h \ ]) CHECK_NETINET_IP_AND_TCP AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes) AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes) dnl Check for functions and libraries AC_KRB_IPV6 AC_FIND_FUNC(socket, socket) AC_FIND_FUNC(gethostbyname, nsl) AC_FIND_FUNC(syslog, syslog) AC_FIND_FUNC(gethostbyname2, inet6 ip6) AC_FIND_FUNC(res_search, resolv, [ #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif #ifdef HAVE_RESOLV_H #include #endif ], [0,0,0,0,0]) AC_FIND_FUNC(dn_expand, resolv, [ #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif #ifdef HAVE_RESOLV_H #include #endif ], [0,0,0,0,0]) AC_BROKEN_SNPRINTF AC_BROKEN_VSNPRINTF AC_BROKEN_GLOB if test "$ac_cv_func_glob_working" != yes; then LIBOBJS="$LIBOBJS glob.o" fi AM_CONDITIONAL(have_glob_h, test "$ac_cv_func_glob_working" = yes) dnl these should happen after tests for *snprintf AC_FIND_FUNC_NO_LIBS2(dbopen, $berkeley_db, [ #include #if defined(HAVE_DB_185_H) #include #elif defined(HAVE_DB_H) #include #endif ],[NULL, 0, 0, 0, NULL]) AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm) DBLIB="$LIB_dbopen" if test "$LIB_dbopen" != "$LIB_dbm_firstkey"; then DBLIB="$DBLIB $LIB_dbm_firstkey" fi AC_SUBST(DBLIB)dnl AC_CHECK_FUNCS([ \ asnprintf \ asprintf \ cgetent \ getconfattr \ getrlimit \ getspnam \ sysconf \ sysctl \ uname \ vasnprintf \ vasprintf \ ]) if test "$ac_cv_func_cgetent" = no; then LIBOBJS="$LIBOBJS getcap.o" fi AC_FUNC_GETLOGIN AC_FIND_FUNC_NO_LIBS(getsockopt,, [#ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif], [0,0,0,0,0]) AC_FIND_FUNC_NO_LIBS(setsockopt,, [#ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif], [0,0,0,0,0]) AC_FIND_IF_NOT_BROKEN(hstrerror, resolv, [#ifdef HAVE_NETDB_H #include #endif], 17) if test "$ac_cv_func_hstrerror" = yes; then AC_NEED_PROTO([ #ifdef HAVE_NETDB_H #include #endif], hstrerror) fi dnl sigh, wish this could be done in a loop if test "$ac_cv_func_asprintf" = yes; then AC_NEED_PROTO([ #include #include ], asprintf)dnl fi if test "$ac_cv_func_vasprintf" = yes; then AC_NEED_PROTO([ #include #include ], vasprintf)dnl fi if test "$ac_cv_func_asnprintf" = yes; then AC_NEED_PROTO([ #include #include ], asnprintf)dnl fi if test "$ac_cv_func_vasnprintf" = yes; then AC_NEED_PROTO([ #include #include ], vasnprintf)dnl fi AC_BROKEN([ \ chown \ copyhostent \ daemon \ err \ errx \ fchown \ flock \ fnmatch \ freeaddrinfo \ freehostent \ gai_strerror \ getaddrinfo \ getdtablesize \ getegid \ geteuid \ getgid \ gethostname \ getipnodebyaddr \ getipnodebyname \ getnameinfo \ getopt \ gettimeofday \ getuid \ getusershell \ inet_aton \ inet_ntop \ inet_pton \ initgroups \ innetgr \ iruserok \ lstat \ memmove \ mkstemp \ putenv \ rcmd \ readv \ recvmsg \ sendmsg \ setegid \ setenv \ seteuid \ strcasecmp \ strdup \ strerror \ strftime \ strlcat \ strlcpy \ strlwr \ strncasecmp \ strndup \ strnlen \ strptime \ strsep \ strsep_copy \ strtok_r \ strupr \ swab \ unsetenv \ verr \ verrx \ vsyslog \ vwarn \ vwarnx \ warn \ warnx \ writev \ ]) AC_NEED_PROTO([#include ], setenv) AC_NEED_PROTO([#include ], unsetenv) AC_NEED_PROTO([#include ], gethostname) AC_NEED_PROTO([#include ], mkstemp) AC_NEED_PROTO([#include ], getusershell) AC_NEED_PROTO([ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif], inet_aton) AC_FIND_FUNC_NO_LIBS(crypt, crypt)dnl AC_CACHE_CHECK(if realloc if broken, ac_cv_func_realloc_broken, [ ac_cv_func_realloc_broken=no AC_TRY_RUN([ #include #include int main() { return realloc(NULL, 17) == NULL; } ],:, ac_cv_func_realloc_broken=yes, :) ]) if test "$ac_cv_func_realloc_broken" = yes ; then AC_DEFINE(BROKEN_REALLOC, 1, [Define if realloc(NULL) doesn't work.]) fi dnl AC_KRB_FUNC_GETCWD_BROKEN dnl dnl Checks for prototypes and declarations dnl AC_PROTO_COMPAT([ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_NETDB_H #include #endif ], gethostbyname, struct hostent *gethostbyname(const char *)) AC_PROTO_COMPAT([ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_NETDB_H #include #endif ], gethostbyaddr, struct hostent *gethostbyaddr(const void *, size_t, int)) AC_PROTO_COMPAT([ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_NETDB_H #include #endif ], getservbyname, struct servent *getservbyname(const char *, const char *)) AC_PROTO_COMPAT([ #ifdef HAVE_SYSLOG_H #include #endif ], openlog, void openlog(const char *, int, int)) AC_NEED_PROTO([ #ifdef HAVE_CRYPT_H #include #endif #ifdef HAVE_UNISTD_H #include #endif ], crypt) AC_NEED_PROTO([ #include ], strtok_r) AC_NEED_PROTO([ #include ], strsep) dnl variables AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_NETDB_H #include #endif], h_errno) AC_CHECK_VAR([#ifdef HAVE_NETDB_H #include #endif], h_errlist) AC_CHECK_VAR([#ifdef HAVE_NETDB_H #include #endif], h_nerr) AC_CHECK_VAR([#ifdef HAVE_ERR_H #include #endif],[__progname]) AC_CHECK_DECLARATION([#include #ifdef HAVE_UNISTD_H #include #endif], optarg) AC_CHECK_DECLARATION([#include #ifdef HAVE_UNISTD_H #include #endif], optind) AC_CHECK_DECLARATION([#include #ifdef HAVE_UNISTD_H #include #endif], opterr) AC_CHECK_DECLARATION([#include #ifdef HAVE_UNISTD_H #include #endif], optopt) AC_CHECK_DECLARATION([#include ], environ) dnl dnl Check for fields in struct tm dnl AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include ]) AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include ]) dnl dnl or do we have a variable `timezone' ? dnl AC_CHECK_VAR( [#include ], timezone) AC_HAVE_TYPE([sa_family_t],[#include ]) AC_HAVE_TYPE([socklen_t],[#include ]) AC_HAVE_TYPE([struct sockaddr], [#include ]) AC_HAVE_TYPE([struct sockaddr_storage], [#include ]) AC_HAVE_TYPE([struct addrinfo], [#include ]) dnl dnl Check for struct winsize dnl AC_KRB_STRUCT_WINSIZE dnl dnl Check for struct spwd dnl AC_KRB_STRUCT_SPWD dnl dnl Check for sa_len in struct sockaddr dnl AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include #include ]) LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'` AC_SUBST(LTLIBOBJS) AC_OUTPUT(Makefile)