diff --git a/configure.in b/configure.in
index ca890f768f379b7f2026492ab1c8c978d5a5aaae..6c98fe9a1564fda61b2a98016809705fff3c8895 100644 (file)
--- a/configure.in
+++ b/configure.in
AC_PROG_INSTALL
AC_SUBST(INSTALL)
+AC_PROG_CC
+AC_PROG_MAKE_SET
+AC_PROG_AWK
+
+AC_FUNC_GETLOADAVG
+AM_FUNC_STRTOD
+AM_WITH_REGEX
AC_PROG_RANLIB
AC_PATH_PROG(ACLOCAL,aclocal)
LDFLAGS="$LDFLAGS -L."
dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_MAKE_SET
-AC_PROG_AWK
-
AC_PATH_PROG(PYTHON,python)
AC_PATH_PROG(PERL,perl)
AC_PATH_PROG(SH,sh)
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h unistd.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
+AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
-dnl AC_CHECK_MEMBER(struct timeb.millitm,[AC_DEFINE(HAVE_STRUCT_TIMEB_MILLITM)],,[#include <sys/timeb.h>])
+AC_CHECK_SIZEOF(int,cross)
+AC_CHECK_SIZEOF(long,cross)
+AC_CHECK_SIZEOF(short,cross)
-dnl EXTRA_LIBRARIES="libgetopt.a libsnprintf.a"
-dnl noinst_LIBRARIES="libgetopt.a libsnprintf.a"
-dnl libgetopt_a_SOURCES="getopt.c getopt1.c"
-dnl libgetopt_a_DEPENDENCIES=getopt.h
-dnl libsnprintf_a_SOURCES=snprintf.c
-dnl AC_SUBST(noinst_LIBRARIES)
-dnl AC_SUBST(libgetopt_a_SOURCES)
-dnl AC_SUBST(libgetopt_a_DEPENDENCIES)
-dnl AC_SUBST(libsnprintf_a_SOURCES)
+AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
+AC_TRY_RUN([#include <stdio.h>
+main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
+ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
+if test x"$ac_cv_have_longlong" = x"yes"; then
+ AC_DEFINE(HAVE_LONGLONG)
+fi
+
+#
+# Check if the compiler supports the LL prefix on long long integers.
+# AIX needs this.
+
+AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
+ AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
+ ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
+if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
+ AC_DEFINE(COMPILER_SUPPORTS_LL)
+fi
+AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
+AC_TRY_LINK([#include <stdarg.h>
+va_list ap1,ap2;], [__va_copy(ap1,ap2);],
+ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
+if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
+ AC_DEFINE(HAVE_VA_COPY)
+fi
+
+AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <stdarg.h>
+void foo(const char *format, ...) {
+ va_list ap;
+ int len;
+ char buf[5];
+
+ va_start(ap, format);
+ len = vsnprintf(buf, 0, format, ap);
+ va_end(ap);
+ if (len != 5) exit(1);
+
+ va_start(ap, format);
+ len = vsnprintf(0, 0, format, ap);
+ va_end(ap);
+ if (len != 5) exit(1);
+
+ if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
+
+ exit(0);
+}
+main() { foo("hello"); }
+],
+ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
+if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
+ AC_DEFINE(HAVE_C99_VSNPRINTF)
+fi
dnl We used to not do long options unless a compatible lib was found
dnl Now we provide code and make libgetopt if native is not suitable
@@ -302,7 +354,7 @@ AC_CHECK_FUNCS(getopt_long_only,,LIBS="$LIBS -lgetopt" DEPLIBS="$DEPLIBS libgeto
AC_CHECK_FUNC(asprintf,,LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
dnl Checks for library functions.
-AC_CHECK_FUNCS(select socket strdup strstr strtod strtol strtoul gettimeofday)
+AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul gettimeofday)
AC_MSG_CHECKING(for type of socket size)
AC_TRY_COMPILE([#include <stdlib.h>