m4/as-linux.m4: don't use backported pcmcia_loop_tuple()
[comedi.git] / configure.ac
index 7eece8baf4f1addf7a169678b4fad48d2e2bf213..7f788b7ff11e8b2851dbc1ec8e2ab4b32e5d0d3d 100644 (file)
@@ -1,5 +1,5 @@
 
-AC_INIT
+AC_INIT([comedi],[0.7.76])
 AC_CONFIG_SRCDIR([comedi/comedi_fops.c])
 AC_CONFIG_HEADERS(config.h)
 
@@ -12,9 +12,9 @@ fi
 PACKAGE=comedi
 COMEDI_MAJORVERSION=0
 COMEDI_MINORVERSION=7
-COMEDI_MICROVERSION=68
-# set the nanoversion to 0 for releases, 1 for CVS, >= 2 for prereleases
-COMEDI_NANOVERSION=1
+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
   VERSION=$COMEDI_MAJORVERSION.$COMEDI_MINORVERSION.$COMEDI_MICROVERSION
@@ -22,7 +22,7 @@ else
   VERSION=$COMEDI_MAJORVERSION.$COMEDI_MINORVERSION.$COMEDI_MICROVERSION.$COMEDI_NANOVERSION
 fi
 
-AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+AM_INIT_AUTOMAKE([])
 AM_MAINTAINER_MODE
 
 AC_SUBST(PACKAGE)
@@ -32,8 +32,9 @@ AC_DEFINE_UNQUOTED(COMEDI_MINORVERSION, $COMEDI_MINORVERSION, [Comedi minor vers
 AC_DEFINE_UNQUOTED(COMEDI_MICROVERSION, $COMEDI_MICROVERSION, [Comedi micro version])
 
 AC_PROG_CC()
-AC_PATH_PROG(STRIP,strip)
-AC_PATH_PROG([DEPMOD], [depmod], [no], [PATH:/sbin:/usr/sbin:/usr/local/sbin])
+AM_PROG_CC_C_O
+AC_PATH_TOOL([STRIP],[strip])
+AC_PATH_PROG([DEPMOD], [depmod], [no], [$PATH:/sbin:/usr/sbin:/usr/local/sbin])
 if test "$DEPMOD" == "no" ; then
        AC_MSG_ERROR([unable to find the 'depmod' program.])
 fi
@@ -41,7 +42,14 @@ fi
 AS_LINUX()
 AS_LINUX_MODTOOL()
 
-DS_RTAI([USE_RTAI=yes],[USE_RTAI=no])
+AC_ARG_ENABLE([rtai], [  --disable-rtai        disable use of rtai],
+       [ENABLE_RTAI=$enableval], [ENABLE_RTAI="yes"])
+DS_RTAI([HAVE_RTAI=yes],[HAVE_RTAI=no])
+if test "$HAVE_RTAI" == "yes" -a "$ENABLE_RTAI" == "yes"; then
+       USE_RTAI="yes"
+else
+       USE_RTAI="no"
+fi
 DS_RTLINUX([USE_RTLINUX=yes],[USE_RTLINUX=no])
 AM_CONDITIONAL([CONFIG_COMEDI_RT],
        [test ${USE_RTAI} = "yes" -o ${USE_RTLINUX} = "yes"])
@@ -59,36 +67,161 @@ CC=$LINUX_CC
  -DKBUILD_BASENAME=\$(shell basename \$< .c)"]
 AC_SUBST(COMEDI_CFLAGS)
 
+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],[ENABLE_PCMCIA="probe"])
-if test "$ENABLE_PCMCIA" = "probe" ; then
-       if test "x$(echo "$LINUX_KERNELRELEASE" | grep '^2.6')" != x ; then
-               AC_MSG_NOTICE([Disabling PCMCIA drivers because they haven't been ported to Linux-2.6])
-               ENABLE_PCMCIA=no
+       [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_MSG_NOTICE([moo])
-               ENABLE_PCMCIA=yes
+               AC_DEFINE([CONFIG_COMEDI_PCMCIA],[true],[Define if using PCMCIA support])
+               USE_PCMCIA="yes"
+       fi
+else
+       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
-if test "$ENABLE_PCMCIA" = "yes" ; then
-       AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_PCMCIA)
+
+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="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([PCMCIA support disabled])
-       AM_CONDITIONAL(CONFIG_PCMCIA,false)
+       if test "$ENABLE_USB" = "yes" ; then
+               AC_MSG_ERROR([Kernel does not support USB])
+       fi
+       USE_USB="no"
+fi
+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)
-AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_USB)
 
 AC_DEFINE(CONFIG_COMEDI_DEBUG, true, [Define if debugging is enabled])
 AC_DEFINE(CONFIG_COMEDI_8255, true, [Define if 8255 support is enabled])
 
-AC_OUTPUT([
+DISTCHECK_CONFIGURE_FLAGS="--with-modulesdir=\\\$\$\(prefix\)/modules"
+AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
+
+AC_CONFIG_FILES([
 Makefile
 comedi/Makefile
+comedi/comedi_kbuild.inc
 comedi/drivers/Makefile
+comedi/drivers/addi-data/Makefile
 comedi/kcomedilib/Makefile
+include/Makefile
+include/asm/Makefile
+include/linux/Makefile
+include/pcmcia/Makefile
 ])
-#comedi/drivers/addi-data/Makefile
+AC_OUTPUT