## # Copyright (C) 2020 Alibaba Group Holding Limited ## test = $(shell if [ -f "../.param" ]; then echo "exist"; else echo "noexist"; fi) ifeq ("$(test)", "exist") include ../.param endif SDK_VER=v0.9 CONFIG_DEBUG_MODE=1 CONFIG_BUILD_LIB_EXTRA_PARAM:="" CONFIG_BUILD_TST_EXTRA_PARAM:="" ifeq ("$(BUILD_SYSTEM)","YOCTO_BUILD") export PATH_TO_SYSROOT=${SYSROOT_DIR} export TOOLSCHAIN_PATH=${TOOLCHAIN_DIR} export TOOLCHAIN_HOST=${CROSS_COMPILE} else export PATH_TO_SYSROOT=${BUILDROOT_DIR}/output/host/riscv64-buildroot-linux-gnu/sysroot export TOOLSCHAIN_PATH=${BUILDROOT_DIR}/output/host export TOOLCHAIN_HOST=${TOOLSCHAIN_PATH}/bin/riscv64-unknown-linux-gnu- endif export PATH_TO_BUILDROOT=$(BUILDROOT_DIR) # Board CONFIG_BOARD_LIGHT_C910_ARRAY:=light_fpga_fm_c910 light-fm-fpga light-fm light-% ifneq ($(filter $(CONFIG_BOARD_LIGHT_C910_ARRAY),$(BOARD_NAME)),) TARGET_DEMO="plink_AI" else $(error "Undefined target board:$(BOARD_NAME)") endif DIR_TARGET_LIB=lib DIR_TARGET_TEST=test DIR_TARGET_MODEL=model DIR_TARGET_INPUT=input BUILD_LOG_START="\033[47;30m>>> $(TARGET_DEMO) $@ begin\033[0m" BUILD_LOG_END ="\033[47;30m<<< $(TARGET_DEMO) $@ end\033[0m" # # Do a parallel build with multiple jobs, based on the number of CPUs online # in this system: 'make -j8' on a 8-CPU system, etc. # # (To override it, run 'make JOBS=1' and similar.) # ifeq ($(JOBS),) JOBS := $(shell grep -c ^processor /proc/cpuinfo 2>/dev/null) ifeq ($(JOBS),) JOBS := 1 endif endif all: info lib test install_local_output install_rootfs install_tests .PHONY: info lib test install_local_output install_rootfs \ install_prepare install_addons install_tests install_lib clean_test clean_lib clean_output clean info: @echo $(BUILD_LOG_START) @echo " ====== Build Info from repo project ======" @echo " BUILD_SYSTEM="$(BUILD_SYSTEM) @echo " BUILDROOT_DIR="$(BUILDROOT_DIR) @echo " SYSROOT_DIR="$(SYSROOT_DIR) @echo " CROSS_COMPILE="$(CROSS_COMPILE) @echo " LINUX_DIR="$(LINUX_DIR) @echo " ARCH="$(ARCH) @echo " KBUILD_CFLAGS="$(KBUILD_CFLAGS) @echo " KBUILD_AFLAGS="$(KBUILD_AFLAGS) @echo " KBUILD_LDFLAGS="$(KBUILD_LDFLAGS) @echo " BOARD_NAME="$(BOARD_NAME) @echo " KERNEL_ID="$(KERNELVERSION) @echo " KERNEL_DIR="$(LINUX_DIR) @echo " CC="$(CC) @echo " CXX="$(CXX) @echo " LD="$(LD) @echo " LD_LIBRARY_PATH="$(LD_LIBRARY_PATH) @echo " rpath="$(rpath) @echo " rpath-link="$(rpath-link) @echo " INSTALL_DIR_ROOTFS="$(INSTALL_DIR_ROOTFS) @echo " INSTALL_DIR_SDK="$(INSTALL_DIR_SDK) @echo " ====== Build configuration by settings ======" @echo " TARGET_DEMO="$(TARGET_DEMO) @echo " CONFIG_DEBUG_MODE="$(CONFIG_DEBUG_MODE) @echo " CONFIG_OUT_ENV="$(CONFIG_OUT_ENV) @echo " JOBS="$(JOBS) @echo " SDK_VERSION="$(SDK_VER) @echo $(BUILD_LOG_END) test: @echo $(BUILD_LOG_START) make -C test/face_detect ARCH=$(ARCH) CROSS=$(CROSS_COMPILE) @echo $(BUILD_LOG_END) clean_test: @echo $(BUILD_LOG_START) make -C test/face_detect clean @echo $(BUILD_LOG_END) install_prepare: mkdir -p ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_TEST) mkdir -p ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_INPUT) mkdir -p ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_MODEL) install_addons: install_prepare @if [ -d addons ]; then \ cp -rf addons/* ./output/rootfs/$(TARGET_DEMO); \ fi install_tests: install_addons test @if [ -d test/output ]; then \ cp -rf test/output/* ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_TEST); \ fi install_input: install_prepare @if [ -d input/install ]; then \ cp -rf input/install/* ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_INPUT); \ fi install_model: install_prepare @if [ -d model/install ]; then \ cp -rf model/install/* ./output/rootfs/$(TARGET_DEMO)/$(DIR_TARGET_MODEL); \ fi install_lib: ; install_local_output: test \ install_addons install_lib install_tests install_input install_model @echo $(BUILD_LOG_START) @if [ `command -v tree` != "" ]; then \ tree ./output/rootfs; \ fi @echo $(BUILD_LOG_END) install_rootfs: install_local_output @echo $(BUILD_LOG_START) @echo $(BUILD_LOG_END) clean_output: @echo $(BUILD_LOG_START) rm -rf ./output @echo $(BUILD_LOG_END) clean: clean_output clean_test clean_lib