
KERN_RELEASE := $(shell uname -r)

#TV_LINUX_FUNCTION 0:OFF 1:ON
TV_LINUX_FLG = 1

ifeq ($(TV_LINUX_FLG),1) 
KDIR	:= ../../../kl16j_knl
else
KDIR	:= /lib/modules/$(KERN_RELEASE)/build
endif

PWD		:= $(shell pwd)
DEST	:= /lib/modules/$(KERN_RELEASE)/$(MDIR)

MASTERNAME=h57fmb

EXTRA_CFLAGS += -DVERSION=\"0.0.6.3\"
EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += -O3
#EXTRA_CFLAGS += -DDEBUGON_USB_ACCESS
#EXTRA_CFLAGS += -DDEBUGON_I2C_ACCESS
#EXTRA_CFLAGS += -DSPECIFIC_FUNCTION_ON
#EXTRA_CFLAGS += -DUSB_CTRLMSG_ONLY
#ifdef MB86E61_FUNCTION
EXTRA_CFLAGS += -DMB86E61_FUNCTION
#endif /* MB86E61_FUNCTION */
EXTRA_CFLAGS += -DMULTIENDIAN_FUNCTION
EXTRA_CFLAGS += -DUSB_URB_FUNCTION

ifeq ($(TV_LINUX_FLG),1) 
EXTRA_CFLAGS += -DTV_LINUX_FUNCTION
EXTRA_CFLAGS += -DTV_LINUX_DEBUG_SUPPORT
endif

# Monitoring function of XERROR :: FMB_OPT_XERROR_WATCH Macro (enable):Monitoring (disable):No Monitoring
# When XError is generated, this function outputs information to syslog(/var/log/messages). 
# This function is a function for debug. Even if this function is
#invalidated(No Monitoring), it doesn't impact processing of usual.
EXTRA_CFLAGS += -DFMB_OPT_XERROR_WATCH

# when info() not support, it changes enable of MSG_INFO_UPPER_OS macro.
ifeq ($(TV_LINUX_FLG),0) 
EXTRA_CFLAGS += -DMSG_INFO_UPPER_OS
endif

# when Linux version is Fedora14 32bit, it changes enable of USE_UPPER_OS macro.
ifeq ($(TV_LINUX_FLG),0) 
EXTRA_CFLAGS += -DUSE_UPPER_OS
endif

export EXTRA_CFLAGS

obj-m	:= $(MASTERNAME).o
inst-m	:= $(MASTERNAME).ko

h57fmb-objs := fmb_core.o fmb_hw.o fmb_hw_usb.o fmb_api_table.o fmb_api.o

default:: 
#	$(MAKE) -C $(KDIR) M=$(PWD) V=1 modules
	$(MAKE) -C $(KDIR) M=$(PWD) modules

install::
#	strip --strip-debug $(inst-m)
	-su -c "mkdir -p $(DEST); cp -v $(inst-m) $(DEST); /sbin/depmod -a"

clean:
	$(RM) -r *.o *.ko *.mod.c Module.* modules.* .*.cmd .tmp_versions

uninstall::
	-su -c "rm $(DEST)/$(inst-m); /sbin/depmod -a" 

