include ../../Makefile.cfg

MODVER = $(shell grep CONFIG_MODVERSIONS $(INCLUDEDIR)/linux/autoconf.h)

ifeq ($(MODVER),)
	@echo INCLUDEDIR is not set up correctly
	exit 1
endif

CFLAGS = -O2 -DLINUX -Dlinux -D__KERNEL__ -DMODULE -Wall $(DEBFLAGS) 
CFLAGS += -I$(INCLUDEDIR)
CFLAGS += -DSVGALIB_HELPER_MAJOR=$(SVGALIB_HELPER_MAJOR)

ifeq (1,$(findstring 1,$(MODVER)))
	CFLAGS += -DMODVERSIONS -include $(INCLUDEDIR)/linux/modversions.h
endif

# Extract version number from headers.
VER = $(shell awk -F\" '/REL/ {print $$2}' $(INCLUDEDIR)/linux/version.h)

# Use version of current running kernel
ifeq ($(VER),)
	VER = $(shell uname -r)
endif

TARGET = svgalib_helper
OBJS = $(TARGET).o
SRC = main.c interrupt.c i810.c

all: .depend $(TARGET).o

$(TARGET).o: $(SRC:.c=.o)
	$(LD) -r $^ -o $@

install: device modules_install

modules_install: $(TARGET).o
	mkdir -p /lib/modules/$(VER)/kernel/misc 
	install -m 0644 -c $(TARGET).o /lib/modules/$(VER)/kernel/misc

device:
	rm -f /dev/svgalib_helper* /dev/svga /dev/svga?
	mknod -m 666 /dev/svga c $(SVGALIB_HELPER_MAJOR) 0
	mknod -m 666 /dev/svga1 c $(SVGALIB_HELPER_MAJOR) 1
	mknod -m 666 /dev/svga2 c $(SVGALIB_HELPER_MAJOR) 2
	mknod -m 666 /dev/svga3 c $(SVGALIB_HELPER_MAJOR) 3
	mknod -m 666 /dev/svga4 c $(SVGALIB_HELPER_MAJOR) 4

clean:
	rm -f *.o *~ core .depend *.bak *.orig

depend .depend dep:
	$(CC) $(CFLAGS) -M *.c > $@


ifeq (.depend,$(wildcard .depend))
include .depend
endif
