configure.in
上传用户:weyjxb
上传日期:2020-05-18
资源大小:52k
文件大小:7k
源码类别:

多显示器编程

开发平台:

Unix_Linux

  1. AC_INIT(voip-device.c,voip-device.c)
  2. AC_CONFIG_HEADER(voip-config.h)
  3. dnl look for some programs we need 
  4. AC_PATH_PROG(RMMOD,  rmmod,  rmmod,  $PATH:/sbin:/usr/sbin)
  5. AC_SUBST(RMMOD)
  6. AC_PATH_PROG(LSMOD, lsmod, lsmod, $PATH:/sbin:/usr/sbin)
  7. AC_SUBST(LSMOD)
  8. AC_PATH_PROG(DEPMOD, depmod, depod, $PATH:/sbin:/usr/sbin)
  9. AC_SUBST(DEPMOD)
  10. AC_PROG_AWK
  11. AC_PROG_INSTALL
  12. AC_SUBST(INSTALL)
  13. dnl determine driver version
  14. AC_MSG_CHECKING(for driver version)
  15. DRIVER_VER_MAJOR=`grep VOIP_VER_MAJOR voip-ver.h | $AWK '{print$3}'`
  16. DRIVER_VER_MINOR=`grep VOIP_VER_MINOR voip-ver.h | $AWK '{print$3}'`
  17. DRIVER_BLD_VER=`grep VOIP_BLD_VER voip-ver.h | $AWK '{print$3}'`
  18. DRIVER_VERSION="${DRIVER_VER_MAJOR}.${DRIVER_VER_MINOR}.${DRIVER_BLD_VER}"
  19. if test -n $DRIVER_VERSION ; then
  20.   AC_MSG_RESULT(version is $DRIVER_VERSION)
  21. else
  22.   AC_MSG_RESULT(unknown)
  23.   AC_MSG_ERROR(Could not find driver version)
  24. fi
  25. AC_SUBST(DRIVER_VERSION)
  26. dnl determine directory for kernel sources
  27. AC_MSG_CHECKING(for kernel source directory)
  28. KERNEL_DIR=/lib/modules/`uname -r`/build
  29. if test -n "$with_kernel_src" ; then
  30.   KERNEL_DIR=$with_kernel_src
  31.   if ! test -d $KERNEL_DIR ; then
  32.     AC_MSG_RESULT(no)
  33.     AC_MSG_ERROR(Cannot find specified directory $KERNEL_SRC)
  34.   fi
  35. elif test ! -d $KERNEL_DIR ; then
  36.   KERNEL_DIR=`find /usr/src/ -maxdepth 1 -type l -name linux-* | sort | head -1`
  37.   if test ! -n $KERNEL_DIR ; then
  38.     KERNEL_DIR=`find /usr/src/ -maxdepth 1 -type d -name linux-* | sort | head -1`
  39.     if test ! -n $KERNEL_DIR ; then
  40.       AC_MSG_RESULT(no)
  41.       AC_MSG_ERROR(Kernel source not in $KERNEL_DIR Use --with-kernel-src option to set location)
  42.     fi
  43.   fi
  44. fi
  45. AC_MSG_RESULT([yes ($KERNEL_DIR)])
  46. AC_SUBST(KERNEL_DIR)
  47. dnl see if source is present in directory
  48. AC_MSG_CHECKING(for complete kernel source)
  49. if test -e $KERNEL_DIR/Makefile ; then
  50.   AC_MSG_RESULT(yes)
  51. else
  52.   AC_MSG_RESULT(no)
  53.   AC_MSG_ERROR(Cannot continue without complete kernel source)
  54.   exit
  55. fi
  56. dnl check to see if kernel is configured
  57. AC_MSG_CHECKING(for configured kernel)
  58. if test -e $KERNEL_DIR/.config ; then
  59.   AC_MSG_RESULT(yes)
  60. else
  61.   AC_MSG_RESULT(no)
  62.   AC_MSG_ERROR(Run "make menuconfig" in kernel directory to configure kernel and try again)
  63.   exit
  64. fi
  65. dnl determine version of running kernel
  66. AC_MSG_CHECKING(running kernel version)
  67. VER=`uname -r`
  68. if test -n $VER ; then
  69.   AC_MSG_RESULT([ok ($VER)])
  70. else
  71.   AC_MSG_RESULT(cannot determine running kernel version via "uname -r")
  72.   AC_MSG_ERROR(Cannot continue without knowing kernel version)
  73. fi
  74. AC_SUBST(VER)
  75. dnl determine directory for kernel includes
  76. AC_MSG_CHECKING(for kernel includes directory)
  77. if test -d /lib/modules/$VER/build/include/ ; then
  78.   INCLUDE_DIR=/lib/modules/$VER/build/include
  79.   AC_MSG_RESULT([yes ($INCLUDE_DIR)])
  80. else
  81.   INCLUDE_DIR=/usr/include
  82.   AC_MSG_RESULT([no ($INCLUDE_DIR)])
  83. fi
  84. AC_SUBST(INCLUDE_DIR)
  85. dnl get kernel version of source code
  86. AC_MSG_CHECKING(that running and kernel source versions match)
  87. SOURCE_VERSION=`grep '^VERSION' $KERNEL_DIR/Makefile | $AWK '{print$3;}'`
  88. SOURCE_PATCHLEVEL=`grep '^PATCHLEVEL' $KERNEL_DIR/Makefile | $AWK '{print$3;}'`
  89. SOURCE_SUBLEVEL=`grep '^SUBLEVEL' $KERNEL_DIR/Makefile | $AWK '{print$3;}'`
  90. SOURCE_EXTRAVERSION=`grep '^EXTRAVERSION' $KERNEL_DIR/Makefile | $AWK '{print$3;}'`
  91. SOURCE_VER="${SOURCE_VERSION}.${SOURCE_PATCHLEVEL}.${SOURCE_SUBLEVEL}${SOURCE_EXTRAVERSION}"
  92. if test "$VER" = "$SOURCE_VER" ; then
  93.   AC_MSG_RESULT(yes)
  94. else
  95.   AC_MSG_RESULT(no)
  96.   AC_MSG_WARN(Kernel source version $SOURCE_VER does not match running version. This kernel module may not work correctly)
  97. fi
  98. dnl make sure kernel is compiled for modules
  99. AC_MSG_CHECKING(for kernel compiled with modules)
  100. HAS_MODULE=`grep '^CONFIG_MODULES' $KERNEL_DIR/.config | cut -d= -f2`
  101. if test "$HAS_MODULE" = "y" ; then
  102.   AC_MSG_RESULT(yes)
  103. else
  104.   AC_MSG_RESULT(no)
  105.   AC_MSG_ERROR(Kernel must be recompiled with modules support)
  106. fi 
  107. dnl find modules directory
  108. AC_MSG_CHECKING("modules directory")
  109. if test ! -d /lib/modules ; then
  110.   AC_MSG_RESULT(no)
  111.   AC_MSG_ERROR(Could not find modules directory /lib/modules)
  112. else
  113.   if test ! -d /lib/modules/$VER ; then
  114.     AC_MSG_RESULT(no)
  115.     AC_MSG_ERROR(Could not find modules directory /lib/modules/$VER)
  116.   else
  117.     AC_MSG_RESULT([yes (/lib/modules/$VER)])
  118.     MODULE_DIR=/lib/modules/$VER
  119.   fi
  120. fi
  121. dnl check if phone module is already in kernel
  122. AC_MSG_CHECKING("if kernel compiled with phone module")
  123. HAS_MODULE=`grep '^CONFIG_PHONE' $KERNEL_DIR/.config | cut -d= -f2`
  124. if test "$HAS_MODULE" = "y" ; then
  125.   AC_MSG_RESULT(no)
  126.   AC_MSG_ERROR(Change kernel to include CONFIG_PHONE as a module rather than built-in to kernel)
  127. elif test "$HAS_MODULE" = "n" ; then
  128.   AC_MSG_RESULT(no)
  129.   AC_MSG_ERROR(Change kernel to include CONFIG_PHONE as a module)
  130. else
  131.   AC_MSG_RESULT(yes)
  132. fi 
  133. dnl check if USB support is in kernel
  134. AC_MSG_CHECKING("for USB support in kernel")
  135. HAS_MODULE=`grep '^CONFIG_USB=' $KERNEL_DIR/.config | cut -d= -f2`
  136. if test "$HAS_MODULE" = "y" || test "$HAS_MODULE" = "m"; then
  137.   AC_MSG_RESULT(yes)
  138. else
  139.   AC_MSG_RESULT(no)
  140.   AC_MSG_ERROR(Kernel must be recompiled with USB support)
  141. fi 
  142. dnl if kernel version if 2.4, check if ISAPNP is configured in kernel
  143. if test $SOURCE_VERSION -eq 2 && test $SOURCE_PATCHLEVEL -ge 4 ; then
  144.   AC_DEFINE(VOIP_KERNEL_TYPE, 2, standard 2.4 kernel)
  145.   MODULE_DIR="$MODULE_DIR/kernel/drivers/telephony"
  146. fi
  147. dnl if kernel version is 2.2, check kill_fasync call
  148. if test $SOURCE_VERSION -eq 2 && test $SOURCE_PATCHLEVEL -eq 2 ; then
  149.   AC_DEFINE(VOIP_ASYNC_QUEUE, 1)
  150.   dnl checking kill_fasync call
  151.   AC_MSG_CHECKING("kernel for RedHat kill_fasync")
  152.   if test -n "$with_redhat_kernel" ; then
  153.     AC_MSG_RESULT([yes (forced)])
  154.     AC_DEFINE(VOIP_KERNEL_TYPE, 1, Forced RedHat 2.2 kernel)
  155.   else
  156.     OLD_CFLAGS=$CFLAGS
  157.     CFLAGS="$CFLAGS -Wall -D__KERNEL__ -DMODULE -I/usr/include"
  158.     AC_TRY_COMPILE([#include <linux/fs.h>], {struct fasync_struct * a = 0; kill_fasync(a,0);}, VOIP_FASYNC_TYPE=0, VOIP_FASYNC_TYPE=1)
  159.     if test "$VOIP_FASYNC_TYPE" = "1" ; then
  160.       AC_MSG_RESULT("yes")
  161.       AC_DEFINE(VOIP_KERNEL_TYPE, 1, RedHat 2.2 kernel)
  162.     else
  163.       AC_MSG_RESULT("no")
  164.       AC_DEFINE(VOIP_KERNEL_TYPE, 0, standard 2.2 kernel)
  165.     fi
  166.     CFLAGS=$OLD_CFLAGS
  167.   fi
  168.   MODULE_DIR="$MODULE_DIR/misc"
  169. fi
  170. AC_SUBST(MODULE_DIR)
  171. if test ! -n $VOIP_KERNEL_TYPE ; then
  172.   AC_MSG_ERROR(Unable to configure for kernel version $SOURCE_VER)
  173. fi
  174. dnl check for phone devices
  175. AC_MSG_CHECKING("for /dev/phone devices")
  176. if test -c /dev/phone0 ; then
  177.   AC_MSG_RESULT("yes")
  178. else
  179.   AC_MSG_RESULT("no")
  180.   AC_MSG_WARN(Run phone_dev_create script when finished to create phone devices)
  181. fi
  182. dnl Checking for option to set maximum number of devices
  183. AC_MSG_CHECKING("for max VOIP device count")
  184. if test "$with_max_device_count" = "" ; then
  185.   VOIP_MAX=4
  186. elif test $with_max_device_count -lt 1 || test $with_max_device_count -gt 16 ; then
  187.   AC_MSG_ERROR(Cannot set maximum number of devices to $with_max_device_count)
  188. else
  189.   VOIP_MAX=$with_max_device_count
  190. fi
  191. AC_MSG_RESULT($VOIP_MAX devices)
  192. AC_SUBST(VOIP_MAX)
  193. AC_OUTPUT(Makefile)