mirror of
https://github.com/thead-yocto-mirror/baremetal-drivers
synced 2026-06-21 09:12:28 +02:00
148 lines
4.6 KiB
Makefile
148 lines
4.6 KiB
Makefile
##
|
|
# Copyright (C) 2021 Alibaba Group Holding Limited
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
# published by the Free Software Foundation.
|
|
##
|
|
|
|
test = $(shell if [ -f "../.param" ]; then echo "exist"; else echo "noexist"; fi)
|
|
ifeq ("$(test)", "exist")
|
|
include ../.param
|
|
endif
|
|
|
|
CONFIG_DRIVER_BUILD_PARAMS=KERNEL=$(LINUX_DIR) CROSS=$(CROSS_COMPILE) ARCH=$(ARCH) BOARD_NAME=$(BOARD_NAME)
|
|
CONFIG_LIB_BUILD_PARAMS=CROSS=$(CROSS_COMPILE) ARCH=$(ARCH) BOARD_NAME=$(BOARD_NAME)
|
|
CONFIG_TEST_BUILD_PARAMS=CROSS=$(CROSS_COMPILE) ARCH=$(ARCH) BOARD_NAME=$(BOARD_NAME)
|
|
|
|
MODULE_NAME=BAREMETAL
|
|
BUILD_LOG_START="\033[47;30m>>> $(MODULE_NAME) $@ begin\033[0m"
|
|
BUILD_LOG_END ="\033[47;30m<<< $(MODULE_NAME) $@ end\033[0m"
|
|
|
|
DIR_TARGET_BASE=bsp/baremetal
|
|
DIR_TARGET_LIB =bsp/baremetal/lib
|
|
DIR_TARGET_KO =bsp/baremetal/ko
|
|
DIR_TARGET_TEST=bsp/baremetal/test
|
|
DIR_TARGET_TOOLS=bsp/baremetal/tools
|
|
|
|
#
|
|
# 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 driver test tools install_local_output install_rootfs
|
|
.PHONY: info driver lib test tools install_local_output install_rootfs \
|
|
clean_driver clean_lib clean_test clean_tools clean_output clean
|
|
|
|
info:
|
|
@echo $(BUILD_LOG_START)
|
|
@echo " ====== Build Info from repo project ======"
|
|
@echo " BUILDROOT_DIR="$(BUILDROOT_DIR)
|
|
@echo " CROSS_COMPILE="$(CROSS_COMPILE)
|
|
@echo " LINUX_DIR="$(LINUX_DIR)
|
|
@echo " ARCH="$(ARCH)
|
|
@echo " BOARD_NAME="$(BOARD_NAME)
|
|
@echo " KERNEL_ID="$(KERNELVERSION)
|
|
@echo " KERNEL_DIR="$(LINUX_DIR)
|
|
@echo " INSTALL_DIR_ROOTFS="$(INSTALL_DIR_ROOTFS)
|
|
@echo " INSTALL_DIR_SDK="$(INSTALL_DIR_SDK)
|
|
@echo " CONFIG_DRIVER_BUILD_PARAMS="$(CONFIG_DRIVER_BUILD_PARAMS)
|
|
@echo " CONFIG_LIB_BUILD_PARAMS="$(CONFIG_LIB_BUILD_PARAMS)
|
|
@echo " CONFIG_TEST_BUILD_PARAMS="$(CONFIG_TEST_BUILD_PARAMS)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
driver:
|
|
@echo $(BUILD_LOG_START)
|
|
make -C driver/demo $(CONFIG_DRIVER_BUILD_PARAMS)
|
|
make -C driver/visys $(CONFIG_DRIVER_BUILD_PARAMS) #BUILD_TYPE=DEBUG
|
|
make -C driver/isp $(CONFIG_DRIVER_BUILD_PARAMS)
|
|
make -C driver/csi $(CONFIG_DRIVER_BUILD_PARAMS) BUILD_TYPE=DEBUG
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean_driver:
|
|
@echo $(BUILD_LOG_START)
|
|
make -C driver/demo $(CONFIG_DRIVER_BUILD_PARAMS) clean
|
|
make -C driver/visys $(CONFIG_DRIVER_BUILD_PARAMS) clean
|
|
make -C driver/isp $(CONFIG_DRIVER_BUILD_PARAMS) clean
|
|
make -C driver/csi $(CONFIG_DRIVER_BUILD_PARAMS) clean
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
lib:
|
|
@echo $(BUILD_LOG_START)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean_lib:
|
|
@echo $(BUILD_LOG_START)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
test: lib driver
|
|
@echo $(BUILD_LOG_START)
|
|
make -C test/visys
|
|
make -C test/csi
|
|
make -C test/isp
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean_test:
|
|
@echo $(BUILD_LOG_START)
|
|
make -C test/visys clean
|
|
make -C test/isp clean
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
tools:
|
|
@echo $(BUILD_LOG_START)
|
|
make -C tools/reg_analyzer -j $(JOBS)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean_tools:
|
|
@echo $(BUILD_LOG_START)
|
|
make -C tools/reg_analyzer clean
|
|
make -C test/csi clean
|
|
make -C test/isp clean
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
install_local_output: driver lib test
|
|
@echo $(BUILD_LOG_START)
|
|
# driver files
|
|
mkdir -p ./output/rootfs/$(DIR_TARGET_KO)
|
|
cp -f ./driver/demo/*.ko ./output/rootfs/$(DIR_TARGET_KO)
|
|
cp -f ./driver/visys/*.ko ./output/rootfs/$(DIR_TARGET_KO)
|
|
cp -f ./driver/csi/*.ko ./output/rootfs/$(DIR_TARGET_KO)
|
|
cp -f ./driver/isp/*.ko ./output/rootfs/$(DIR_TARGET_KO)
|
|
# lib files
|
|
mkdir -p ./output/rootfs/$(DIR_TARGET_LIB)
|
|
# test files
|
|
mkdir -p ./output/rootfs/$(DIR_TARGET_TEST)
|
|
cp -rf ./test/visys/output/* ./output/rootfs/$(DIR_TARGET_TEST)
|
|
cp -rf ./test/isp/output/* ./output/rootfs/$(DIR_TARGET_TEST)
|
|
# tools files
|
|
mkdir -p ./output/rootfs/$(DIR_TARGET_TOOLS)
|
|
cp -f ./tools/reg_analyzer/output/* ./output/rootfs/$(DIR_TARGET_TOOLS)
|
|
cp -f ./test/csi/output/* ./output/rootfs/$(DIR_TARGET_TEST)
|
|
@if [ `command -v tree` != "" ]; then \
|
|
tree ./output/rootfs -I 'sdk' | grep -v "\.json"; \
|
|
echo "INFO: The files above, has filter out the sdk folder and .json files"; \
|
|
fi
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
install_rootfs: install_local_output
|
|
@echo $(BUILD_LOG_START)
|
|
# cp -rf output/rootfs/* $(INSTALL_DIR_ROOTFS)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean_output:
|
|
@echo $(BUILD_LOG_START)
|
|
rm -rf ./output
|
|
rm -rf $(INSTALL_DIR_ROOTFS)/$(DIR_TARGET_BASE)
|
|
@echo $(BUILD_LOG_END)
|
|
|
|
clean: clean_output clean_driver clean_lib clean_test clean_tools
|
|
|