aboutsummaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorSUZUKI, Shinsuke <suz@kame.net>2005-12-01 06:35:48 +0000
committerSUZUKI, Shinsuke <suz@kame.net>2005-12-01 06:35:48 +0000
commit48c68dfb9b77069425980bd155e331e64dc3c64e (patch)
tree0a824722c4c612d5390716f01242faa520bb7af1 /configure.in
imported KAME-DHCPv6 snapshot at 20051201KAME_20051201
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in259
1 files changed, 259 insertions, 0 deletions
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..3c91eb3
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,259 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT(dhcp6c.c)
+
+dnl Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_PROG_CPP
+
+dnl Checks for libraries.
+dnl AC_CHECK_LIB(c, kvm_open, [], [AC_CHECK_LIB(kvm, kvm_open)])
+dnl AC_CHECK_LIB(mld, nlist)
+
+dnl pcap library
+dnl CFLAGS="-I. $CFLAGS"
+dnl AC_MSG_CHECKING(for pcap library/header)
+dnl for dir in /usr/local/libpcap /usr/local/v6 /usr/local \
+dnl ../libpcap* ../../libpcap*; do
+dnl ac_cv_pcap_lib=no
+dnl ac_cv_pcap_include=no
+dnl if test -d $dir -a -f $dir/libpcap.a; then
+dnl ac_cv_pcap_lib="$dir"
+dnl elif test -d $dir/lib -a -f $dir/lib/libpcap.a; then
+dnl ac_cv_pcap_lib="$dir/lib"
+dnl fi
+dnl if test -d $dir -a -f $dir/pcap.h; then
+dnl ac_cv_pcap_include="$dir"
+dnl elif test -d $dir/include -a -f $dir/include/pcap.h; then
+dnl ac_cv_pcap_include="$dir/include"
+dnl fi
+dnl if test "$ac_cv_pcap_lib" != "no" -a "$ac_cv_pcap_include" != "no"; then
+dnl LIBS="-L$ac_cv_pcap_lib $LIBS"
+dnl CFLAGS="-I$ac_cv_pcap_include $CFLAGS"
+dnl break
+dnl fi
+dnl done
+dnl if test "$ac_cv_pcap_lib" = "no" -a "$ac_cv_pcap_include" = "no"; then
+dnl AC_MSG_RESULT(no)
+dnl else
+dnl AC_MSG_RESULT($ac_cv_pcap_lib and $ac_cv_pcap_include)
+dnl fi
+dnl AC_CHECK_LIB(pcap, pcap_lookupdev, [],
+dnl [echo "Fatal: libpcap.a not found"
+dnl exit 1])
+dnl AC_TRY_COMPILE([#include <pcap.h>], [], [], [dnl
+dnl echo "Fatal: pcap.h not found"
+dnl exit 1])
+
+CFLAGS="$CFLAGS -I\$(srcdir)"
+
+AC_MSG_CHECKING(for getaddrinfo/getnameinfo library)
+AC_EGREP_CPP(yes,
+[#include <netinet/in.h>
+#ifdef __KAME__
+ yes
+#endif], [result=kame])
+AC_MSG_RESULT($result)
+case $result in
+kame) AC_DEFINE(INET6)
+ o_LIBS="$LIBS"
+ LIBS="$LIBS -L/usr/local/v6/lib"
+ AC_CHECK_LIB(inet6, getaddrinfo, [], [LIBS="$o_LIBS"])
+ ;;
+*) ;;
+esac
+
+AC_REPLACE_FUNCS(getaddrinfo)
+AC_REPLACE_FUNCS(getnameinfo)
+AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS), [dnl
+ echo FATAL: getifaddrs is required
+ exit 1])
+AC_CHECK_FUNCS(if_nametoindex)
+AC_REPLACE_FUNCS(strlcpy strlcat)
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h ifaddrs.h)
+AC_MSG_CHECKING(for socklen_t)
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/socket.h>],
+ [socklen_t x; x = 1; return x;],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ AC_CHECK_TYPE(socklen_t, int)])
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+AC_STRUCT_TM
+AC_STRUCT_TIMEZONE
+
+dnl Checks for library functions.
+AC_FUNC_GETPGRP
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_SETPGRP
+AC_TYPE_SIGNAL
+AC_CHECK_FUNCS(mktime select socket)
+AC_CHECK_FUNCS(clock_gettime)
+
+dnl configure local DB directory
+AC_MSG_CHECKING(for local DB directory)
+AC_ARG_WITH(localdbdir,
+[ --with-localdbdir=VALUE where to put local DB files],
+ localdbdir="$withval", localdbdir="/var/db")
+AC_MSG_RESULT($localdbdir)
+AC_SUBST(localdbdir)
+
+dnl Checks for arc4random
+AC_REPLACE_FUNCS(arc4random)
+
+AC_MSG_CHECKING(if --enable-pedant option is specified)
+AC_ARG_ENABLE(pedant, [ --enable-pedant pedantic compilation],
+ [if test "$enableval" = "yes"; then
+ CFLAGS="-Wall -Werror $CFLAGS"
+ fi], [enableval=no])
+AC_MSG_RESULT($enableval);
+
+dnl Checks predeclared identifers of function names
+AC_MSG_CHECKING(ANSI predeclared __func__)
+AC_TRY_COMPILE([],
+[void func(void) {printf("%s\n", __func__);}],
+ [AC_MSG_RESULT(yes)
+ pred_func_id=ansi],
+ [AC_MSG_RESULT(no)
+ pred_func_id=no])
+if test $pred_func_id = no; then
+AC_MSG_CHECKING(gcc predelcared __FUNCTION__)
+ AC_TRY_COMPILE([],
+ [void func(void) {printf("%s\n", __FUNCTION__);}],
+ [AC_MSG_RESULT(yes)
+ pred_func_id=gcc],
+ [AC_MSG_RESULT(no)
+ pred_func_id=no])
+fi
+case $pred_func_id in
+ ansi)
+ AC_DEFINE(HAVE_ANSI_FUNC)
+ ;;
+ gcc)
+ AC_DEFINE(HAVE_GCC_FUNCTION)
+ ;;
+esac
+
+dnl DHCP option type values that have been assigned very recently:
+dnl These values may need be configurable for interoperability with
+dnl prior experimental implementations.
+AC_MSG_CHECKING(for DHCP DNS option)
+AC_ARG_WITH(opt-dns,
+[ --with-opt-dns=VALUE specify DHCP option value for DNS],
+ dhcpopt_dns="$withval", dhcpopt_dns=0)
+if test $dhcpopt_dns != 0 ; then
+ AC_MSG_RESULT(using $dhcpopt_dns)
+ DHCPOPT_DNS="-DDH6OPT_DNS=$dhcpopt_dns"
+ AC_SUBST(DHCPOPT_DNS)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for DHCP DNS_NAME option)
+AC_ARG_WITH(opt-dnsname,
+[ --with-opt-dnsname=VALUE specify DHCP option value for DNS_NAME],
+ dhcpopt_dnsname="$withval", dhcpopt_dnsname=0)
+if test $dhcpopt_dnsname != 0 ; then
+ AC_MSG_RESULT(using $dhcpopt_dnsname)
+ DH6OPT_DNSNAME="-DDH6OPT_DNSNAME=$dhcpopt_dnsname"
+ AC_SUBST(DH6OPT_DNSNAME)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for DHCP IA_PD option)
+AC_ARG_WITH(opt-ia-pd,
+[ --with-opt-ia-pd=VALUE specify DHCP option value for IA_PD],
+ dhcpopt_ia_pd="$withval", dhcpopt_ia_pd=0)
+if test $dhcpopt_ia_pd != 0 ; then
+ AC_MSG_RESULT(using $dhcpopt_ia_pd)
+ DH6OPT_IA_PD="-DDH6OPT_IA_PD=$dhcpopt_ia_pd"
+ AC_SUBST(DH6OPT_IA_PD)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for DHCP IA_PD_PREFIX option)
+AC_ARG_WITH(opt-ia-pd-prefix,
+[ --with-opt-ia-pd-prefix=VALUE specify DHCP option value for IA_PD prefix],
+ dhcpopt_ia_pd_prefix="$withval", dhcpopt_ia_pd_prefix=0)
+if test $dhcpopt_ia_pd_prefix != 0 ; then
+ AC_MSG_RESULT(using $dhcpopt_ia_pd_prefix)
+ DH6OPT_IA_PD_PREFIX="-DDH6OPT_IA_PD_PREFIX=$dhcpopt_ia_pd_prefix"
+ AC_SUBST(DH6OPT_IA_PD_PREFIX)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl DHCP option type values not officially defined
+AC_MSG_CHECKING(for DHCP prefix delegation option)
+AC_ARG_WITH(opt-pdel,
+[ --with-opt-pdel=VALUE specify DHCP option value for prefix delegation],
+ dhcpopt_pdel="$withval", dhcpopt_pdel=0)
+if test $dhcpopt_pdel = 0 ; then
+ dhcpopt_pdel=30
+ AC_MSG_RESULT(unspecified and using $dhcpopt_pdel)
+else
+ AC_MSG_RESULT(using $dhcpopt_pdel)
+fi
+AC_SUBST(dhcpopt_pdel)
+
+AC_MSG_CHECKING(for DHCP prefix information option)
+AC_ARG_WITH(opt-pinfo,
+[ --with-opt-pinfo=VALUE specify DHCP option value for prefix information],
+ dhcpopt_pinfo="$withval", dhcpopt_pinfo=0)
+if test $dhcpopt_pinfo = 0 ; then
+ dhcpopt_pinfo=31
+ AC_MSG_RESULT(unspecified and using $dhcpopt_pinfo)
+else
+ AC_MSG_RESULT(using $dhcpopt_pinfo)
+fi
+AC_SUBST(dhcpopt_pinfo)
+
+AC_MSG_CHECKING(for DHCP prefix request option)
+AC_ARG_WITH(opt-preq,
+[ --with-opt-preq=VALUE specify DHCP option value for prefix request],
+ dhcpopt_preq="$withval", dhcpopt_preq=0)
+if test $dhcpopt_preq = 0 ; then
+ dhcpopt_preq=32
+ AC_MSG_RESULT(unspecified and using $dhcpopt_preq)
+else
+ AC_MSG_RESULT(using $dhcpopt_preq)
+fi
+AC_SUBST(dhcpopt_preq)
+
+AC_MSG_CHECKING(for DHCP NTP option)
+AC_ARG_WITH(opt-ntp,
+[ --with-opt-ntp=VALUE specify DHCP option value for NTP],
+ dhcpopt_ntp="$withval", dhcpopt_ntp=0)
+if test $dhcpopt_ntp = 0 ; then
+ dhcpopt_ntp=-1
+ AC_MSG_RESULT(unspecified)
+else
+ AC_MSG_RESULT(using $dhcpopt_ntp)
+fi
+AC_SUBST(dhcpopt_ntp)
+
+AC_MSG_CHECKING(for DHCP information refresh time option)
+AC_ARG_WITH(opt-refreshtime,
+[ --with-opt-refreshtime=VALUE specify DHCP option value for refresh time],
+ dhcpopt_refreshtime="$withval", dhcpopt_refreshtime=0)
+if test $dhcpopt_refreshtime = 0 ; then
+ dhcpopt_refreshtime=-1
+ AC_MSG_RESULT(unspecified)
+else
+ AC_MSG_RESULT(using $dhcpopt_refreshtime)
+fi
+AC_SUBST(dhcpopt_refreshtime)
+
+AC_CHECK_HEADERS(stdarg.h)
+
+AC_OUTPUT(Makefile)