# change KERNELSRC to the location of your kernel build tree
#KERNELSRC=/lib/modules/2.6.6-1-k7/build
#KERNELSRC=/usr/src/linux
KERNELSRC=/lib/modules/`uname -r`/build
KERNELVERSION=$(shell awk -F\" '/REL/ {print $$2}' $(KERNELSRC)/include/linux/version.h)
KERNELMAJOR=$(shell echo $(KERNELVERSION)|head -c3)

# next line is for kernel 2.6, if you integrate the driver in the kernel tree
# /usr/src/linux/drivers/acerhk - or something similar
# don't forget to add the following line to the parent dir's Makefile:
# (/usr/src/linux/drivers/Makefile)
# obj-m                           += acerhk/
obj-$(CONFIG_ACERHK)   +=      acerhk.o

CC=gcc
CFLAGS+=-c -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe
INCLUDE=-I$(KERNELSRC)/include

ifeq ($(KERNELMAJOR), 2.6)
TARGET := acerhk.ko
else
TARGET := acerhk.o
endif

SOURCE := acerhk.c

all: $(TARGET)

acerhk.ko: $(SOURCE) acerhk.h
	$(MAKE) -C $(KERNELSRC) SUBDIRS=$(PWD) modules

acerhk.o: $(SOURCE) acerhk.h
	$(CC) $(INCLUDE) $(CFLAGS) -DMODVERSIONS -DMODULE -D__KERNEL__ -o $(TARGET) $(SOURCE)

asm:	$(SOURCE)
ifeq ($(KERNELMAJOR), 2.6)
	$(CC) $(INCLUDE) $(INCLUDE)/asm-i386/mach-default $(CFLAGS) -fverbose-asm -S -DMODVERSIONS -DMODULE -D__KERNEL__ $(SOURCE)
else
	$(CC) $(INCLUDE) $(CFLAGS) -fverbose-asm -S -DMODVERSIONS -DMODULE -D__KERNEL__ $(SOURCE)
endif

clean:
	rm -f *~ *.o *.s *.ko *.mod.c

load:	$(TARGET)
	insmod $(TARGET)

unload:
	rmmod acerhk

install: $(TARGET)
	#cp -v $(TARGET) /lib/modules/$(KERNELVERSION)/kernel/drivers/char
	mkdir -p /lib/modules/$(KERNELVERSION)/extra
	cp -v $(TARGET) /lib/modules/$(KERNELVERSION)/extra/
	depmod -a
