+include comedi_kbuild.inc
+
obj-m += comedi.o
comedi-y := comedi_fops.o proc.o range.o drivers.o comedi_ksyms.o
-#FIXME: these should be added for rt-enabled kernels
-#comedi-y += rt_pend_tq.o rt.o
+comedi-$(CONFIG_COMEDI_RT) += rt_pend_tq.o rt.o
obj-y += kcomedilib/
obj-y += drivers/
SUBDIRS = . kcomedilib drivers
+if CONFIG_KBUILD
+module_PROGRAMS =
+all-local: comedi_kbuild.inc
+ make -I@abs_builddir@ -C $(LINUX_DIR) M=@abs_builddir@ CC="$(LINUX_CC) -I@abs_top_srcdir@/ -I @abs_top_srcdir@/include" V=1 modules
+install-data-local: comedi_kbuild.inc
+ make -I@abs_builddir@ -C $(LINUX_DIR) M=@abs_builddir@ CC="$(LINUX_CC) -I@abs_top_srcdir@/ -I @abs_top_srcdir@/include" V=1 modules_install
+clean-local: comedi_kbuild.inc
+ make -I@abs_builddir@ -C $(LINUX_DIR) M=@abs_builddir@ CC="$(LINUX_CC) -I@abs_top_srcdir@/ -I @abs_top_srcdir@/include" V=1 clean
+else
module_PROGRAMS = comedi.ko
+all-local:
+install-data-local:
+clean-local:
+endif
EXTRA_DIST = \
rt_pend_tq.h
-test -z "$(module_PROGRAMS)" || rm -f $(module_PROGRAMS)
-rm -rf .mods
+comedi_kbuild.inc: Makefile
+ echo > $@
+if CONFIG_COMEDI_RT
+ echo CONFIG_COMEDI_RT=y >> $@
+ echo CONFIG_COMEDI_RT_MODULES=m >> $@
+endif
+if CONFIG_PCMCIA
+ echo CONFIG_COMEDI_PCMCIA_MODULES=m >> $@
+endif
+if CONFIG_USB
+ echo CONFIG_COMEDI_USB_MODULES=m >> $@
+endif
-obj-y += addi-data/
+include comedi_kbuild.inc
-#FIXME: deal with conditionally compiled rt/pcmcia/usb modules
+obj-y += addi-data/
-#if CONFIG_COMEDI_RT
-#rt_modules = comedi_rt_timer.ko
-#endif
+obj-$(CONFIG_COMEDI_RT_MODULES) += comedi_rt_timer.o
-#if CONFIG_PCMCIA
-#pcmcia_modules= \
-# cb_das16_cs.ko \
-# das08_cs.ko \
-# ni_daq_dio24.ko \
-# ni_mio_cs.ko \
-# ni_labpc_cs.ko \
-# quatech_daqp_cs.ko
-#endif
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += cb_das16_cs.o
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += das08_cs.o
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += ni_daq_dio24.o
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += ni_mio_cs.o
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += ni_labpc_cs.o
+obj-$(CONFIG_COMEDI_PCMCIA_MODULES) += quatech_daqp_cs.o
-#if CONFIG_USB
-#usb_modules= \
-# usbdux.ko \
-# usbduxfast.ko \
-# dt9812.ko
-#else
-#usb_modules=
-#endif
+obj-$(CONFIG_COMEDI_USB_MODULES) += usbdux.o
+obj-$(CONFIG_COMEDI_USB_MODULES) += usbduxfast.o
+obj-$(CONFIG_COMEDI_USB_MODULES) += dt9812.o
obj-m += 8255.o
obj-m += amcc_s5933.o
usb_modules=
endif
+if CONFIG_KBUILD
+module_PROGRAMS =
+else !CONFIG_KBUILD
module_PROGRAMS = \
8255.ko \
amcc_s5933.ko \
$(pcmcia_modules) \
$(usb_modules) \
$(rt_modules)
+endif !CONFIG_KBUILD
8255_ko_SOURCES = 8255.c
acl7225b_ko_SOURCES = acl7225b.c
AM_CFLAGS = $(COMEDI_CFLAGS) $(LINUX_CFLAGS) $(RTAI_CFLAGS) $(RTLINUX_CFLAGS)
LINK = $(top_builddir)/modtool --link -o $@
+if CONFIG_KBUILD
+module_PROGRAMS =
+else
module_PROGRAMS = addi_common.ko
+endif
addi_common_ko_SOURCES = addi_common.c
+if CONFIG_KBUILD
+module_PROGRAMS =
+else
module_PROGRAMS = kcomedilib.ko
+endif
kcomedilib_ko_SOURCES = data.c ksyms.c dio.c kcomedilib_main.c get.c
kcomedilib_ko_CFLAGS = $(COMEDI_CFLAGS) $(LINUX_CFLAGS) $(RTAI_CFLAGS) $(RTLINUX_CFLAGS)
fi
AC_ARG_ENABLE([kbuild], [ --enable-kbuild Build modules using kernel's kbuild system (needs recent 2.6 kernel)],
[ENABLE_KBUILD=$enableval], [ENABLE_KBUILD="no"])
+AM_CONDITIONAL([CONFIG_KBUILD], [test ${ENABLE_KBUILD} = "yes"])
AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_ISA)
AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_PCI)
AS_LINUX_CONFIG_OPTION_MODULE(CONFIG_USB)