Improve error message when binding http port.
[darkstat] / configure.ac
index 55dbfcb..30c5f08 100644 (file)
@@ -93,27 +93,22 @@ else
 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
+ [turn on lots of compile-time warnings, these are GCC-specific and only
  really useful for development]),
  [if test "x$enableval" = "xyes" ; then
-   AC_MSG_CHECKING(if your C compiler throws mad warnings)
+   AC_MSG_CHECKING(if your C compiler can emit certain warnings)
    save_cflags="$CFLAGS"
    CFLAGS="$CFLAGS -fdiagnostics-show-option \
--Wabi \
 -Waddress \
 -Waggregate-return \
 -Wall \
--Warray-bounds \
 -Wbad-function-cast \
 -Wcast-align \
 -Wcast-qual \
 -Wchar-subscripts \
--Wclobbered \
 -Wcomment \
--Wcoverage-mismatch \
 -Wdeclaration-after-statement \
 -Wdisabled-optimization \
--Wempty-body \
 -Wextra \
 -Wfloat-equal \
 -Wformat \
@@ -121,15 +116,12 @@ AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
 -Wformat-nonliteral \
 -Wformat-security \
 -Wformat-y2k \
--Wignored-qualifiers \
 -Wimplicit \
 -Wimplicit-function-declaration \
 -Wimplicit-int \
 -Winit-self \
 -Winline \
 -Winvalid-pch \
--Wlogical-op \
--Wlong-long \
 -Wmain \
 -Wmissing-braces \
 -Wmissing-declarations \
@@ -137,14 +129,11 @@ AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
 -Wmissing-format-attribute \
 -Wmissing-include-dirs \
 -Wmissing-noreturn \
--Wmissing-parameter-type \
 -Wmissing-prototypes \
 -Wnested-externs \
 -Wnonnull \
--Wold-style-declaration \
 -Wold-style-definition \
 -Wpacked \
--Wpacked-bitfield-compat \
 -Wparentheses \
 -Wpointer-arith \
 -Wpointer-sign \
@@ -159,9 +148,7 @@ AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
 -Wswitch \
 -Wswitch-default \
 -Wswitch-enum \
--Wsync-nand \
 -Wtrigraphs \
--Wtype-limits \
 -Wundef \
 -Wuninitialized \
 -Wunknown-pragmas \
@@ -173,17 +160,38 @@ AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
 -Wunused-value \
 -Wunused-variable \
 -Wvariadic-macros \
--Wvla \
 -Wvolatile-register-var \
 -Wwrite-strings \
 "
+# The above are valid for gcc version 4.2.1.
+
+   if (eval $ac_link) 2>/dev/null; then
+    AC_MSG_RESULT(yes)
 
-# the above are valid for gcc version 4.4.3
-# we skip:
+    AC_MSG_CHECKING(if your C compiler can emit certain other warnings)
+    save_cflags="$CFLAGS"
+    CFLAGS="$CFLAGS \
+-Warray-bounds \
+-Wclobbered \
+-Wcoverage-mismatch \
+-Wempty-body \
+-Wignored-qualifiers \
+-Wlogical-op \
+-Wmissing-parameter-type \
+-Wold-style-declaration \
+-Wpacked-bitfield-compat \
+-Wsync-nand \
+-Wtype-limits \
+-Wvla \
+"
+# The above are valid for gcc version 4.4.3.
+# We skip the following entirely:
 #-pedantic
+#-Wabi
 #-Wc++-compat
 #-Wconversion
 #-Wfatal-errors
+#-Wlong-long
 #-Wpadded
 #-Wsign-conversion
 #-Wstack-protector
@@ -192,8 +200,13 @@ AC_ARG_ENABLE(mad-warnings, AS_HELP_STRING([--enable-mad-warnings],
 #-Wtraditional-conversion
 #-Wunreachable-code
 
-   if (eval $ac_link) 2>/dev/null; then
-    AC_MSG_RESULT(sure does)
+    if (eval $ac_link) 2>/dev/null; then
+     AC_MSG_RESULT(yes)
+    else
+     AC_MSG_RESULT(no)
+     CFLAGS="$save_cflags"
+    fi
+
    else
     AC_MSG_RESULT(no)
     CFLAGS="$save_cflags"
@@ -229,8 +242,8 @@ 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])])
+AC_SEARCH_LIBS(hstrerror, [resolv], [],
+  [AC_MSG_ERROR([hstrerror() not found])])
 
 # Solaris need sys/filio.h for FIONBIO
 AC_CHECK_HEADERS(sys/filio.h)
@@ -238,7 +251,11 @@ 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],
@@ -294,22 +311,19 @@ END_MSG
  AC_MSG_ERROR([can't find usable libpcap])
 fi
 
-
-
-# A real OS will have setproctitle()
+# If not in libc, we might find these in libbsd.
 AC_SEARCH_LIBS(setproctitle, [bsd],
  AC_DEFINE(HAVE_SETPROCTITLE, 1,
   [Define to 1 if you have setproctitle().]))
-
-# A real OS will have safe string functions
 AC_SEARCH_LIBS(strlcpy, [bsd],
  AC_DEFINE(HAVE_STRLCPY, 1,
   [Define to 1 if you have strlcpy().]))
-
 AC_SEARCH_LIBS(strlcat, [bsd],
  AC_DEFINE(HAVE_STRLCAT, 1,
   [Define to 1 if you have strlcat().]))
 
+AC_CHECK_HEADERS(bsd/string.h)
+AC_CHECK_HEADERS(bsd/unistd.h)
 
 AC_CONFIG_FILES([Makefile darkstat.8])
 AC_OUTPUT