From d1679d45cd5664b707ece84431ca1d20f5637180 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Fri, 16 Jan 2009 14:18:10 +0000 Subject: Properly detect GENERIC_HDLC_VERSION on various kernel versions. (closes issue #14150) Reported by: ccesario Patches: 20090115__bug14150.diff.txt uploaded by seanbright (license 71) Tested by: ccesario git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@5662 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- configure | 125 +++++++++++++++++++++++++++++++++-------------------------- configure.ac | 48 +++++++++++++++++------ 2 files changed, 107 insertions(+), 66 deletions(-) diff --git a/configure b/configure index 8b154cf..581d344 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 4904 . +# From configure.ac Revision: 4977 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # @@ -4420,17 +4420,10 @@ _ACEOF fi - - if test "x${PBX_HDLC}" != "x1"; then - { echo "$as_me:$LINENO: checking for GENERIC_HDLC_VERSION in linux/hdlc.h" >&5 -echo $ECHO_N "checking for GENERIC_HDLC_VERSION in linux/hdlc.h... $ECHO_C" >&6; } - saved_cppflags="${CPPFLAGS}" - if test "x${HDLC_DIR}" != "x"; then - HDLC_INCLUDE="-I${HDLC_DIR}/include" - fi - CPPFLAGS="${CPPFLAGS} ${HDLC_INCLUDE}" - - cat >conftest.$ac_ext <<_ACEOF +PBX_HDLC=0 +{ echo "$as_me:$LINENO: checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc.h" >&5 +echo $ECHO_N "checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc.h... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -4440,13 +4433,12 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#if defined(GENERIC_HDLC_VERSION) - int foo = 0; - #else - int foo = bar; - #endif - 0 - +#if defined(GENERIC_HDLC_VERSION) && GENERIC_HDLC_VERSION >= 4 + int foo = 0; + #else + int foo = bar; + #endif + 0 ; return 0; } @@ -4468,32 +4460,80 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - { echo "$as_me:$LINENO: result: yes" >&5 + { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - PBX_HDLC=1 + PBX_HDLC=1 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -cat >>confdefs.h <<\_ACEOF -#define HAVE_HDLC 1 -_ACEOF + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi -cat >>confdefs.h <<\_ACEOF -#define HAVE_HDLC_VERSION 4 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test $PBX_HDLC = 0; then + { echo "$as_me:$LINENO: checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc/ioctl.h" >&5 +echo $ECHO_N "checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc/ioctl.h... $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 + #include +int +main () +{ +#if defined(GENERIC_HDLC_VERSION) && GENERIC_HDLC_VERSION >= 4 + int foo = 0; + #else + int foo = bar; + #endif + 0 + ; + return 0; +} +_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 + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + PBX_HDLC=1 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { echo "$as_me:$LINENO: result: no" >&5 + { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="${saved_cppflags}" - fi +fi + +if test "x${PBX_HDLC}" != "x1"; then + { echo "$as_me:$LINENO: GENERIC_HDLC_VERSION (version 4) not found, disabling sethdlc." >&5 +echo "$as_me: GENERIC_HDLC_VERSION (version 4) not found, disabling sethdlc." >&6;} +fi @@ -4560,31 +4600,6 @@ echo "$as_me: error: failed to find pppd/patchlevel.h: no ppp support." >&2;} ;; esac -if test "x${PBX_HDLC}" == "x1"; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - VERSION = GENERIC_HDLC_VERSION -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "VERSION = 4" >/dev/null 2>&1; then - : -else - PBX_HDLC=0 -fi -rm -f conftest* - -fi - -if test "x${PBX_HDLC}" != "x1"; then - { echo "$as_me:$LINENO: GENERIC_HDLC_VERSION version 4 not found, disabling sethdlc." >&5 -echo "$as_me: GENERIC_HDLC_VERSION version 4 not found, disabling sethdlc." >&6;} -fi - if test "x${PBX_DAHDI}" != "x1"; then { echo "$as_me:$LINENO: ***" >&5 echo "$as_me: ***" >&6;} diff --git a/configure.ac b/configure.ac index 23929f1..8893fec 100644 --- a/configure.ac +++ b/configure.ac @@ -90,7 +90,43 @@ AST_C_DEFINE_CHECK([DAHDI], [DAHDI_CODE], [dahdi/user.h]) AST_EXT_LIB_CHECK([NEWT], [newt], [newtBell], [newt.h]) AST_EXT_LIB_CHECK([USB], [usb], [usb_init], [usb.h]) -AST_C_DEFINE_CHECK([HDLC], [GENERIC_HDLC_VERSION], [linux/hdlc.h], [4]) +PBX_HDLC=0 +AC_MSG_CHECKING([for GENERIC_HDLC_VERSION version 4 in linux/hdlc.h]) +AC_COMPILE_IFELSE( + [ AC_LANG_PROGRAM( [#include ], + [#if defined(GENERIC_HDLC_VERSION) && GENERIC_HDLC_VERSION >= 4 + int foo = 0; + #else + int foo = bar; + #endif + 0])], + [AC_MSG_RESULT(yes) + PBX_HDLC=1], + [AC_MSG_RESULT(no)] +) +if test $PBX_HDLC = 0; then + AC_MSG_CHECKING([for GENERIC_HDLC_VERSION version 4 in linux/hdlc/ioctl.h]) + AC_COMPILE_IFELSE( + [ AC_LANG_PROGRAM( [ + #include + #include ], + [#if defined(GENERIC_HDLC_VERSION) && GENERIC_HDLC_VERSION >= 4 + int foo = 0; + #else + int foo = bar; + #endif + 0])], + [AC_MSG_RESULT(yes) + PBX_HDLC=1], + [AC_MSG_RESULT(no)] + ) +fi + +if test "x${PBX_HDLC}" != "x1"; then + AC_MSG_NOTICE([GENERIC_HDLC_VERSION (version 4) not found, disabling sethdlc.]) +fi + +AC_SUBST(PBX_HDLC) AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux], @@ -146,16 +182,6 @@ case "$with_ppp" in ;; esac -if test "x${PBX_HDLC}" == "x1"; then - AC_EGREP_CPP([VERSION = 4], - [#include - VERSION = GENERIC_HDLC_VERSION], [], [PBX_HDLC=0]) -fi - -if test "x${PBX_HDLC}" != "x1"; then - AC_MSG_NOTICE([GENERIC_HDLC_VERSION version 4 not found, disabling sethdlc.]) -fi - if test "x${PBX_DAHDI}" != "x1"; then AC_MSG_NOTICE([***]) AC_MSG_NOTICE([*** Building this package requires DAHDI support. *** ]) -- cgit v1.2.3