1dnl Process this file with autoconf to produce a configure script.
2AC_INIT
3AC_CONFIG_SRCDIR([dhcp6c.c])
4
5dnl Checks for programs.
6AC_PROG_INSTALL
7AC_PROG_MAKE_SET
8AC_PROG_CC
9AC_PROG_CPP
10AC_PROG_YACC
11AC_PROG_LEX
12
13dnl Checks for libraries.
14dnl AC_CHECK_LIB(c, kvm_open, [], [AC_CHECK_LIB(kvm, kvm_open)])
15dnl AC_CHECK_LIB(mld, nlist)
16AC_CHECK_LIB(crypto, MD5_Init, [], [AC_CHECK_LIB(ssl, MD5_Init)])
17AC_CHECK_LIB(resolv, __dn_comp, [], [])
18dnl pcap library
19dnl CFLAGS="-I. $CFLAGS"
20dnl AC_MSG_CHECKING(for pcap library/header)
21dnl for dir in /usr/local/libpcap /usr/local/v6 /usr/local \
22dnl 		../libpcap* ../../libpcap*; do
23dnl 	ac_cv_pcap_lib=no
24dnl 	ac_cv_pcap_include=no
25dnl 	if test -d $dir -a -f $dir/libpcap.a; then
26dnl 		ac_cv_pcap_lib="$dir"
27dnl 	elif test -d $dir/lib -a -f $dir/lib/libpcap.a; then
28dnl 		ac_cv_pcap_lib="$dir/lib"
29dnl 	fi
30dnl 	if test -d $dir -a -f $dir/pcap.h; then
31dnl 		ac_cv_pcap_include="$dir"
32dnl 	elif test -d $dir/include -a -f $dir/include/pcap.h; then
33dnl 		ac_cv_pcap_include="$dir/include"
34dnl 	fi
35dnl 	if test "$ac_cv_pcap_lib" != "no" -a "$ac_cv_pcap_include" != "no"; then
36dnl 		LIBS="-L$ac_cv_pcap_lib $LIBS"
37dnl 		CFLAGS="-I$ac_cv_pcap_include $CFLAGS"
38dnl 		break
39dnl 	fi
40dnl done
41dnl if test "$ac_cv_pcap_lib" = "no" -a "$ac_cv_pcap_include" = "no"; then
42dnl 	AC_MSG_RESULT(no)
43dnl else
44dnl 	AC_MSG_RESULT($ac_cv_pcap_lib and $ac_cv_pcap_include)
45dnl fi
46dnl AC_CHECK_LIB(pcap, pcap_lookupdev, [],
47dnl 	[echo "Fatal: libpcap.a not found"
48dnl 	exit 1])
49dnl AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <pcap.h>]], [[]])],[],[dnl
50dnl 	echo "Fatal: pcap.h not found"
51dnl 	exit 1])
52
53CFLAGS="$CFLAGS -I\$(srcdir)"
54
55AC_MSG_CHECKING(for getaddrinfo/getnameinfo library)
56AC_EGREP_CPP(yes,
57[#include <netinet/in.h>
58#ifdef __KAME__
59 yes
60#endif], [result=kame])
61AC_MSG_RESULT($result)
62case $result in
63kame)	AC_DEFINE(INET6)
64	o_LIBS="$LIBS"
65	LIBS="$LIBS -L/usr/local/v6/lib -L/usr/lib"
66	AC_CHECK_LIB(inet6, getaddrinfo, [], [LIBS="$o_LIBS"])
67	;;
68*)	;;
69esac
70
71AC_REPLACE_FUNCS(getaddrinfo)
72AC_REPLACE_FUNCS(getnameinfo)
73AC_REPLACE_FUNCS(ifaddrs)
74AC_CHECK_FUNCS(if_nametoindex)
75
76dnl Checks for header files.
77AC_HEADER_STDC
78AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h ifaddrs.h)
79AC_MSG_CHECKING(for socklen_t)
80AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
81#include <sys/socket.h>]], [[socklen_t x;  x = 1; return x;]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
82	AC_CHECK_TYPE(socklen_t, int)])
83
84dnl Checks for typedefs, structures, and compiler characteristics.
85AC_C_CONST
86AC_TYPE_SIZE_T
87AC_HEADER_TIME
88AC_STRUCT_TM
89AC_STRUCT_TIMEZONE
90
91dnl Checks for library functions.
92AC_FUNC_GETPGRP
93AC_PROG_GCC_TRADITIONAL
94AC_FUNC_SETPGRP
95AC_TYPE_SIGNAL
96AC_CHECK_FUNCS(mktime select socket)
97
98dnl Checks for arc4random
99dnl AC_REPLACE_FUNCS(arc4random)
100
101dnl Checks for optinal parameters
102AC_MSG_CHECKING(if --enable-mediator option is specified)
103AC_ARG_WITH(mediator, [  --with-mediator         build with mediator (obsolete)],
104	[AC_DEFINE(MEDIATOR)
105	with_mediator=yes], [with_mediator=no])
106AC_MSG_RESULT($with_mediator);
107
108AC_MSG_CHECKING(if --enable-pedant option is specified)
109AC_ARG_ENABLE(pedant, [  --enable-pedant         pedantic compilation],
110	[if test "$enableval" = "yes"; then
111		CFLAGS="-Wall -Werror $CFLAGS"
112	fi], [enableval=no])
113AC_MSG_RESULT($enableval);
114
115dnl Checks predeclared identifers of function names
116AC_MSG_CHECKING(ANSI predeclared __func__)
117AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void func(void) {printf("%s\n", __func__);}]])],[AC_MSG_RESULT(yes)
118	 pred_func_id=ansi],[AC_MSG_RESULT(no)
119	 pred_func_id=no])
120if test $pred_func_id = no; then
121AC_MSG_CHECKING(gcc predelcared __FUNCTION__)
122	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void func(void) {printf("%s\n", __FUNCTION__);}]])],[AC_MSG_RESULT(yes)
123		 pred_func_id=gcc],[AC_MSG_RESULT(no)
124		 pred_func_id=no])
125fi
126case $pred_func_id in
127	ansi)
128		AC_DEFINE(HAVE_ANSI_FUNC)
129		;;
130	gcc)
131		AC_DEFINE(HAVE_GCC_FUNCTION)
132		;;
133esac
134
135AC_CHECK_HEADERS(stdarg.h)
136
137AC_CONFIG_FILES([Makefile])
138AC_OUTPUT
139