# Makefile for the plustek scanner driver (kernel-module) # ############################################################################### # # retrieve the version numbers # ifeq ($(LINUXVERSION),) LINUXVERSION = $(shell uname -r) endif VERSION0 = $(shell cat $(SUBDIRS)/../VERSION0) VERSION1 = $(shell cat $(SUBDIRS)/../VERSION1) BUILD = $(shell cat $(SUBDIRS)/../BUILD) # # extra flags # EXTRA_CFLAGS += -D_PTDRV_V1=$(VERSION1) -D_PTDRV_V0=$(VERSION0) -D_PTDRV_BUILD=$(BUILD) ifeq ($(DEBUG),y) EXTRA_CFLAGS += -DDEBUG endif # # the module name # TARGET := pt_drv MODULE := $(TARGET).ko # # our files... # NAMES := dac detect genericio image map misc models io procfs NAMES := $(NAMES) motor p9636 ptdrv scale tpa p48xx p12 p12ccd NAMES := $(addprefix plustek-pp_, $(NAMES)) OBJS := $(addsuffix .o, $(NAMES)) # # now the kernel magic # ifneq ($(KERNELRELEASE),) obj-m := $(TARGET).o $(TARGET)-objs := $(OBJS) else KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules endif # # the installation stuff # group = "root" mode = "644" INST_DIR = /lib/modules/$(LINUXVERSION)/kernel/drivers/parport # # copy the driver to the modules directory # install: mkdir -p $(INST_DIR) install -c -m $(mode) $(MODULE) $(INST_DIR) /sbin/depmod -a # # # uninstall: rm -f $(INST_DIR)/$(MODULE) # # use modprobe to load the driver, remember to set the # parameter in /etc/conf.modules (see INSTALL for more details) # load: $(INST_DIR)/$(MODULE) # invoke modprobe with all arguments we got /sbin/modprobe $(TARGET) || exit 1 # Remove stale nodes and replace them, then give gid and perms rm -f /dev/$(TARGET)* # when using the devfs support, we check the /dev/scanner entries # and only create links to the devfs nodes # at least we create one link @if [ -e /dev/scanner/$(TARGET)* ]; then \ ln -s /dev/scanner/$(TARGET)0 /dev/$(TARGET); \ for name in `ls /dev/scanner | grep $(TARGET)`; do \ ln -s /dev/scanner/$$name /dev/$$name ; \ done \ else \ mknod /dev/$(TARGET) c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \ mknod /dev/$(TARGET)0 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 0; \ mknod /dev/$(TARGET)1 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 1; \ mknod /dev/$(TARGET)2 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 2; \ mknod /dev/$(TARGET)3 c `cat /proc/devices | sed -ne "s/\([0-9]*\) pt_drv/\1/p"` 3; \ \ chgrp $(group) /dev/$(TARGET)*; \ chmod $(mode) /dev/$(TARGET)*; \ fi # # unload the driver # unload: /sbin/modprobe -r $(TARGET) || exit 1 # Remove stale nodes rm -f /dev/$(TARGET)* # # cleanup the show # clean: @-rm -f *.o .depend depend dep $(MODULE) $(TARGET).o $(TARGET).mod.c .*.cmd