ifeq ($(OPT_CFLAGS),)
OPT_CFLAGS = -O2 -fomit-frame-pointer
endif

CFLAGS = $(OPT_CFLAGS) -DMODULE -D__KERNEL__ -pipe -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2

HAVE_SMP = $(shell if grep "^\#define CONFIG_SMP 1" /lib/modules/`uname -r`/build/include/linux/autoconf.h > /dev/null;\
		 then echo 1; else echo 0; fi )

ifeq ($(HAVE_SMP),1)
CFLAGS += -D__SMP__  -DSMP
endif

CC=gcc
#GCCVERSION=$(shell cat /proc/version|awk '{print $$7}'|cut -d. -f 1 )
KERNEL_VERSION=$(shell uname -r)
INCLUDE= -I /lib/modules/$(KERNEL_VERSION)/build/include
KERNEL :=$(shell uname -r|cut -f1 -d-)


rockey.o:rockey1.o gcc$(GCCVERSION)/rockey-$(KERNEL).o
	ld -m elf_i386 -r -o rockey.o rockey1.o gcc$(GCCVERSION)/rockey-$(KERNEL).o
rockey1.o:rockey1.c
	$(CC) $(CFLAGS) $(INCLUDE) -c -o $@ rockey1.c
#endif

###############################################################################

install:
	mkdir -p /lib/modules/$(KERNEL_VERSION)/misc
	cp rockey.o /lib/modules/$(KERNEL_VERSION)/misc/rockey.o
	mkdir -p /usr/local/include

#	if [ -e /lib/modules/$(KERNEL_VERSION)/modules.dep ]; then \
#		indep=`grep 'misc/rockey.o:' /lib/modules/$(KERNEL_VERSION)/modules.dep`; \
#		if [ -z "$$indep" ]; then \
#			echo "/lib/modules/$(KERNEL_VERSION)/misc/rockey.o:" >> /lib/modules/$(KERNEL_VERSION)/modules.dep; \
#			echo "" >> /lib/modules/$(KERNEL_VERSION)/modules.dep; \
#		fi; \
#	fi; 
	if [ ! -c /dev/rockey ]; then \
	        mknod /dev/rockey c 10 139;\
		chmod go+w /dev/rockey; \
	fi; \
	echo "/lib/modules/$(KERNEL_VERSION)/misc/rockey.o"; \
	if [ -e /etc/conf.modules ]; then \
		mconf="/etc/conf.modules"; \
	elif [ -e /etc/modprobe.conf ]; then \
		mconf="/etc/modprobe.conf"; \
	else \
		mconf="/etc/modules.conf"; \
	fi; \
	inconf=`grep 'alias char-major-10-139 rockey' $$mconf`; \
	if [ -z "$$inconf" ]; then \
		echo "alias char-major-10-139 rockey" >> $$mconf; \
	fi; \
	/sbin/depmod -a

uninstall:
	rm /lib/modules/$(KERNEL_VERSION)/misc/rockey.o
	rm /dev/rockey
	if [ -e /etc/conf.modules ]; then \
		mconf="/etc/conf.modules"; \
	elif [ -e /etc/modprobe.conf ]; then \
		mconf="/etc/modprobe.conf"; \
	else \
		mconf="/etc/modules.conf"; \
	fi; \
	declare -i inconf=0; \
	inconf=`grep "alias char-major-10-139 rockey"  $$mconf -n | head -1 | cut -f1 -d:`; \
	if [ $$inconf != 0 ]; then \
	cat $$mconf |sed "$$inconf"d > $$mconf; \
	fi
	/sbin/depmod -a 


###############################################################################
clean:
	rm -f *.o

