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:;