]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Fix DHCP build on Slackware with 2.4 kernel.
authorShane Kerr <shane@isc.org>
Mon, 4 Jun 2007 14:18:08 +0000 (14:18 +0000)
committerShane Kerr <shane@isc.org>
Mon, 4 Jun 2007 14:18:08 +0000 (14:18 +0000)
See RT ticket #16918 for more information.

configure
configure.ac
includes/config.h.in

index 5e00ff9649aaa7e053a5e4506777419a3e38fb6d..75b9504dabf22915027ba1885e2e0ad772202825 100755 (executable)
--- a/configure
+++ b/configure
@@ -4345,18 +4345,23 @@ fi
 
 
 # figure out what IPv4 interface code to use
-if test "${ac_cv_header_linux_filter_h+set}" = set; then
-  { echo "$as_me:$LINENO: checking for linux/filter.h" >&5
-echo $ECHO_N "checking for linux/filter.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_linux_filter_h+set}" = set; then
+
+for ac_header in linux/types.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; }
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-{ echo "$as_me:$LINENO: checking linux/filter.h usability" >&5
-echo $ECHO_N "checking linux/filter.h usability... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -4364,7 +4369,7 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
-#include <linux/filter.h>
+#include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
 if { (ac_try="$ac_compile"
@@ -4396,15 +4401,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-{ echo "$as_me:$LINENO: checking linux/filter.h presence" >&5
-echo $ECHO_N "checking linux/filter.h presence... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <linux/filter.h>
+#include <$ac_header>
 _ACEOF
 if { (ac_try="$ac_cpp conftest.$ac_ext"
 case "(($ac_try" in
@@ -4437,25 +4442,25 @@ echo "${ECHO_T}$ac_header_preproc" >&6; }
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
   yes:no: )
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: linux/filter.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: linux/filter.h: proceeding with the compiler's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
     ac_header_preproc=yes
     ;;
   no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: linux/filter.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: linux/filter.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: linux/filter.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: linux/filter.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: linux/filter.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: linux/filter.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: linux/filter.h: in the future, the compiler will take precedence" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## --------------------------------- ##
 ## Report this to dhcp-users@isc.org ##
@@ -4464,27 +4469,90 @@ _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+  # needed for linux/filter.h on old systems
+
 { echo "$as_me:$LINENO: checking for linux/filter.h" >&5
 echo $ECHO_N "checking for linux/filter.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_linux_filter_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_header_linux_filter_h=$ac_header_preproc
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef HAVE_LINUX_TYPES_H
+#include <linux/types.h>
+#endif
+
+
+#include <linux/filter.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_linux_filter_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_header_linux_filter_h=no
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; }
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; }
 if test $ac_cv_header_linux_filter_h = yes; then
+  DO_LPF=1
+fi
+
+
+if test -n "$DO_LPF"
+then
 
 cat >>confdefs.h <<\_ACEOF
 #define USE_LPF 1
 _ACEOF
 
-fi
-
-
-if test "${ac_cv_header_sys_dlpi_h+set}" = set; then
+else
+       if test "${ac_cv_header_sys_dlpi_h+set}" = set; then
   { echo "$as_me:$LINENO: checking for sys/dlpi.h" >&5
 echo $ECHO_N "checking for sys/dlpi.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_dlpi_h+set}" = set; then
@@ -4615,15 +4683,19 @@ echo "${ECHO_T}$ac_cv_header_sys_dlpi_h" >&6; }
 
 fi
 if test $ac_cv_header_sys_dlpi_h = yes; then
+  DO_DLPI=1
+fi
+
+
+       if test -n "$DO_DLPI"
+       then
 
 cat >>confdefs.h <<\_ACEOF
 #define USE_DLPI 1
 _ACEOF
 
-fi
-
-
-if test "${ac_cv_header_net_bpf_h+set}" = set; then
+       else
+               if test "${ac_cv_header_net_bpf_h+set}" = set; then
   { echo "$as_me:$LINENO: checking for net/bpf.h" >&5
 echo $ECHO_N "checking for net/bpf.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_net_bpf_h+set}" = set; then
@@ -4754,14 +4826,21 @@ echo "${ECHO_T}$ac_cv_header_net_bpf_h" >&6; }
 
 fi
 if test $ac_cv_header_net_bpf_h = yes; then
+  DO_BPF=1
+fi
+
+
+               if test -n "$DO_BPF"
+               then
 
 cat >>confdefs.h <<\_ACEOF
-#define USE_BPF 1
+#define USE_BPF ""
 _ACEOF
 
-fi
-
+               fi
+       fi
 
+fi
 
 # Look for optional headers.
 if test "${ac_cv_header_net_if_dl_h+set}" = set; then
index fd8b33e6c94e8732f21d2f04be2d4e6b082a1036..e6bf322e673be86ad4c82f7adaca14fc7086d401 100644 (file)
@@ -55,16 +55,35 @@ AC_ARG_WITH(relay-pid-file,
                           [File for dhcrelay process information.]))
 
 # figure out what IPv4 interface code to use
-AC_CHECK_HEADER(linux/filter.h, 
+AC_CHECK_HEADERS(linux/types.h)  # needed for linux/filter.h on old systems
+
+AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, ,
+[
+#ifdef HAVE_LINUX_TYPES_H
+#include <linux/types.h>
+#endif
+])
+if test -n "$DO_LPF"
+then
        AC_DEFINE([USE_LPF], [1], 
-                 [Define to 1 to use the Linux Packet Filter interface code.]))
-AC_CHECK_HEADER(sys/dlpi.h, 
-       AC_DEFINE([USE_DLPI], [1], 
-                 [Define to 1 to use DLPI interface code.]))
-AC_CHECK_HEADER(net/bpf.h,
-       AC_DEFINE([USE_BPF], [1],
-                 [Define to 1 to use the 
-                  Berkeley Packet Filter interface code.]))
+                 [Define to 1 to use the Linux Packet Filter interface code.])
+else
+       AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1)
+       if test -n "$DO_DLPI"
+       then
+               AC_DEFINE([USE_DLPI], [1], 
+                         [Define to 1 to use DLPI interface code.])
+       else
+               AC_CHECK_HEADER(net/bpf.h, DO_BPF=1)
+               if test -n "$DO_BPF"
+               then
+                       AC_DEFINE([USE_BPF], [""],
+                                 [Define to 1 to use the 
+                                  Berkeley Packet Filter interface code.])
+               fi
+       fi
+
+fi
 
 # Look for optional headers.
 AC_CHECK_HEADER(net/if_dl.h,
index afe88417c29daf2a2a69492a4ee1b39bbf67ee01..cd7ca73f5bf0fb24c98a1ae14ad1ab18f4c9cd77 100644 (file)
@@ -16,6 +16,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the <linux/types.h> header file. */
+#undef HAVE_LINUX_TYPES_H
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H