aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorJon Dugan <jdugan@x1024.net>2007-08-29 21:57:27 +0000
committerJon Dugan <jdugan@x1024.net>2007-08-29 21:57:27 +0000
commitaa594bbb792dcaf8e9610c7a4e92f9f5f445c80c (patch)
treea53f4e7df5e8edde82e195e4624b0cfc69bd2112 /configure.ac
parentfc458a9768b0de46f04646537b30456fd2374996 (diff)
downloadiperf3-aa594bbb792dcaf8e9610c7a4e92f9f5f445c80c.tar.gz
import of iperf-2.0 release
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac289
1 files changed, 289 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..b5c66f6
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,289 @@
+dnl ===================================================================
+dnl configure.ac
+dnl Process this file with autogen.sh to produce configure files
+dnl ===================================================================
+
+
+AC_INIT(Iperf,2.0)
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE
+
+
+AC_ARG_ENABLE(ipv6, AC_HELP_STRING([--disable-ipv6],
+ [disable ipv6 support (default is autodetect)]),
+ ac_cv_have_ipv6=$enable_ipv6,)
+
+AC_ARG_ENABLE(multicast, AC_HELP_STRING([--disable-multicast],
+ [disable multicast support (default is autodetect)]),
+ ac_cv_multicast=$enable_multicast,)
+
+AC_ARG_ENABLE(threads, AC_HELP_STRING([--disable-threads],
+ [disable thread support (default is autodetect)]))
+
+AC_ARG_ENABLE(debuginfo, AC_HELP_STRING([--enable-debuginfo],
+ [enable debugging info for sockets (default is no)]),
+ enable_debuginfo=$enableval,
+ enable_debuginfo=no)
+
+AC_ARG_ENABLE(web100, AC_HELP_STRING([--disable-web100],
+ [disable web100 support (default is autodetect)]))
+
+
+dnl ===================================================================
+dnl Checks for programs
+dnl ===================================================================
+
+AC_PROG_CXX
+CXXFLAGS=`echo " $CXXFLAGS " | sed -e "s/ -g / /"` # do not want it implicitly
+AC_PROG_CC
+CFLAGS=`echo " $CFLAGS " | sed -e "s/ -g / /"` # do not want it implicitly
+AC_ISC_POSIX
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+AC_CANONICAL_HOST
+
+dnl ===================================================================
+dnl Checks for libraries.
+dnl ===================================================================
+
+dnl check for -lpthread
+
+if test "$enable_threads" != no; then
+ ACX_PTHREAD()
+ if test "$acx_pthread_ok" = yes; then
+ AC_DEFINE([HAVE_POSIX_THREAD], 1,)
+ AC_DEFINE([_REENTRANT], 1,)
+ fi
+fi
+
+dnl check for -lnsl, -lsocket
+AC_CHECK_FUNC(gethostbyname,,AC_CHECK_LIB(nsl, gethostbyname))
+AC_CHECK_FUNC(socket,,AC_CHECK_LIB(socket, socket))
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([arpa/inet.h libintl.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h])
+
+dnl ===================================================================
+dnl Checks for typedefs, structures
+dnl ===================================================================
+
+AC_C_CONST
+AC_TYPE_SIZE_T
+AC_CHECK_TYPES(ssize_t,,AC_DEFINE_UNQUOTED(ssize_t, int))
+AC_HEADER_TIME
+AC_STRUCT_TM
+
+dnl these intXX_t and u_intXX_t need to be defined to be the right size.
+
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
+
+AC_CHECK_SIZEOF(unsigned short)
+AC_CHECK_SIZEOF(unsigned int)
+AC_CHECK_SIZEOF(unsigned long)
+AC_CHECK_SIZEOF(unsigned long long)
+
+AH_TEMPLATE(int16_t)
+AH_TEMPLATE(int32_t)
+AH_TEMPLATE(int64_t)
+AH_TEMPLATE(u_int16_t)
+AH_TEMPLATE(u_int32_t)
+AH_TEMPLATE(u_int64_t)
+
+DAST_REPLACE_TYPE(int16_t, 2)
+DAST_REPLACE_TYPE(int32_t, 4)
+DAST_REPLACE_TYPE(int64_t, 8)
+
+DAST_REPLACE_TYPE_UNSIGNED(u_int16_t, 2)
+DAST_REPLACE_TYPE_UNSIGNED(u_int32_t, 4)
+DAST_REPLACE_TYPE_UNSIGNED(u_int64_t, 8)
+
+AC_CACHE_CHECK(3rd argument of accept, ac_cv_accept_arg, [
+ dnl Try socklen_t (POSIX)
+ DAST_ACCEPT_ARG(socklen_t)
+
+ dnl Try int (original BSD)
+ DAST_ACCEPT_ARG(int)
+
+ dnl Try size_t (older standard; AIX)
+ DAST_ACCEPT_ARG(size_t)
+
+ dnl Try short (shouldn't be)
+ DAST_ACCEPT_ARG(short)
+
+ dnl Try long (shouldn't be)
+ DAST_ACCEPT_ARG(long)
+])
+
+if test -z "$ac_cv_accept_arg" ; then
+ ac_cv_accept_arg=int
+fi
+
+AC_DEFINE_UNQUOTED([Socklen_t], $ac_cv_accept_arg, [Define 3rd arg of accept])
+
+dnl Checks for library functions.
+AC_FUNC_FORK
+AC_FUNC_MALLOC
+AC_FUNC_MEMCMP
+AC_FUNC_SELECT_ARGTYPES
+AC_TYPE_SIGNAL
+AC_FUNC_STRFTIME
+AC_FUNC_VPRINTF
+AC_CHECK_FUNCS([atexit gettimeofday memset pthread_cancel select strchr strerror strtol usleep])
+AC_REPLACE_FUNCS(snprintf inet_pton inet_ntop gettimeofday)
+
+dnl Gotten from some NetBSD configure.in
+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.
+
+AH_TEMPLATE(HAVE_QUAD_SUPPORT)
+AH_TEMPLATE(HAVE_PRINTF_QD)
+
+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", 21726587590LL);
+ return (strcmp(buf, "21726587590"));
+ }
+ ], [
+ 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", 21726587590LL);
+ return (strcmp(buf, "21726587590"));
+ }
+ ], [
+ AC_MSG_RESULT(yes)
+ can_printf_longlong=yes
+ AC_DEFINE(HAVE_PRINTF_QD, 1)
+ ], [
+ AC_MSG_RESULT(no)
+ ], [ : ])
+fi
+
+if test $can_printf_longlong = yes; then
+ AC_DEFINE(HAVE_QUAD_SUPPORT, 1)
+fi
+
+dnl ===================================================================
+dnl Check for compiler characteristics
+
+DAST_CHECK_BOOL
+
+AC_C_BIGENDIAN
+
+dnl ===================================================================
+dnl Check for system services
+
+dnl check for multicast
+if test "$ac_cv_multicast" != no; then
+ AC_CHECK_TYPES(struct ip_mreq,,,[#include "include/headers_slim.h"])
+ AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "include/headers_slim.h"])
+ AC_MSG_CHECKING(for multicast support)
+ ac_cv_multicast=no
+ if test "$ac_cv_have_decl_IP_ADD_MEMBERSHIP" = yes; then
+ if test "$ac_cv_type_struct_ip_mreq" = yes; then
+ ac_cv_multicast=yes
+ fi
+ fi
+ AC_MSG_RESULT($ac_cv_multicast)
+ if test "$ac_cv_multicast" = yes; then
+ AC_DEFINE([HAVE_MULTICAST], 1, [Define to enable multicast support])
+ fi
+fi
+
+dnl check for IPv6
+if test "$ac_cv_have_ipv6" != no; then
+ AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "include/headers_slim.h"])
+ AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "include/headers_slim.h"])
+ AC_CHECK_DECLS(AF_INET6,,,[#include "include/headers_slim.h"])
+ AC_MSG_CHECKING(for IPv6 headers and structures)
+ ac_cv_have_ipv6=no
+ if test "$ac_cv_type_struct_sockaddr_storage" = yes; then
+ if test "$ac_cv_type_struct_sockaddr_in6" = yes; then
+ if test "$ac_cv_have_decl_AF_INET6" = yes; then
+ AC_DEFINE([HAVE_IPV6], 1, [Define to enable IPv6 support])
+ ac_cv_have_ipv6=yes
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($ac_cv_have_ipv6)
+fi
+
+if test "$ac_cv_have_ipv6" = yes; then
+ if test "$ac_cv_multicast" = yes; then
+ AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "include/headers_slim.h"])
+ AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "include/headers_slim.h"])
+ AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "include/headers_slim.h"])
+ AC_MSG_CHECKING(for IPv6 multicast support)
+ ac_cv_have_ipv6_multicast=no
+ if test "$ac_cv_type_struct_ipv6_mreq" = yes; then
+ if test "$ac_cv_have_decl_IPV6_ADD_MEMBERSHIP" = yes; then
+ if test "$ac_cv_have_decl_IPV6_MULTICAST_HOPS" = yes; then
+ AC_DEFINE([HAVE_IPV6_MULTICAST], 1, [Define to enable IPv6 multicast support])
+ ac_cv_have_ipv6_multicast=yes
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($ac_cv_have_ipv6_multicast)
+ fi
+fi
+
+if test "$enable_debuginfo" = yes; then
+AC_DEFINE([DBG_MJZ], 1, [Define if debugging info is desired])
+fi
+
+if test "$enable_web100" != no; then
+if test -e "/proc/web100"; then
+if test -d "/proc/web100"; then
+if test -e "/proc/web100/header"; then
+if test -f "/proc/web100/header"; then
+if test -r "/proc/web100/header"; then
+AM_PATH_WEB100()
+if test "$web100_success" = yes; then
+AC_DEFINE([HAVE_WEB100], 1, [Define if Web100 is desired and available])
+fi fi fi fi fi fi
+fi
+
+dnl GNU make allows us to use the $(strip ...) builtin which eliminates a
+dnl large amount of extra whitespace in compile lines.
+AC_MSG_CHECKING(whether make is GNU make)
+STRIP_BEGIN=
+STRIP_END=
+if $ac_make --version 2> /dev/null | grep '^GNU Make ' > /dev/null ; then
+ STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
+ STRIP_END=')'
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl some Make 3.79 $(strip ) versions are broken and require an empty arg
+STRIP_DUMMY=
+AC_SUBST(STRIP_DUMMY)
+AC_SUBST(STRIP_BEGIN)
+AC_SUBST(STRIP_END)
+
+AC_CONFIG_FILES([Makefile
+ compat/Makefile
+ doc/Makefile
+ include/Makefile
+ src/Makefile])
+AC_OUTPUT