ifeq ($(obj),)
obj = .
endif

MDIR		:= kernel/drivers/video

#
# STANDALONE
# ----------
# 0: build a single driver module containing framebuffer
#    core and console acceleration code (r128fb.o)
# 1: build two modules (r128fb.o, r128fb-accel.o). the
#    latter can be removed and reinserted at runtime
#
STANDALONE	:= 1

ifeq ($(STANDALONE), 1)
r128fb-objs		:= r128fb_base.o
obj-m			:= r128fb.o r128fb_accel.o
else
r128fb-objs		:= r128fb_base.o r128fb_accel.o
obj-m			:= r128fb.o
endif

obj-m			+= r128fb_edid.o r128fb_iic.o

DISTFILES	:= AUTHORS BUGS COPYING ChangeLog INSTALL Makefile README \
		   r128fb_accel.c r128fb_accel.h \
		   r128fb_base.c r128fb_base.h \
		   r128fb_edid.c r128fb_iic.c \
		   r128fb_inline.h r128fb_reg.h

#################################################
# compile modules

ifneq ($(KERNELRELEASE),)
# recursive call from kernel build system
dummy		:= $(shell echo $(KERNELRELEASE) > $(obj)/.version)

multi-m		:= $(filter $(list-multi), $(obj-m))
int-m		:= $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))
ifeq ($(STANDALONE), 1)
EXTRA_CFLAGS	:= -MD -DR128FB_ACCEL_MODULE
else
EXTRA_CFLAGS	:= -MD
endif

include $(TOPDIR)/Rules.make


else
# take version info from last module build if available
KERNELRELEASE	:= $(shell cat $(obj)/.version 2>/dev/null || uname -r)
endif

KDIR		:= /lib/modules/$(KERNELRELEASE)/build
PWD		:= $(shell pwd)
DEST		:= /lib/modules/$(KERNELRELEASE)/$(MDIR)
DATE		:= $(shell date +%Y%m%d)

build::
	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

install:: build
	-su -c "mkdir -p $(DEST); cp -v $(obj-m) $(DEST); depmod -ae"

clean::
	find . -type l -exec rm {} \;
	-rm -f *~ .version
	-rm -f *.o *.d .*.o.flags *.o.flags *.o.cmd

dist::
	mkdir r128fb-$(DATE)
	cp -a $(DISTFILES) r128fb-$(DATE)
	tar -cvjf ~/r128fb-$(DATE).tar.bz2 r128fb-$(DATE)
	rm -rf r128fb-$(DATE)
	chmod 644 ~/r128fb-$(DATE).tar.bz2

accel:: build
	sudo $(MAKE) install
	sudo rmmod r128fb-accel || true
	sudo insmod r128fb-accel

edid:: build
	sudo $(MAKE) install
	sudo rmmod r128fb-edid || true
	sudo insmod r128fb-edid

iic:: build
	sudo $(MAKE) install
	sudo rmmod r128fb-iic || true
	sudo insmod r128fb-iic

r128fb.o: $(r128fb-objs)
	$(LD) -r -o $@ $(r128fb-objs)

-include $(wildcard *.d) dummy
