# pcwd Kernel Module Makefile
# 

VERSION=1.40

# The currently running kernel version. This is used right below to
# determine where the kernel sources can be found.
KERNELVERSION := $(shell uname -r)

# The location of linux itself. This is used to find the kernel headers
# and other things.
#LINUX := /usr/src/linux
LINUX := /lib/modules/$(KERNELVERSION)/build
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

CFLAGS := $(MODCPPFLAGS) -D__KERNEL__ -DMODULE -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -I$(LINUX_HEADERS)

OBJS = p4b_smbus.o

all: $(OBJS)

install: all
	install -d /lib/modules/$(KERNELVERSION)/kernel/drivers/i2c/busses
	install -c p4b_smbus.o /lib/modules/$(KERNELVERSION)/kernel/drivers/i2c/busses
#	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: all
	rmmod p4b_smbus
	install -d /lib/modules/$(KERNELVERSION)/kernel/drivers/i2c/busses
	install -c p4b_smbus.o /lib/modules/$(KERNEL)/kernel/drivers/i2c/busses
	depmod -a
#	modprobe p4b_smbus

clean:
	rm -f *.o *~ core

cleandist:
	rm -f *.o *~ core

