OUT_DIR ?= .
$(info "OUT_DIR : $(OUT_DIR)")

LOCAL_PATH := $(shell dirname $(lastword $(MAKEFILE_LIST)))
TARGET := isp5service

SRCS := \
	main.c \
	media.c \
	algorithm.c \
	video.c \
	list.c \
	camera.c \
	subdev.c \
	handler.c \
	sensor/sensor.c \
	sensor/imx290/imx290_config.c \
	sensor/imx290/imx290_sdr_calibration.c \
	sensor/imx290/imx290_wdr_calibration.c \
	sensor/imx415/imx415_config.c \
	sensor/imx415/imx415_sdr_calibration.c \
	sensor/imx415/imx415_wdr_calibration.c \
	sensor/ov13855/ov13855_config.c \
	sensor/ov13855/ov13855_sdr_calibration.c \
	sensor/ov13855/ov13855_wdr_calibration.c \
	sensor/ov51a40/ov51a40_config.c \
	sensor/ov51a40/ov51a40_sdr_calibration.c \
	sensor/ov51a40/ov51a40_wdr_calibration.c

OBJS := $(patsubst %.c,$(OUT_DIR)/%.o,$(SRCS))

LOCAL_INCLUDES := \
	-I$(LOCAL_PATH)/include \
	-I$(LOCAL_PATH)/sensor \
	-I$(LOCAL_PATH)/sensor/imx290 \
	-I$(LOCAL_PATH)/sensor/imx415 \
	-I$(LOCAL_PATH)/sensor/ov13855 \
	-I$(LOCAL_PATH)/sensor/ov51a40 \
	-I$(LOCAL_PATH)/../include

CFLAGS := -Wall -Werror -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -D_GNU_SOURCE -Wno-unused-result -Wno-unused-parameter  -Wno-unused-variable -Wno-unused-function -Wno-stringop-truncation
CFLAGS += $(LOCAL_INCLUDES)

#CFLAGS += -DCAPTURE_SUPPORT_VIEW

LDFLAGS := -L$(LOCAL_PATH)/../firmware/lib64 -lisp5aml -lm

ifeq ($(PLATFORM),android)
LDFLAGS += -lcutils -lutils -llog
endif

.PHONY: all clean

all: $(OUT_DIR)/$(TARGET)

$(OUT_DIR)/%.o: %.c
	@mkdir -p $(dir $@)
	$(CC) -c $(CFLAGS) $< -o $@

$(OUT_DIR)/$(TARGET): $(OBJS)
	$(CC) $^ -Wl,-rpath-link,$(LOCAL_PATH)/../firmware/lib64 $(LDFLAGS) -o $@

clean:
	rm -rf $(OBJS) $(OUT_DIR)/$(TARGET)

$(shell mkdir -p $(OUT_DIR))
