M_PATH := $(shell dirname $(lastword $(MAKEFILE_LIST)))

MODULE_NAME = iv009_isp
obj-m += $(MODULE_NAME).o

$(MODULE_NAME)-y += app/control/application_command_api.o
$(MODULE_NAME)-y += app/control/acamera_connection.o
$(MODULE_NAME)-y += app/control/acamera_chardev.o
$(MODULE_NAME)-y += app/main_firmware.o
$(MODULE_NAME)-y += app/main_kernel_juno_v4l2.o
$(MODULE_NAME)-y += app/v4l2_interface/isp-vb2-cmalloc.o
$(MODULE_NAME)-y += app/v4l2_interface/fw-interface.o
$(MODULE_NAME)-y += app/v4l2_interface/isp-v4l2-stream.o
$(MODULE_NAME)-y += app/v4l2_interface/isp-v4l2.o
$(MODULE_NAME)-y += app/v4l2_interface/isp-vb2.o
$(MODULE_NAME)-y += app/v4l2_interface/isp-v4l2-ctrl.o
$(MODULE_NAME)-y += src/platform/system_log.o
$(MODULE_NAME)-y += src/platform/system_chardev.o
$(MODULE_NAME)-y += src/platform/system_i2c.o
$(MODULE_NAME)-y += src/platform/system_spi.o
$(MODULE_NAME)-y += src/platform/system_timer.o
$(MODULE_NAME)-y += src/platform/system_hw_io.o
$(MODULE_NAME)-y += src/platform/system_hdmi.o
$(MODULE_NAME)-y += src/platform/system_stdlib.o
$(MODULE_NAME)-y += src/platform/system_apb_dma.o
$(MODULE_NAME)-y += src/platform/system_semaphore.o
$(MODULE_NAME)-y += src/platform/system_profiler.o
$(MODULE_NAME)-y += src/platform/system_sw_io.o
$(MODULE_NAME)-y += src/platform/system_am_sc2.o
$(MODULE_NAME)-y += src/platform/system_am_md.o
$(MODULE_NAME)-y += src/platform/system_control.o
$(MODULE_NAME)-y += src/platform/system_am_flicker.o
$(MODULE_NAME)-y += src/platform/system_am_dma.o
$(MODULE_NAME)-y += src/platform/system_am_sc1.o
$(MODULE_NAME)-y += src/platform/system_am_sc.o
$(MODULE_NAME)-y += src/platform/system_am_decmpr.o
$(MODULE_NAME)-y += src/platform/system_autowrite.o
$(MODULE_NAME)-y += src/platform/system_interrupts.o
$(MODULE_NAME)-y += src/platform/system_am_sc3.o
$(MODULE_NAME)-y += src/platform/system_dma.o
$(MODULE_NAME)-y += src/platform/system_spinlock.o
$(MODULE_NAME)-y += src/calibration/soc_iq_calibrations.o
$(MODULE_NAME)-y += src/calibration/acamera_get_calibrations_v4l2.o
$(MODULE_NAME)-y += src/fw_lib/matrix_yuv_intf.o
$(MODULE_NAME)-y += src/fw_lib/acamera_fw.o
$(MODULE_NAME)-y += src/fw_lib/acamera_fsm_mgr.o
$(MODULE_NAME)-y += src/fw_lib/monitor_fsm.o
$(MODULE_NAME)-y += src/fw_lib/acamera_logger.o
$(MODULE_NAME)-y += src/fw_lib/acamera_event_queue.o
$(MODULE_NAME)-y += src/fw_lib/noise_reduction_func.o
$(MODULE_NAME)-y += src/fw_lib/ae_manual_intf.o
$(MODULE_NAME)-y += src/fw_lib/autocapture_intf.o
$(MODULE_NAME)-y += src/fw_lib/af_manual_func.o
$(MODULE_NAME)-y += src/fw_lib/sharpening_intf.o
$(MODULE_NAME)-y += src/fw_lib/sharpening_func.o
$(MODULE_NAME)-y += src/fw_lib/sensor_fsm.o
$(MODULE_NAME)-y += src/fw_lib/color_matrix_fsm.o
$(MODULE_NAME)-y += src/fw_lib/crop_fsm.o
$(MODULE_NAME)-y += src/fw_lib/sbuf_func.o
$(MODULE_NAME)-y += src/fw_lib/metadata_func.o
$(MODULE_NAME)-y += src/fw_lib/acamera_loop_buf.o
$(MODULE_NAME)-y += src/fw_lib/fsm_param.o
$(MODULE_NAME)-y += src/fw_lib/gamma_manual_func.o
$(MODULE_NAME)-y += src/fw_lib/awb_manual_fsm.o
$(MODULE_NAME)-y += src/fw_lib/gamma_manual_intf.o
$(MODULE_NAME)-y += src/fw_lib/autocapture_fsm.o
$(MODULE_NAME)-y += src/fw_lib/matrix_yuv_fsm.o
$(MODULE_NAME)-y += src/fw_lib/sensor_intf.o
$(MODULE_NAME)-y += src/fw_lib/acamera_sbus.o
$(MODULE_NAME)-y += src/fw_lib/acamera.o
$(MODULE_NAME)-y += src/fw_lib/af_manual_intf.o
$(MODULE_NAME)-y += src/fw_lib/color_matrix_func.o
$(MODULE_NAME)-y += src/fw_lib/noise_reduction_fsm.o
$(MODULE_NAME)-y += src/fw_lib/color_matrix_intf.o
$(MODULE_NAME)-y += src/fw_lib/metadata_intf.o
$(MODULE_NAME)-y += src/fw_lib/noise_reduction_intf.o
$(MODULE_NAME)-y += src/fw_lib/dma_writer.o
$(MODULE_NAME)-y += src/fw_lib/general_intf.o
$(MODULE_NAME)-y += src/fw_lib/monitor_intf.o
$(MODULE_NAME)-y += src/fw_lib/gamma_manual_fsm.o
$(MODULE_NAME)-y += src/fw_lib/sbuf_fsm.o
$(MODULE_NAME)-y += src/fw_lib/fsm_util.o
$(MODULE_NAME)-y += src/fw_lib/autocapture_func.o
$(MODULE_NAME)-y += src/fw_lib/crop_func.o
$(MODULE_NAME)-y += src/fw_lib/cmos_intf.o
$(MODULE_NAME)-y += src/fw_lib/dma_writer_intf.o
$(MODULE_NAME)-y += src/fw_lib/sensor_func.o
$(MODULE_NAME)-y += src/fw_lib/nr_fw.o
$(MODULE_NAME)-y += src/fw_lib/cmos_func.o
$(MODULE_NAME)-y += src/fw_lib/cmos_fsm.o
$(MODULE_NAME)-y += src/fw_lib/matrix_yuv_func.o
$(MODULE_NAME)-y += src/fw_lib/iridix8_manual_func.o
$(MODULE_NAME)-y += src/fw_lib/sharpening_fsm.o
$(MODULE_NAME)-y += src/fw_lib/general_fsm.o
$(MODULE_NAME)-y += src/fw_lib/metadata_fsm.o
$(MODULE_NAME)-y += src/fw_lib/acamera_sbus_isp.o
$(MODULE_NAME)-y += src/fw_lib/acamera_command_api.o
$(MODULE_NAME)-y += src/fw_lib/acamera_sbus_spi.o
$(MODULE_NAME)-y += src/fw_lib/acamera_command_api_impl.o
$(MODULE_NAME)-y += src/fw_lib/dma_writer_fsm.o
$(MODULE_NAME)-y += src/fw_lib/general_func.o
$(MODULE_NAME)-y += src/fw_lib/af_manual_fsm.o
$(MODULE_NAME)-y += src/fw_lib/acamera_sbus_isp_sw.o
$(MODULE_NAME)-y += src/fw_lib/monitor_func.o
$(MODULE_NAME)-y += src/fw_lib/iridix8_manual_fsm.o
$(MODULE_NAME)-y += src/fw_lib/awb_manual_intf.o
$(MODULE_NAME)-y += src/fw_lib/acamera_math.o
$(MODULE_NAME)-y += src/fw_lib/awb_manual_func.o
$(MODULE_NAME)-y += src/fw_lib/sbuf_intf.o
$(MODULE_NAME)-y += src/fw_lib/acamera_sbus_i2c.o
$(MODULE_NAME)-y += src/fw_lib/sensor_init.o
$(MODULE_NAME)-y += src/fw_lib/crop_intf.o
$(MODULE_NAME)-y += src/fw_lib/iridix8_manual_intf.o
$(MODULE_NAME)-y += src/fw_lib/acamera_ctrl_channel_k2u.o
$(MODULE_NAME)-y += src/fw_lib/dma_writer_func.o
$(MODULE_NAME)-y += src/fw_lib/ae_manual_func.o
$(MODULE_NAME)-y += src/fw_lib/ae_manual_fsm.o
$(MODULE_NAME)-y += src/fw_lib/acamera_calibrations.o
$(MODULE_NAME)-y += src/driver/lens/lens_init.o
$(MODULE_NAME)-y += src/driver/lens/v4l2_vcm.o
$(MODULE_NAME)-y += src/driver/sensor/sensor_bus_config.o
$(MODULE_NAME)-y += src/driver/sensor/ACameraDefault.o
$(MODULE_NAME)-y += src/driver/sensor/V4L2_drv.o

LOCAL_INCLUDES := -I$(M_PATH)/app -I$(M_PATH)/inc -I$(M_PATH)/app/control \
                -I$(M_PATH)/inc/api -I$(M_PATH)/inc/isp -I$(M_PATH)/inc/sys \
                -I$(M_PATH)/src/platform -I$(M_PATH)/src/fw \
                -I$(M_PATH)/src/fw_lib -I$(M_PATH)/src/calibration \
                -I$(M_PATH)/src/driver/sensor -I$(M_PATH)/src/driver/lens

PR_FMT = $(subst amlogic-,,$(MODULE_NAME))
PR_FMT_DEFINE="-Dpr_fmt(fmt)= \"[$(PR_FMT)]: \" fmt"
ccflags-y += $(PR_FMT_DEFINE)

ccflags-y += -DCONFIG_ANDROID_OS -DCONFIG_T7
ccflags-y += -DCONFIG_SEAMLESS_N
ccflags-y += -Wno-declaration-after-statement
ccflags-y += -Idrivers/staging/android/
ccflags-y += -Wno-error
ccflags-y += $(LOCAL_INCLUDES)

EXTRA_CFLAGS += $(LOCAL_INCLUDES)
