# $Id: Makefile,v 1.5 2004/08/09 01:10:29 mikey Exp $

CC=cc

KERNEL_VERSION=$(shell uname -r )
KERNEL_VERSION=2.6.4
KERNEL_SRC_DIR=/lib/modules/$(KERNEL_VERSION)/build

ifeq "$(shell echo $(KERNEL_VERSION) | cut -d . -f 2)" "6"
	DESTDIR=/lib/modules/$(KERNEL_VERSION)/misc
else
	DESTDIR=/lib/modules/$(KERNEL_VERSION)/kernel/drivers/misc
endif

INCLUDE= -I.
DEFINES=
CFLAGS= -Wall -D__KERNEL__ -I$(KERNEL_SRC_DIR)/include \
		-O2 -fomit-frame-pointer -pipe \
		-ffixed-8 -DMODULE -DMODVERSIONS -finline-functions \
		-include $(KERNEL_SRC_DIR)/include/config/modversions.h

ifeq "$(shell echo $(KERNEL_VERSION) | cut -d . -f 2)" "6"
default: lcd2.6
else
default: lcd2.4
endif

obj-m=lcd.o

lcd2.6: lcd.c cgram/default.h cgram/swedish.h charmap.h config.h wiring.h
	$(MAKE) -C $(KERNEL_SRC_DIR) SUBDIRS=$(CURDIR) modules

lcd2.4: lcd.c cgram/default.h cgram/swedish.h charmap.h config.h wiring.h
	@echo -e "- Making lcd.o"
	@echo "- KERNEL_SRC_DIR: $(KERNEL_SRC_DIR)"
	@echo "- DESTDIR: $(DESTDIR)"
	$(CC) $(CFLAGS) $(DEFINES) -c lcd.c -o lcd.o

install: default
	if [[ -e /dev/lcd ]]; then exit; else mknod /dev/lcd c 120 0; fi
	if [[ -d $(DESTDIR) ]]; then exit; else mkdir -p $(DESTDIR); fi
	cp lcd.*o $(DESTDIR)
	if [[ -z `grep lcd /etc/modules.conf` ]]; then \
		echo "alias char-major-120 lcd" >> /etc/modules.conf; \
	fi 
	depmod -a

test: install
	if [[ -n `lsmod|grep lcd` ]]; then rmmod lcd; fi
	modprobe lcd
	echo "Hello LCD world!" > /dev/lcd

clean:
	rm -f *.o *.ko lcd.mod.*
