commit 5fb4b5d4a22d8f1c150bccaf8d0e1c633bd987ab Author: gaoyang3513 Date: Mon Oct 30 21:54:25 2023 +0800 [Add] Makefile diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..9fe908b --- /dev/null +++ b/Makefile @@ -0,0 +1,121 @@ +#******************************************************************************* +# Path information +#******************************************************************************* +LOCAL_DIR := $(realpath $(shell pwd)) +DEMO_TOP := $(LOCAL_DIR) +SOURCE_DIR := $(DEMO_TOP)/src +DYNAMIC_DIR := $(DEMO_TOP)/lib +INCLUDE_DIR := $(DEMO_TOP)/include + +OUTPUT_DIR := $(LOCAL_DIR)/output +INSTALL_DIR ?= $(LOCAL_DIR)/__install + +#******************************************************************************* +# Variables +#******************************************************************************* +# target +TARGET ?= demo_rf + +PRODUCT ?= T673 +PLATFORM_F1 := T340 T343 T673 T641A +PLATFORM_AI := T641 T680 +PLATFORM_A2 := T681 + +#******************************************************************************* +# Functions +#******************************************************************************* + +#******************************************************************************* +# Objects +#******************************************************************************* +sources = $(subst $(LOCAL_DIR)/,,$(shell find $(SOURCE_DIR) -name "*.c")) +#$(info sources=$(sources)) + +filter_out_files := +filter_out_dirs := src/core + +sources_out := $(foreach dir,$(filter_out_dirs),$(shell find $(dir) -name "*.c")) +#$(info sources_out=$(sources_out)) +sources := $(filter-out $(sources_out),$(sources)) +sources := $(foreach file,$(sources),$(if $(filter $(subst $(LOCAL_DIR)/,,$(strip $(patsubst %/,%,$(sort $(dir $(file)))))),$(filter_out_dirs)),,$(file))) +objects = $(addprefix $(OUTPUT_DIR)/,$(patsubst %.c,%.o,$(sources))) +#$(info sources=$(sources)) +#$(info objects=$(objects)) + +#******************************************************************************* +# Compile configure +#******************************************************************************* +ARCH := arm +ifneq ($(filter $(PRODUCT),$(PLATFORM_A2)),) +PLATFORM := A2 +KERNEL_CONFIG := rockchip_defconfig +CROSS_COMPILE := aarch64-linux-android- +else ifneq ($(filter $(PRODUCT),$(PLATFORM_A2S)),) +PLATFORM := A2S +KERNEL_CONFIG := rockchip_defconfig rk356x_evb.config android-11.config +KERNEL_OPTION := BOOT_IMG=$(OUTPUT_DIR)/boot.img TS3672.img +ARCH := arm64 +CROSS_COMPILE := $(HOME)/Workspaces/03-Toolschain/A2S_gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- +else ifneq ($(filter $(PRODUCT),$(PLATFORM_F1)),) +PLATFORM := F1 +KERNEL_CONFIG := bsp_f1x_defconfig +CROSS_COMPILE := arm-ca9-linux-gnueabihf- +LIBS_F1 := pthread +else ifneq ($(filter $(PRODUCT),$(PLATFORM_F3)),) +PLATFORM := F3 +KERNEL_CONFIG := bsp_f3_defconfig +CROSS_COMPILE := arm-ca9-linux-uclibcgnueabihf- +else ifneq ($(filter $(PRODUCT),$(PLATFORM_AI)),) +PLATFORM := AI +CROSS_COMPILE := arm-ca53-linux-gnueabihf- +else +PLATFORM := H10 +CROSS_COMPILE := arm-hisiv500-linux- +endif + +CC := $(CROSS_COMPILE)gcc +LD := $(CROSS_COMPILE)ld +AR := $(CROSS_COMPILE)ar +STRIP := $(CROSS_COMPILE)strip + +export ARCH CROSS_COMPILE + +INC_DIRS := $(INCLUDE_DIR) +LIB_DIRS := $(DYNAMIC_DIR) + +LIBS := $(LIBS_$(PLATFORM)) +CFLAGS := +CFLAGS += $(if $(INC_DIRS),$(addprefix -I,$(sort $(INC_DIRS)))) -g -Wall -O2 +LDFLAGS += $(if $(LIB_DIRS),$(addprefix -L,$(sort $(LIB_DIRS)))) $(if $(LIBS),$(addprefix -l,$(sort $(LIBS)))) +ARFLAGS += + +#******************************************************************************* +# Targets +#******************************************************************************* +.PHONY: init $(TARGET) install clean help +all: init $(TARGET) + +init: + @mkdir -p $(OUTPUT_DIR) + +$(TARGET): $(objects) + @echo ">>>>>>>>>>>>>>>>>>> $@ >>>>>>>>>>>>>>>>>>>" + $(CC) -o $(OUTPUT_DIR)/$@ $^ $(CFLAGS) $(LDFLAGS) + +$(OUTPUT_DIR)/%.o: %.c + @mkdir -p $(@D) + @$(CC) -o $@ -c $< $(CFLAGS) + +install: + @echo ">>>>>>>>>>>>>>>>>>> $@ >>>>>>>>>>>>>>>>>>>" + @if [ -d ${INSTALL_DIR} ]; then cp -arf $(OUTPUT_DIR)/t1_test ${INSTALL_DIR}/; fi + +clean: + @echo ">>>>>>>>>>>>>>>>>>> $@ >>>>>>>>>>>>>>>>>>>" + @rm -rf $(OUTPUT_DIR) + @if [ -d $(LOCAL_DIR)/__install ]; then \ + rm -rf $(LOCAL_DIR)/__install; \ + fi + +help: + @echo "usage: make PRODUCT={PRODUCT}"