ifeq ($(BUILD_TYPE), fpga)
INCLUDE_DIR := /usr/src/linux-headers-$(shell uname -r)
KERNEL_SRC := $(INCLUDE_DIR)
endif

SRC := $(shell pwd)

ANDROID := no
ifeq ($(ANDROID), yes)
PWD := $(shell pwd)
#PWD := $(ANDROID_BUILD_TOP)/vendor/nxp-opensource/verisilicon_sw_isp_vvcam/vvcam/v4l2
endif

EXTRA_CFLAGS += -I$(PWD)/../common/
EXTRA_CFLAGS += -I$(PWD)/../isp/
EXTRA_CFLAGS += -I$(PWD)/../v4l2/

# Enable interrupt mode for vvcam modules (yes, no)
ENABLE_IRQ := yes

ifeq ($(ENABLE_IRQ), yes)
  EXTRA_CFLAGS += -DENABLE_IRQ
endif

ifeq ($(ANDROID), no)
EXTRA_CFLAGS += -O2 -Wall
endif

obj-m += video/

include $(PWD)/../version/ISP8000L_V2008.mk

EXTRA_CFLAGS += -DISP_REG_SIZE=0x00010000
EXTRA_CFLAGS += -DDEC_REG_BASE=0x00600000
EXTRA_CFLAGS += -DDEC_REG_SIZE=0x2000
EXTRA_CFLAGS += -DRESERVED_MEM_BASE=0xB0000000
EXTRA_CFLAGS += -DRESERVED_MEM_SIZE=0x10000000

vvcam-isp-objs += ../isp/isp_miv1.o
vvcam-isp-objs += ../isp/isp_miv2.o
vvcam-isp-objs += ../isp/isp_wdr3.o
vvcam-isp-objs += ../isp/isp_wdr.o
vvcam-isp-objs += ../isp/isp_3dnr.o
vvcam-isp-objs += ../isp/isp_hdr.o
vvcam-isp-objs += ../isp/isp_dpf.o
vvcam-isp-objs += ../isp/isp_compand.o
vvcam-isp-objs += ../isp/isp_gcmono.o
vvcam-isp-objs += ../isp/isp_ioctl.o
vvcam-isp-objs += ../isp/isp_rgbgamma.o
vvcam-isp-objs += ../isp/isp_rgbir.o
#vvcam-isp-objs += ../isp/isp_dec.o
#vvcam-isp_objs += ../isp/isp_dmsc2.o
vvcam-isp-objs += ../isp/isp_isr.o

# lucz: Add for ISP8000L compile error
vvcam-isp-objs += ../isp/isp_3dnr2.o
vvcam-isp-objs += ../isp/isp_dmsc2.o
vvcam-isp-objs += ../isp/isp_wdr4.o
vvcam-isp-objs += ../isp/isp_tdnr3.o
vvcam-isp-objs += ../isp/isp_irq_queue.o

ifeq ($(ENABLE_IRQ), yes)
  vvcam-isp-objs += isp_driver_of.o
else
  vvcam-isp-objs += isp_driver.o
endif
vvcam-isp-objs += video/vvbuf.o
obj-m += vvcam-isp.o

EXTRA_CFLAGS += -I$(PWD)/../dwe/
vvcam-dwe-objs += ../dwe/dwe_ioctl.o
vvcam-dwe-objs += ../dwe/dwe_isr.o
ifeq ($(ENABLE_IRQ), yes)
  vvcam-dwe-objs += dwe_driver_of.o
  vvcam-dwe-objs += dwe_devcore.o
else
  vvcam-dwe-objs += dwe_driver.o
endif
vvcam-dwe-objs += video/vvbuf.o
obj-m += vvcam-dwe.o

obj-m += csi/
obj-m += sensor/

V := 1

all:
	@$(MAKE) V=$(V) -C $(KERNEL_DIR) ARCH=$(ARCH_TYPE) M=$(SRC) ENABLE_IRQ=$(ENABLE_IRQ) modules

clean:
	@rm -rf modules.order Module.symvers
	@find ../ -name "*.o" | xargs rm -f
	@find ../ -name "*.ko" | xargs rm -f

