Restore pre-IPv6 localip_update() code for systems without ifaddrs.h
[darkstat] / configure.ac
index 3e9f78b..c9b68ab 100644 (file)
@@ -1,4 +1,4 @@
-AC_INIT(darkstat, 3.0.0-git, , , http://dmr.ath.cx/net/darkstat/)
+AC_INIT(darkstat, 3.0.0-git, , , http://unix4lyfe.org/darkstat/)
 AC_CONFIG_SRCDIR([darkstat.c])
 AC_CONFIG_HEADER([config.h])
 
@@ -40,6 +40,16 @@ AC_DEFINE_UNQUOTED(PRIVDROP_USER, "$_pdu", [User to privdrop to.])
 AC_PROG_INSTALL
 AC_PROG_CC
 
+m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+AC_ARG_ENABLE([silent-rules],
+[  --enable-silent-rules          less verbose build output (undo: 'make V=1')
+  --disable-silent-rules         verbose build output (undo: 'make V=0')])
+case $enable_silent_rules in
+no)  AM_DEFAULT_VERBOSITY=1;;
+*)   AM_DEFAULT_VERBOSITY=0;;
+esac
+AC_SUBST([AM_DEFAULT_VERBOSITY])
+
 # Let user disable debugging symbols so we create smaller binaries.
 AC_MSG_CHECKING(if we want debug code)
 AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug],
@@ -68,6 +78,20 @@ else
  CFLAGS="$save_cflags"
 fi
 
+AC_MSG_CHECKING(if your C compiler has a link-time optimizer)
+if test x$GCC = xyes; then
+ save_cflags="$CFLAGS"
+ CFLAGS="-flto $CFLAGS"
+ if (eval $ac_link) 2>/dev/null; then
+  AC_MSG_RESULT(sure does)
+ else
+  AC_MSG_RESULT(no)
+  CFLAGS="$save_cflags"
+ fi
+else
+ AC_MSG_RESULT(skipped)
+fi
+
 AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
  [turn on lots of compile-time warnings, this needs GCC and is only
  really useful for development]),
@@ -201,11 +225,24 @@ END
 
 # Check for Solaris.
 # Must do at least socket and nsl before checking for libpcap.
-AC_CHECK_LIB(nsl, gethostbyname)
-AC_CHECK_LIB(socket, socket)
-AC_CHECK_LIB(resolv, inet_aton)
+AC_SEARCH_LIBS(gethostbyname, [nsl], [],
+  [AC_MSG_ERROR([gethostbyname() not found])])
+AC_SEARCH_LIBS(socket, [socket], [],
+  [AC_MSG_ERROR([socket() not found])])
+AC_SEARCH_LIBS(inet_aton, [resolv], [],
+  [AC_MSG_ERROR([inet_aton() not found])])
+
+# Solaris need sys/filio.h for FIONBIO
+AC_CHECK_HEADERS(sys/filio.h)
 
+# GNU/kfreebsd needs net/if_ether.h for ETH_P_IPV6
+AC_CHECK_HEADERS(net/if_ether.h)
 
+# This is the modern way.  Older systems use the ioctl method.
+AC_CHECK_HEADERS(ifaddrs.h)
+
+# Some OSes (Solaris) need sys/sockio.h for SIOCGIFADDR
+AC_CHECK_HEADERS(sys/sockio.h)
 
 # Check for libpcap
 AC_ARG_WITH(pcap, AS_HELP_STRING([--with-pcap=DIR],
@@ -264,7 +301,7 @@ fi
 
 
 # A real OS will have setproctitle()
-AC_CHECK_LIB(c, setproctitle,
+AC_SEARCH_LIBS(setproctitle, [bsd],
  AC_DEFINE(HAVE_SETPROCTITLE, 1,
   [Define to 1 if you have setproctitle().]))
 
@@ -277,18 +314,6 @@ AC_SEARCH_LIBS(strlcat, [bsd],
  AC_DEFINE(HAVE_STRLCAT, 1,
   [Define to 1 if you have strlcat().]))
 
-AC_SEARCH_LIBS(strtonum, [bsd],
- AC_DEFINE(HAVE_STRTONUM, 1,
-  [Define to 1 if you have strtonum(3).]))
-
-# Some OSes (Solaris) need sys/sockio.h for SIOCGIFADDR
-AC_CHECK_HEADERS(sys/sockio.h)
-
-# Some OSes (Solaris) need sys/filio.h for FIONBIO
-AC_CHECK_HEADERS(sys/filio.h)
-
-# GNU/kfreebsd needs net/if_ether.h for ETH_P_IPV6
-AC_CHECK_HEADERS(net/if_ether.h)
 
 AC_CONFIG_FILES([Makefile darkstat.8])
 AC_OUTPUT