# pcwd Kernel Module Makefile # VERSION=1.40 # The location of linux itself. This is used to find the kernel headers # and other things. LINUX=/usr/src/linux LINUX_HEADERS=$(LINUX)/include # Uncomment the third line on SMP systems if the magic invocation fails. It # is a bit complicated because SMP configuration changed around kernel 2.1.130 SMP := $(shell if grep -q '^SMP[[:space:]]*=' $(LINUX)/Makefile || \ grep -q '^[[:space:]]*\#define[[:space:]]*CONFIG_SMP[[:space:]]*1' $(LINUX_HEADERS)/linux/autoconf.h ; \ then echo 1; else echo 0; fi) #SMP := 0 #SMP := 1 # Uncomment the second or third line if the magic invocation fails. # We need to know whether CONFIG_MODVERSIONS is defined. MODVER := $(shell if cat $(LINUX_HEADERS)/linux/config.h $(LINUX_HEADERS)/linux/autoconf.h 2>/dev/null | grep -q '^[[:space:]]*\#define[[:space:]]*CONFIG_MODVERSIONS[[:space:]]*1'; then echo 1; else echo 0; fi) #MODVER := 0 #MODVER := 1 MODCPPFLAGS := ifeq ($(SMP),1) MODCPPFLAGS += -D__SMP__ endif ifeq ($(MODVER),1) MODCPPFLAGS += -DMODVERSIONS -include $(LINUX_HEADERS)/linux/modversions.h endif VER = $(shell uname -r) INCLUDEDIR= /lib/modules/$(VER)/build/include CFLAGS= $(MODCPPFLAGS) -D__KERNEL__ -DMODULE -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -I$(INCLUDEDIR) OBJS = p4b_smbus.o all: $(OBJS) install: $(MAKE) install -d /lib/modules/$(VER)/kernel/drivers/char install -c p4bsmbus.o /lib/modules/$(VER)/kernel/drivers/char # test ! -x /dev/watchdog || mknod -m 600 /dev/watchdog c 10 130 # test ! -x /dev/temperature || mknod -m 600 /dev/temperature c 10 131 inst: $(MAKE) rmmod p4b_smbus install -d /lib/modules/$(VER)/kernel/drivers/char install -c p4b_smbus.o /lib/modules/$(VER)/kernel/drivers/char depmod -a # modprobe p4b_smbus clean: rm -f *.o *~ core cleandist: rm -f *.o *~ core