Files

55 lines
1.8 KiB
Makefile
Executable File

SDK_DIR ?= $(shell cd ../../../../.. && /bin/pwd)
include $(SDK_DIR)/build/base.mk
include config.mk
MAKEFILE_PATH := $(MCU_MEDIA_DIR)/Makefile
BAK_MAKEFILE_PATH := $(MCU_MEDIA_DIR)/_Makefile.bak
AE_LN_PATH := $(MCU_MEDIA_DIR)/ae
AWB_LN_PATH := $(MCU_MEDIA_DIR)/awb
AF_LN_PATH := $(MCU_MEDIA_DIR)/af
AT := @
define func_generate_makefile
$(AT)test -f $(BAK_MAKEFILE_PATH) || (test -f $(MAKEFILE_PATH) && mv $(MAKEFILE_PATH) $(BAK_MAKEFILE_PATH))
$(AT)touch $(MAKEFILE_PATH)
$(if $(AE_LIB), echo SRCS-y += ae/ > $(MAKEFILE_PATH), )
$(if $(AWB_LIB), echo SRCS-y += awb/ >> $(MAKEFILE_PATH), )
$(if $(AF_LIB), echo SRCS-y += af/ >> $(MAKEFILE_PATH), )
endef
define func_generate_ln_soft
$(if $(AE_LIB), $(AT)test -d $(AE_LN_PATH) || ln -s $(ISP_ALG_DIR)/$(AE_LIB) $(AE_LN_PATH), )
$(if $(AWB_LIB), $(AT)test -d $(AWB_LN_PATH) || ln -s $(ISP_ALG_DIR)/$(AWB_LIB) $(AWB_LN_PATH), )
$(if $(AF_LIB), $(AT)test -d $(AF_LN_PATH) || ln -s $(ISP_ALG_DIR)/$(AF_LIB) $(AF_LN_PATH), )
endef
define func_rm_ln
-rm $(AE_LN_PATH)
-rm $(AWB_LN_PATH)
-rm $(AF_LN_PATH)
endef
define func_restore_makefile
$(AT)test -f $(BAK_MAKEFILE_PATH) && mv $(BAK_MAKEFILE_PATH) $(MAKEFILE_PATH)
endef
define func_cp_lib_to_isp
$(if $(AE_LIB), $(AT)cp $(OUT_DIR)/media/ae/libae.a $(ISP_LIBS_DIR), )
$(if $(AWB_LIB), $(AT)cp $(OUT_DIR)/media/awb/libawb.a $(ISP_LIBS_DIR), )
$(if $(AF_LIB), $(AT)cp $(OUT_DIR)/media/af/libaf.a $(ISP_LIBS_DIR), )
endef
.PHONY: all clean
all:
$(call func_generate_makefile)
$(call func_generate_ln_soft)
$(if $(MCU_DEFCONFIG), $(AT)make -C $(MCU_RISCV_DIR) $(MCU_DEFCONFIG) || echo make failed;, )
$(AT)make -C $(MCU_RISCV_DIR) $(MCU_TARGET) || echo make failed;
$(call func_cp_lib_to_isp)
$(call func_rm_ln)
$(call func_restore_makefile)
clean:;