[Add] Makefile
This commit is contained in:
121
Makefile
Executable file
121
Makefile
Executable file
@ -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}"
|
||||
Reference in New Issue
Block a user