/release/src/router/dhcpv6/configure.in
https://gitlab.com/envieidoc/tomato · Autoconf · 239 lines · 149 code · 27 blank · 63 comment · 6 complexity · 7645165943400eab84a9cf1df324606c MD5 · raw file
- 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
- AC_PROG_YACC
- AC_PROG_LEX
- 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)"
- dnl On Sun systems, we need to use the standards-compliant 3XNET functions
- if test -x /usr/bin/sun && /usr/bin/sun; then
- CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
- LDFLAGS="-lxnet -ldevinfo -lnsl -lsocket -lrt"
- fi
- AC_MSG_CHECKING(for sys/queue.h)
- AC_TRY_COMPILE([#include <sys/queue.h>],
- [TAILQ_HEAD(test, none);],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- CFLAGS="$CFLAGS -I\$(srcdir)/missing"])
- AC_EGREP_CPP(yes,
- [#include <netinet/in.h>
- #ifdef __KAME__
- yes
- #endif], [result=kame], [result=regular])
- AC_MSG_CHECKING(for getaddrinfo/getnameinfo library)
- 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_REPLACE_FUNCS(getifaddrs)
- AC_CHECK_FUNCS(if_nametoindex)
- AC_REPLACE_FUNCS(strlcpy strlcat)
- AC_REPLACE_FUNCS(daemon)
- AC_REPLACE_FUNCS(warnx)
- 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
- AC_CHECK_TYPES([sig_atomic_t], , [AC_DEFINE(sig_atomic_t, u_long)], [#include <sys/types.h>
- #include <signal.h>])
- 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 not officially defined
- dnl (no such option now)
- dnl Checks the existence of TAILQ_FOREACH_REVERSE
- AC_MSG_CHECKING(checking the existence TAILQ_FOREACH_REVERSE)
- AC_EGREP_CPP(yes,
- [#include <sys/queue.h>
- #ifdef TAILQ_FOREACH_REVERSE
- yes
- #endif], [result=yes], [result=no])
- AC_MSG_RESULT($result)
- case $result in
- yes) tailq_foreach=yes
- ;;
- *) tailq_foreach=no
- ;;
- esac
- dnl Checks the argument order of TAILQ_FOREACH_REVERSE if it exists
- if test $tailq_foreach = yes ; then
- AC_MSG_CHECKING(argument order of TAILQ_FOREACH_REVERSE)
- AC_TRY_COMPILE([],
- [
- #include <stdio.h>
- #include <sys/queue.h>
- TAILQ_HEAD(tailhead, entry) head = TAILQ_HEAD_INITIALIZER(head);
- struct entry {
- TAILQ_ENTRY(entry) entries;
- } *p;
- int i;
- struct tailhead *headp;
- TAILQ_FOREACH_REVERSE(p, headp, tailhead, entries) {
- }
- ],
- [AC_MSG_RESULT(new)
- AC_DEFINE(HAVE_TAILQ_FOREACH_REVERSE)],
- [AC_MSG_RESULT(old)
- AC_DEFINE(HAVE_TAILQ_FOREACH_REVERSE_OLD)]);
- fi
- dnl Checks for other features
- AC_MSG_CHECKING(if you have a length field in struct sockaddr*)
- AC_CACHE_VAL(ts_cv_sa_len, [dnl
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- ], [
- struct sockaddr a;
- a.sa_len = 1;
- ], [ts_cv_sa_len="yes"], [ts_cv_sa_len="no"])])
- AC_MSG_RESULT($ts_cv_sa_len);
- if test "$ts_cv_sa_len" = yes; then
- AC_DEFINE([HAVE_SA_LEN], 1, [Define to 1 if you have a length field in struct sockaddr])
- fi
- dnl configure the ownership of the programs
- AC_MSG_CHECKING(the owner of the programs)
- AC_ARG_WITH(user,
- [ --with-user=USER set the owner of the programs],
- user="$withval", user="bin")
- AC_MSG_RESULT($user)
- AC_SUBST(user)
- dnl configure the group ownership of the programs
- AC_MSG_CHECKING(the group owner of the programs)
- AC_ARG_WITH(group,
- [ --with-group=GROUP set the group owner of the programs],
- group="$withval", group="bin")
- AC_MSG_RESULT($group)
- AC_SUBST(group)
- AC_CHECK_HEADERS(stdarg.h)
- AC_OUTPUT(Makefile)