aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac744
1 files changed, 744 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..4c01090
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,744 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+FULL-PACKAGE-NAME=netperf
+VERSION=2.7.0
+BUG-REPORT-ADDRESS=netperf-feedback@netperf.org
+
+AC_PREREQ(2.59)
+AC_INIT(netperf, 2.7.0)
+
+# Inherit compiler flags from the environment...
+CFLAGS="${CFLAGS:=}"
+CXXFLAGS="${CXXFLAGS:=}"
+
+# use the target version rather than host - one day we may want cross-compile
+AC_CANONICAL_TARGET
+AC_CONFIG_SRCDIR([src/hist.h])
+AM_INIT_AUTOMAKE([dist-zip])
+AM_CONFIG_HEADER(config.h)
+# AC_CONFIG_HEADER(config.h)
+
+AC_CONFIG_LIBOBJ_DIR(src/missing)
+
+# make sure we build netperf_version.h
+touch ${ac_top_srcdir}src/netperf_version.h.in
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_RANLIB
+
+AC_C_CONST
+
+# Checks for libraries.
+AC_HAVE_LIBRARY(m)
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+
+# lets keep this in some semblence of alphabetical order
+AC_CHECK_HEADERS([arpa/inet.h endian.h errno.h fcntl.h ifaddrs.h limits.h linux/tcp.h linux/socket.h malloc.h netdb.h netinet/in.h netinet/sctp.h sched.h signal.h stdlib.h string.h strings.h syscall.h sys/ioctl.h sys/mman.h sys/param.h sys/socket.h sys/stat.h sys/time.h sys/wait.h sys/ipc.h sys/sockio.h sys/sysinfo.h sys/wait.h stdlib.h unistd.h netinet/in_systm.h netinet/ip.h])
+
+# Some platforms require these. There may be a better way.
+AC_HAVE_LIBRARY(socket)
+if test "$ac_cv_lib_socket_main" = yes ; then
+ AC_HAVE_LIBRARY(nsl)
+ AC_HAVE_LIBRARY(sendfile)
+ AC_SYS_LARGEFILE
+fi
+
+# this one is for Tru64 and bind_to_cpu_id
+AC_HAVE_LIBRARY(mach)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+# AC_TYPE_SOCKLEN_T
+
+OLD_TYPE_SOCKLEN_T
+
+# AC_TYPE_IN_PORT_T
+AC_DECL_H_ERRNO
+AC_STRUCT_SOCKADDR_STORAGE
+AC_HEADER_TIME
+AC_HEADER_STDBOOL
+AC_CHECK_SA_LEN(ac_cv_sockaddr_has_sa_len)
+
+# Checks for library functions.
+# AC_FUNC_ERROR_AT_LINE
+AC_FUNC_FORK
+# AC_FUNC_MALLOC
+AC_FUNC_MMAP
+AC_FUNC_SELECT_ARGTYPES
+AC_FUNC_SETPGRP
+AC_TYPE_SIGNAL
+# AC_FUNC_STAT
+# remove pstat_getdynamic (at least for now) since we don't do
+# anything conditional with the check anyway...
+AC_CHECK_FUNCS([alarm bzero daemon gethostbyname gethrtime gettimeofday inet_ntoa memset memcpy munmap select setsid socket sqrt strcasecmp strchr strstr strtoul uname toupper])
+
+#AC_CONFIG_SUBDIRS(src/missing)
+
+# does this platform need the replacement getaddrinfo
+AC_CHECK_FUNCS([getnameinfo getaddrinfo inet_ntop getifaddrs])
+# AC_REPLACE_FUNCS([getaddrinfo])
+
+
+if test "$ac_cv_func_getaddrinfo$ac_cv_func_getnameinfo" != yesyes ; then
+ AC_MSG_NOTICE([Requesting replacement getaddrinfo/getnameinfo])
+ AC_LIBOBJ(getaddrinfo)
+ HAVE_MISSING=yes
+fi
+if test "$ac_cv_func_inet_ntop" != yes ; then
+ AC_MSG_NOTICE([Requesting replacement inet_ntop])
+ AC_LIBOBJ(inet_ntop)
+ HAVE_MISSING=yes
+fi
+AM_CONDITIONAL(NEED_LIBCOMPAT, test "$HAVE_MISSING" = "yes")
+
+AC_CHECK_FUNCS(sendfile)
+
+AC_CHECK_FUNCS(uname)
+
+# check for the various CPU binding calls
+AC_CHECK_FUNCS(mpctl processor_bind sched_setaffinity bind_to_cpu_id bindprocessor)
+
+# see if we should be enabling histogram support
+
+AC_MSG_CHECKING(whether to include histogram support)
+
+AC_ARG_ENABLE(histogram,
+ [AS_HELP_STRING([--enable-histogram],[include individual op timing, may affect result]) ])
+
+case "$enable_histogram" in
+ yes)
+ use_histogram=true
+ ;;
+ no)
+ use_histogram=false
+ ;;
+ '')
+ # whatever
+ use_histogram=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-histogram takes yes or no])
+ ;;
+esac
+
+if $use_histogram
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_histogram
+then
+ AC_DEFINE([WANT_HISTOGRAM],,[Define to one to enable histogram support. May affect results.])
+fi
+# see if we should be enabling histogram support
+
+AC_MSG_CHECKING(whether to include dirty support)
+
+AC_ARG_ENABLE(dirty,
+ [AS_HELP_STRING([--enable-dirty],[write to buffers each time, may affect result]) ])
+
+case "$enable_dirty" in
+ yes)
+ use_dirty=true
+ ;;
+ no)
+ use_dirty=false
+ ;;
+ '')
+ # whatever
+ use_dirty=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-dirty takes yes or no])
+ ;;
+esac
+
+if $use_dirty
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_dirty
+then
+ AC_DEFINE([DIRTY],,[Define to one to enable dirty buffer support. May affect results.])
+fi
+
+# see if we should be enabling demo support
+
+AC_MSG_CHECKING(whether to include demo support)
+
+AC_ARG_ENABLE(demo,
+ [AS_HELP_STRING([--enable-demo],[emit interim results during the run. May affect results.])])
+
+case "$enable_demo" in
+ yes)
+ use_demo=true
+ ;;
+ no)
+ use_demo=false
+ ;;
+ '')
+ # whatever
+ use_demo=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-demo takes yes or no])
+ ;;
+esac
+
+if $use_demo
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_demo
+then
+ AC_DEFINE([WANT_DEMO],,[Define to one to enable demo support. May affect results.])
+fi
+
+# see if we should be including the AF_UNIX tests
+
+AC_MSG_CHECKING(whether to include Unix-domain socket tests)
+
+AC_ARG_ENABLE(unixdomain,
+ [AS_HELP_STRING([--enable-unixdomain],[include Unix Domain socket tests])])
+
+case "$enable_unixdomain" in
+ yes)
+ use_unixdomain=true
+ ;;
+ no)
+ use_unixdomain=false
+ ;;
+ '')
+ use_unixdomain=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-unixdomain takes yes or no])
+ ;;
+esac
+
+if $use_unixdomain
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_unixdomain
+then
+ AC_DEFINE([WANT_UNIX],,[Define to one to include Unix Domain socket tests.])
+fi
+
+# see if we should be including the DLPI tests
+
+AC_MSG_CHECKING(whether to include DLPI tests)
+
+AC_ARG_ENABLE(dlpi,
+ [AS_HELP_STRING([--enable-dlpi],[include DLPI (link-layer) tests])])
+
+case "$enable_dlpi" in
+ yes)
+ use_dlpi=true
+ ;;
+ no)
+ use_dlpi=false
+ ;;
+ '')
+ use_dlpi=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-dlpi takes yes or no])
+ ;;
+esac
+
+if $use_dlpi
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_dlpi
+then
+ AC_DEFINE([WANT_DLPI],,[Define to one to include DLPI tests.])
+fi
+
+# see if we should be including the DCCP tests
+
+AC_MSG_CHECKING(whether to include DCCP tests)
+
+AC_ARG_ENABLE(dccp,
+ [AS_HELP_STRING([--enable-dccp],[include DCCP tests])])
+
+case "$enable_dccp" in
+ yes)
+ use_dccp=true
+ ;;
+ no)
+ use_dccp=false
+ ;;
+ '')
+ use_dccp=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-dccp takes yes or no])
+ ;;
+esac
+
+if $use_dccp
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_dccp
+then
+ AC_DEFINE([WANT_DCCP],,[Define to one to include DCCP tests.])
+fi
+
+# see if we should be including the OMNI tests
+
+AC_MSG_CHECKING(whether to include OMNI tests)
+
+AC_ARG_ENABLE(omni,
+ [AS_HELP_STRING([--enable-omni],[include OMNI tests])])
+
+case "$enable_omni" in
+ yes)
+ use_omni=true
+ ;;
+ no)
+ use_omni=false
+ ;;
+ '')
+ use_omni=true
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-omni takes yes or no])
+ ;;
+esac
+
+if $use_omni
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_omni
+then
+ AC_DEFINE([WANT_OMNI],,[Define to one to include OMNI tests.])
+ AC_DEFINE([WANT_MIGRATION],,[Define to one to migrate classic to OMNI tests.])
+fi
+
+
+# see if we should be including the XTI tests
+
+AC_MSG_CHECKING(whether to include XTI tests)
+
+AC_ARG_ENABLE(xti,
+ [AS_HELP_STRING([--enable-xti],[include XTI socket tests])])
+
+case "$enable_xti" in
+ yes)
+ use_xti=true
+ ;;
+ no)
+ use_xti=false
+ ;;
+ '')
+ use_xti=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-xti takes yes or no])
+ ;;
+esac
+
+if $use_xti
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_xti
+then
+ AC_DEFINE([WANT_XTI],,[Define to one to include XTI tests.])
+fi
+
+# see if we should be including the SDP tests
+
+AC_MSG_CHECKING(whether to include SDP tests)
+
+AC_ARG_ENABLE(sdp,
+ [AS_HELP_STRING([--enable-sdp],[include SDP socket tests])])
+
+case "$enable_sdp" in
+ yes)
+ # probably need to be a bit more sophisticated here
+ AC_CHECK_LIB(sdp,t_open)
+ use_sdp=true
+ ;;
+ no)
+ use_sdp=false
+ ;;
+ '')
+ use_sdp=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-sdp takes yes or no])
+ ;;
+esac
+
+if $use_sdp
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_sdp
+then
+ AC_DEFINE([WANT_SDP],,[Define to one to include SDP tests.])
+fi
+
+# see if we should be including the ICSC-EXS tests
+
+AC_MSG_CHECKING(whether to include ICSC-EXS tests)
+
+AC_ARG_ENABLE(exs,
+ [AS_HELP_STRING([--enable-exs],[include ICSC async sockets tests])])
+
+case "$enable_exs" in
+ yes)
+ use_exs=true
+ AC_CHECK_HEADER(sys/exs.h,,[use_exs=false])
+ AC_CHECK_LIB(exs,exs_init,,[use_exs=false])
+ ;;
+ no)
+ use_exs=false
+ ;;
+ '')
+ use_exs=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-exs takes yes or no])
+ ;;
+esac
+
+if $use_exs
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_exs
+then
+ AC_DEFINE([HAVE_ICSC_EXS],,[Define to one to include ICSC-EXS tests.])
+fi
+
+# see if we should be enabling SCTP support
+
+
+AC_ARG_ENABLE(sctp,
+ [AS_HELP_STRING([--enable-sctp],[include tests to measure SCTP performance ])])
+
+case "$enable_sctp" in
+ yes)
+ use_sctp=true
+ AC_CHECK_HEADERS(netinet/sctp.h,,use_sctp=false,
+[[
+#include <sys/socket.h>
+]])
+ case "$host" in
+ *-*-freebsd[78].*)
+ # FreeBSD 7.x and later SCTP support doesn't need -lsctp.
+ ;;
+ *)
+ AC_HAVE_LIBRARY(sctp,,use_sctp=false)
+ ;;
+ esac
+ AC_CHECK_MEMBER(struct sctp_event_subscribe.sctp_adaptation_layer_event,
+ , , [#include <netinet/sctp.h>])
+ if test "$ac_cv_member_struct_sctp_event_subscribe_sctp_adaptation_layer_event" = "yes"; then
+ AC_DEFINE([HAVE_SCTP_ADAPTATION_LAYER_EVENT], 1,
+ [Define to 1 if `struct sctp_event_subscribe' has a `sctp_adaptation_layer_event' member])
+ fi
+ ;;
+ no)
+ use_sctp=false
+ ;;
+ '')
+ # whatever
+ use_sctp=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-sctp takes yes or no])
+ ;;
+esac
+
+AC_MSG_CHECKING(whether to include SCTP tests)
+
+if $use_sctp
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_sctp
+then
+ AC_DEFINE([WANT_SCTP],,[Define to one to include SCTP tests.])
+fi
+
+# see if we should be enabling paced sends
+
+AC_MSG_CHECKING([whether to include paced send (intervals) support])
+
+AC_ARG_ENABLE(intervals,
+ [AS_HELP_STRING([--enable-intervals],[include ability to pace operations, may affect result])])
+
+case "$enable_intervals" in
+ yes)
+ use_intervals=true
+ ;;
+ no)
+ use_intervals=false
+ ;;
+ '')
+ use_intervals=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-intervals takes yes or no])
+ ;;
+esac
+
+if $use_intervals
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_intervals
+then
+ AC_DEFINE([WANT_INTERVALS],,[Define to one to enable paced operation support. May affect results.])
+fi
+
+# see if paced sends should wait and spin
+
+AC_MSG_CHECKING([whether paced sends should spin])
+
+AC_ARG_ENABLE(spin,
+ [AS_HELP_STRING([--enable-spin],[paced operations (--enable-intervals) should sit and spin - WILL affect result])])
+
+case "$enable_spin" in
+ yes)
+ use_spin=true
+ ;;
+ no)
+ use_spin=false
+ ;;
+ '')
+ use_spin=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-spin takes yes or no])
+ ;;
+esac
+
+if $use_spin
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_spin
+then
+ AC_DEFINE([WANT_INTERVALS],,[Define to one to enable paced operation support. May affect results.])
+ AC_DEFINE([WANT_SPIN],,[Define to one to spin waiting on paced operation. WILL AFFEFCT CPU UTILIZATION])
+fi
+
+# see if we should be enabling initial request bursts
+
+AC_MSG_CHECKING([whether to include initial burst support in _RR tests])
+
+AC_ARG_ENABLE(burst,
+ [AS_HELP_STRING([--enable-burst],[include intial request burst ability in _RR tests, may affect result])])
+
+case "$enable_burst" in
+ yes)
+ use_burst=true
+ ;;
+ no)
+ use_burst=false
+ ;;
+ '')
+ use_burst=true
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-burst takes yes or no])
+ ;;
+esac
+
+if $use_burst
+then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+if $use_burst
+then
+ AC_DEFINE([WANT_FIRST_BURST],,[Define to one to enable initial _RR burst support. May affect results.])
+fi
+
+# time to see about CPU utilization measurements
+
+AC_MSG_CHECKING([which CPU utilization measurement type to use])
+
+AC_ARG_ENABLE(cpuutil,
+ [AS_HELP_STRING([--enable-cpuutil],[include code to measure CPU utilization using specified mechanism])])
+
+NETCPU_SOURCE="$enable_cpuutil"
+case "$enable_cpuutil" in
+ pstat)
+ use_cpuutil=true
+ AC_DEFINE([USE_PSTAT],,[Use HP-UX's pstat interface to measure CPU util.])
+ ;;
+ pstatnew)
+ use_cpuutil=true
+ AC_DEFINE([USE_PSTAT],,[Use HP-UX's pstat interface to measure CPU util.])
+ ;;
+ perfstat)
+ use_cpuutil=true
+ AC_DEFINE([USE_PERFSTAT],,[Use AIX's perfstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(perfstat)
+ ;;
+
+ looper)
+ use_cpuutil=true
+ AC_DEFINE([USE_LOOPER],,[Use looper/soaker processes to measure CPU util.])
+ ;;
+ procstat)
+ use_cpuutil=true
+ AC_DEFINE([USE_PROC_STAT],,[Use Linux's procstat interface to measure CPU util.])
+ ;;
+ kstat)
+ use_cpuutil=true
+ AC_DEFINE([USE_KSTAT],,[Use Solaris's kstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(kstat)
+ ;;
+ kstat10)
+ use_cpuutil=true
+ AC_DEFINE([USE_KSTAT],,[Use Solaris's kstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(kstat)
+ ;;
+ osx)
+ use_cpuutil=true
+ AC_DEFINE([USE_OSX],,[Use MacOS X's host_info interface to measure CPU util.])
+ ;;
+ '')
+# ia64-hp-hpux11.23
+# i386-pc-solaris2.10
+# guess it automagically in a nice big case statement
+ case $target in
+ *-*-linux*)
+ use_cpuutil=true
+ AC_DEFINE([USE_PROC_STAT],,[Use Linux's procstat interface to measure CPU util.])
+ enable_cpuutil="procstat - auto"
+ NETCPU_SOURCE="procstat"
+ ;;
+ *-*-hpux11.23 | *-*-hpux11.31)
+ use_cpuutil=true
+ AC_DEFINE([USE_PSTAT],,[Use HP-UX's pstat interface to measure CPU util.])
+ enable_cpuutil="pstatnew - auto"
+ NETCPU_SOURCE="pstatnew"
+ ;;
+ *-*-hpux11* | *-*-hpux10*)
+ use_cpuutil=true
+ AC_DEFINE([USE_PSTAT],,[Use HP-UX's pstat interface to measure CPU util.])
+ enable_cpuutil="pstat - auto"
+ NETCPU_SOURCE="pstat"
+ ;;
+ *-*-aix5.* | *-*-aix6.*)
+ use_puutil=true
+ AC_DEFINE([USE_PERFSTAT],,[Use AIX's perfstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(perfstat)
+ enable_cpuutil="perfstat - auto"
+ NETCPU_SOURCE="perfstat"
+ ;;
+ *-*-solaris2.1*)
+ use_cpuutil=true
+ AC_DEFINE([USE_KSTAT],,[Use Solaris's kstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(kstat)
+ enable_cpuutil="kstat10 - auto"
+ NETCPU_SOURCE="kstat10"
+ ;;
+ *-*-solaris2.*)
+ use_cpuutil=true
+ AC_DEFINE([USE_KSTAT],,[Use Solaris's kstat interface to measure CPU util.])
+ AC_HAVE_LIBRARY(kstat)
+ enable_cpuutil="kstat - auto"
+ NETCPU_SOURCE="kstat"
+ ;;
+ *-*-freebsd[[4-8]].* | *-*-netbsd[[1-9]].* )
+ use_cpuutil=true
+ AC_DEFINE([USE_SYSCTL],,[Use MumbleBSD's sysctl interface to measure CPU util.])
+ enable_cpuutil="sysctl - auto"
+ NETCPU_SOURCE="sysctl"
+ ;;
+ *-*-darwin*)
+ use_cpuutil=true
+ AC_DEFINE([USE_OSX],,[Use MacOS X's host_info interface to measure CPU util.])
+ enable_cpuutil="osx - auto"
+ NETCPU_SOURCE="osx"
+ ;;
+ *)
+ use_cpuutil=false
+ NETCPU_SOURCE="none"
+ enable_cpuutil="none. Consider teaching configure about your platform."
+ ;;
+ esac
+ ;;
+ none)
+ use_cpuutil=false
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-cpuutil takes kstat, kstat10, looper, osx, perfstat, procstat, pstat, pstatnew, sysctl or none])
+ ;;
+esac
+
+ AC_MSG_RESULT("$enable_cpuutil")
+
+AC_SUBST(NETCPU_SOURCE)
+
+
+# now spit it all out
+AC_CONFIG_FILES([Makefile
+ src/netperf_version.h
+ src/Makefile
+ src/missing/Makefile
+ src/missing/m4/Makefile
+ doc/Makefile
+ doc/examples/Makefile
+ netperf.spec])
+
+AC_OUTPUT