m4/as-linux.m4: don't use backported pcmcia_loop_tuple()
[comedi.git] / configure.ac
index aa52bd3ae24c4c31e43dfc9aa10ca67ccac5ba46..7f788b7ff11e8b2851dbc1ec8e2ab4b32e5d0d3d 100644 (file)
@@ -1,5 +1,5 @@
 
-AC_INIT([comedi],[0.7.75])
+AC_INIT([comedi],[0.7.76])
 AC_CONFIG_SRCDIR([comedi/comedi_fops.c])
 AC_CONFIG_HEADERS(config.h)
 
@@ -12,8 +12,8 @@ fi
 PACKAGE=comedi
 COMEDI_MAJORVERSION=0
 COMEDI_MINORVERSION=7
-COMEDI_MICROVERSION=75
-# set the nanoversion to 0 for releases, 1 for CVS, >= 2 for prereleases
+COMEDI_MICROVERSION=76
+# set the nanoversion to 0 for releases, 1 for Git, >= 2 for prereleases
 COMEDI_NANOVERSION=0
 
 if test x$COMEDI_NANOVERSION = x0 ; then
@@ -67,31 +67,143 @@ CC=$LINUX_CC
  -DKBUILD_BASENAME=\$(shell basename \$< .c)"]
 AC_SUBST(COMEDI_CFLAGS)
 
-COMEDI_CHECK_PCMCIA_PROBE([$LINUX_DIR], [ENABLE_PCMCIA="yes"], [ENABLE_PCMCIA="no"])
-#disable pcmcia by default until someone updates it to current kernel api
-ENABLE_PCMCIA="no"
+AS_CHECK_LINUX_CONFIG_OPTION([CONFIG_PCI],[HAVE_PCI="yes"],[HAVE_PCI="yes"],[HAVE_PCI="no"])
+AM_CONDITIONAL([CONFIG_PCI],[test "$HAVE_PCI" = "yes"])
+AC_ARG_ENABLE([pci],[  --disable-pci           Disable support for PCI devices],
+       [ENABLE_PCI=$enableval],[ENABLE_PCI="maybe"])
+if test "$HAVE_PCI" = "yes" ; then
+       if test "$ENABLE_PCI" = "no" ; then
+               AC_MSG_NOTICE([PCI support disabled])
+               USE_PCI="no"
+       else
+               AC_DEFINE([CONFIG_COMEDI_PCI],[true],[Define if PCI support is enabled])
+               USE_PCI="yes"
+       fi
+else
+       if test "$ENABLE_PCI" = "yes" ; then
+               AC_MSG_ERROR([Kernel does not support PCI])
+       fi
+       USE_PCI="no"
+fi
+AM_CONDITIONAL([CONFIG_COMEDI_PCI],[test "$USE_PCI" = "yes"])
+
+COMEDI_CHECK_PCMCIA_DRIVER_PROBE([$LINUX_SRC_DIR],
+       [AS_CHECK_LINUX_CONFIG_OPTION([CONFIG_PCMCIA],
+               [HAVE_PCMCIA="yes"],[HAVE_PCMCIA="yes"],[HAVE_PCMCIA="no"])],
+       [HAVE_PCMCIA="no"])
+AM_CONDITIONAL([CONFIG_PCMCIA],[test "$HAVE_PCMCIA" = "yes"])
 AC_ARG_ENABLE([pcmcia],[  --disable-pcmcia     Disable support for PCMCIA devices],
-       [ENABLE_PCMCIA=$enableval],[])
-if test "$ENABLE_PCMCIA" = "yes" ; then
-       AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_PCMCIA)
+       [ENABLE_PCMCIA=$enableval],[ENABLE_PCMCIA="maybe"])
+if test "$HAVE_PCMCIA" = "yes" ; then
+       if test "$ENABLE_PCMCIA" = "no" ; then
+               AC_MSG_NOTICE([PCMCIA support disabled])
+               USE_PCMCIA="no"
+       else
+               AC_DEFINE([CONFIG_COMEDI_PCMCIA],[true],[Define if using PCMCIA support])
+               USE_PCMCIA="yes"
+       fi
 else
-       AC_MSG_NOTICE([PCMCIA support disabled])
-       AM_CONDITIONAL(CONFIG_PCMCIA,false)
+       if test "$ENABLE_PCMCIA" = "yes" ; then
+               AC_MSG_ERROR([Kernel does not support PCMCIA or its API is not supported by Comedi])
+       fi
+       USE_PCMCIA="no"
+fi
+AM_CONDITIONAL([CONFIG_COMEDI_PCMCIA],[test "$USE_PCMCIA" = "yes"])
+
+COMEDI_CHECK_PCMCIA_DRIVER_NAME([$LINUX_SRC_DIR],
+      [HAVE_PCMCIA_DRIVER_NAME="yes"], [HAVE_PCMCIA_DRIVER_NAME="no"])
+if test "$HAVE_PCMCIA_DRIVER_NAME" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_PCMCIA_DRIVER_NAME],[true],[Define if Linux kernel source has name member in struct pcmcia_driver])
+fi
+
+COMEDI_CHECK_PCMCIA_LOOP_TUPLE([$LINUX_SRC_DIR],
+      [HAVE_PCMCIA_LOOP_TUPLE="yes"], [HAVE_PCMCIA_LOOP_TUPLE="no"])
+if test "$HAVE_PCMCIA_LOOP_TUPLE" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_PCMCIA_LOOP_TUPLE],[true],[Define if Linux kernel source has pcmcia_loop_tuple function])
 fi
+
+COMEDI_CHECK_DS_DEV_NODE_T([$LINUX_SRC_DIR],
+      [HAVE_DS_DEV_NODE_T="yes"], [HAVE_DS_DEV_NODE_T="no"])
+if test "$HAVE_DS_DEV_NODE_T" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_DS_DEV_NODE_T],[true],[Define if Linux kernel source has dev_node_t in pcmcia/ds.h (removed in 2.6.35)])
+fi
+
+COMEDI_CHECK_CS_IRQ_REQ_T([$LINUX_SRC_DIR],
+      [HAVE_CS_IRQ_REQ_T="yes"], [HAVE_CS_IRQ_REQ_T="no"])
+if test "$HAVE_CS_IRQ_REQ_T" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_CS_IRQ_REQ_T],[true],[Define if Linux kernel source has irq_req_t in pcmcia/cs.h (removed in 2.6.35)])
+fi
+
+COMEDI_CHECK_CS_IO_REQ_T([$LINUX_SRC_DIR],
+      [HAVE_CS_IO_REQ_T="yes"], [HAVE_CS_IO_REQ_T="no"])
+if test "$HAVE_CS_IO_REQ_T" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_CS_IO_REQ_T],[true],[Define if Linux kernel source has io_req_t in pcmcia/cs.h (removed in 2.6.36)])
+fi
+
+COMEDI_CHECK_CS_MEMREQ_T([$LINUX_SRC_DIR],
+      [HAVE_CS_MEMREQ_T="yes"], [HAVE_CS_MEMREQ_T="no"])
+if test "$HAVE_CS_MEMREQ_T" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_CS_MEMREQ_T],[true],[Define if Linux kernel source has memreq_t in pcmcia/cs.h (removed in 2.6.36)])
+fi
+
+COMEDI_CHECK_HAVE_CS_TYPES_H([$LINUX_SRC_DIR],
+      [HAVE_CS_TYPES_H="yes"], [HAVE_CS_TYPES_H="no"])
+if test "$HAVE_CS_TYPES_H" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_CS_TYPES_H],[true],[Define if Linux kernel source has pcmcia/cs_types.h (removed in 2.6.36)])
+fi
+
+COMEDI_CHECK_HAVE_CS_H([$LINUX_SRC_DIR],
+      [HAVE_CS_H="yes"], [HAVE_CS_H="no"])
+if test "$HAVE_CS_TYPES_H" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_CS_H],[true],[Define if Linux kernel source has pcmcia/cs.h (removed in 2.6.37)])
+fi
+
+COMEDI_CHECK_HAVE_GENERIC_BOOL_TYPE([$LINUX_SRC_DIR],
+      [HAVE_GENERIC_BOOL_TYPE="yes"], [HAVE_GENERIC_BOOL_TYPE="no"])
+if test "$HAVE_GENERIC_BOOL_TYPE" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_GENERIC_BOOL_TYPE],[true],[Define if Linux kernel source has generic 'bool' type in linux/types.h])
+fi
+
+COMEDI_CHECK_REQUEST_FIRMWARE_NOWAIT_HAS_GFP([$LINUX_SRC_DIR],
+       [REQUEST_FIRMWARE_NOWAIT_HAS_GFP="yes"],
+       [REQUEST_FIRMWARE_NOWAIT_HAS_GFP="no"])
+if test "$REQUEST_FIRMWARE_NOWAIT_HAS_GFP" = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_REQUEST_FIRMWARE_NOWAIT_HAS_GFP],[true],[Define if Linux kernel 'request_firmware_nowait' function has 'gfp' parameter])
+fi
+
+AS_CHECK_LINUX_CONFIG_OPTION([CONFIG_USB],[HAVE_USB="yes"],[HAVE_USB="yes"],[HAVE_USB="no"])
+AM_CONDITIONAL([CONFIG_USB],[test "$HAVE_USB" = "yes"])
 AC_ARG_ENABLE([usb],[  --disable-usb           Disable support for USB devices],
-       [ENABLE_USB=$enableval],[ENABLE_USB="yes"])
-if test "$ENABLE_USB" = "yes" ; then
-       AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_USB)
+       [ENABLE_USB=$enableval],[ENABLE_USB="maybe"])
+if test "$HAVE_USB" = "yes" ; then
+       if test "$ENABLE_USB" = "no" ; then
+               AC_MSG_NOTICE([USB support disabled])
+               USE_USB="no"
+       else
+               AC_DEFINE([CONFIG_COMEDI_USB],[true],[Define if using USB support])
+               USE_USB="yes"
+       fi
 else
-       AC_MSG_NOTICE([USB support disabled])
-       AM_CONDITIONAL(CONFIG_USB,false)
+       if test "$ENABLE_USB" = "yes" ; then
+               AC_MSG_ERROR([Kernel does not support USB])
+       fi
+       USE_USB="no"
 fi
-COMEDI_CHECK_LINUX_KBUILD([$LINUX_DIR], [ENABLE_KBUILD="yes"], [ENABLE_KBUILD="no"])
+AM_CONDITIONAL([CONFIG_COMEDI_USB],[test "$USE_USB" = "yes"])
+
+COMEDI_CHECK_LINUX_KBUILD([$LINUX_SRC_DIR], [ENABLE_KBUILD="yes"], [ENABLE_KBUILD="no"])
 AC_ARG_ENABLE([kbuild], [  --enable-kbuild     Force use (or not) of kernel's Kbuild system to build modules (needs recent 2.6 kernel)],
        [ENABLE_KBUILD=$enableval], [])
 AM_CONDITIONAL([CONFIG_KBUILD], [test ${ENABLE_KBUILD} = "yes"])
+COMEDI_CHECK_HAVE_MUTEX_H([$LINUX_SRC_DIR], [HAVE_MUTEX_H="yes"], [HAVE_MUTEX_H="no"])
+if test ${HAVE_MUTEX_H} = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_MUTEX_H], [true], [Define if Linux kernel has mutex.h header])
+fi
+COMEDI_CHECK_HAVE_LINUX_SEMAPHORE_H([$LINUX_SRC_DIR], [HAVE_LINUX_SEMAPHORE_H="yes"], [HAVE_LINUX_SEMAPHORE_H="no"])
+if test ${HAVE_LINUX_SEMAPHORE_H} = "yes" ; then
+       AC_DEFINE([CONFIG_COMEDI_HAVE_LINUX_SEMAPHORE_H], [true], [Define if Linux kernel has linux/semaphore.h header])
+fi
 AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_ISA)
-AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_PCI)
 
 AC_DEFINE(CONFIG_COMEDI_DEBUG, true, [Define if debugging is enabled])
 AC_DEFINE(CONFIG_COMEDI_8255, true, [Define if 8255 support is enabled])