-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.param
199 lines (170 loc) · 5.61 KB
/
Makefile.param
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
SHELL = /bin/bash
include $(BUILD_PATH)/.config
## setup path ##
ROOT_DIR:=$(shell dirname $(realpath $(PARAM_FILE)))
export MW_PATH:= $(ROOT_DIR)
export MW_INC := $(MW_PATH)/include
export MW_LIB := $(MW_PATH)/lib
export MW_3RD_LIB := $(MW_PATH)/lib/3rd
ifeq ($(KERNEL_DIR), )
KERNEL_PATH ?= $(ROOT_DIR)/../../$(KERNEL_SRC)
ifeq ($(PROJECT_FULLNAME), )
$(error PROJECT_FULLNAME not defined! Please check!)
else
KERNEL_DIR = $(KERNEL_PATH)/build/$(PROJECT_FULLNAME)
endif
endif
ifeq ($(SDK_VER), 32bit)
export CROSS_COMPILE = $(CROSS_COMPILE_32)
SYSROOT := $(ROOT_DIR)/../../ramdisk/sysroot/sysroot-glibc-linaro-2.23-2017.05-arm-linux-gnueabihf/
KERNEL_INC := $(KERNEL_DIR)/arm/usr/include
OPT_LEVEL := -O3
else ifeq ($(SDK_VER), 64bit)
export CROSS_COMPILE = $(CROSS_COMPILE_64)
SYSROOT := $(ROOT_DIR)/../../ramdisk/sysroot/sysroot-glibc-linaro-2.23-2017.05-aarch64-linux-gnu/
KERNEL_INC := $(KERNEL_DIR)/arm64/usr/include
OPT_LEVEL := -O3
else ifeq ($(SDK_VER), uclibc)
export CROSS_COMPILE = $(CROSS_COMPILE_UCLIBC)
SYSROOT := $(ROOT_DIR)/../../ramdisk/sysroot/sysroot-uclibc/
KERNEL_INC := $(KERNEL_DIR)/arm/usr/include
OPT_LEVEL := -Os
else ifeq ($(SDK_VER), glibc_riscv64)
export CROSS_COMPILE = $(CROSS_COMPILE_GLIBC_RISCV64)
SYSROOT := $(ROOT_DIR)/../../host-tools/gcc/riscv64-linux-x86_64/sysroot
KERNEL_INC := $(KERNEL_DIR)/riscv/usr/include
OPT_LEVEL := -Os
OPT_LEVEL += -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d
else ifeq ($(SDK_VER), musl_riscv64)
export CROSS_COMPILE = $(CROSS_COMPILE_MUSL_RISCV64)
SYSROOT := $(ROOT_DIR)/../../host-tools/gcc/riscv64-linux-musl-x86_64/sysroot
KERNEL_INC := $(KERNEL_DIR)/riscv/usr/include
OPT_LEVEL := -Os
OPT_LEVEL += -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d
endif
## INCLUDE PATH ##
COMMON_INC = $(MW_PATH)/sample/common/include
SYS_INC = $(MW_PATH)/modules/sys/include
VPU_INC = $(MW_PATH)/modules/vpu/include
AUD_INC = $(MW_PATH)/modules/audio/include
OSDC_INC = $(MW_PATH)/modules/osdc/include
BIN_INC = $(MW_PATH)/modules/bin/include
MODULES_DIR = $(shell if [ -d $(MW_PATH)/modules ]; then echo "exist"; else echo "noexist"; fi)
ifeq ("$(MODULES_DIR)" , "noexist")
ISP_INC = $(MW_INC)/isp/$(shell echo $(CHIP_ARCH) | tr A-Z a-z)
else
ISP_INC = $(MW_PATH)/modules/isp/include/$(shell echo $(CHIP_ARCH) | tr A-Z a-z)
endif
## LIBRARY ##
ISP_LIB := -lisp -lawb -lae -laf
ISP_OBJ := $(MW_LIB)/libisp.a $(MW_LIB)/libae.a $(MW_LIB)/libawb.a $(MW_LIB)/libaf.a
ifeq ($(CHIP_ARCH), CV183X)
else ifeq ($(CHIP_ARCH), $(filter $(CHIP_ARCH), CV182X MARS PHOBOS CV181X CV180X))
ISP_LIB += -lisp_algo
ISP_OBJ += $(MW_LIB)/libisp_algo.a
else
ifeq ($(SUBTYPE), fpga)
ISP_LIB += -lisp_algo
ISP_OBJ += $(MW_LIB)/libisp_algo.a
else
$(error UNKNOWN chip architecture - $(CHIP_ARCH))
endif
endif
## DEFINES ##
export PROJ_CFLAGS = -DF10
ifeq ($(SUBTYPE), fpga)
export FPGA_PORTING := true
else
export FPGA_PORTING := false
endif
MW_GLIBC_DEPENDENT := $(SYSROOT)/lib
## GCC COMPILER ##
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
AR = $(CROSS_COMPILE)ar
LD = $(CROSS_COMPILE)ld
NM = $(CROSS_COMPILE)nm
RANLIB = $(CROSS_COMPILE)ranlib
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
### COMMON COMPILER FLAGS ###
#
# export TARGET_PACKAGES_INCLUDE and TARGET_PACKAGES_LIBDIR from build/Makefile
#
WARNING_LEVEL=-Wall -Wextra -Werror
#Generate object files by CC
CFLAGS = $(OPT_LEVEL) -std=gnu11 -g $(WARNING_LEVEL) -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections $(CVI_TARGET_PACKAGES_INCLUDE)
#Generate object files by CXX
CXXFLAGS = $(OPT_LEVEL) -std=gnu++11 -g $(WARNING_LEVEL) -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections $(CVI_TARGET_PACKAGES_INCLUDE)
#Generate dependencies files by CC and CXX
DEPFLAGS = -MMD
### COMMON AR and LD FLAGS ###
#Generate archive file by AR
ARFLAGS = rcs
#Generate shared library by LD
LDFLAGS = -shared -fPIC --gc-sections -export-dynamic -L$(MW_LIB) -L$(MW_3RD_LIB) --sysroot $(SYSROOT) $(CVI_TARGET_PACKAGES_LIBDIR)
### COMMON ELF FLAGS ###
#Generate ELF files by CC and CXX
ELFFLAGS = $(OPT_LEVEL) -Wl,--gc-sections -rdynamic -L$(MW_LIB) -L$(MW_3RD_LIB) $(CVI_TARGET_PACKAGES_LIBDIR)
ifeq ($(SDK_VER), glibc_riscv64)
CFLAGS += -mno-ldd
CXXFLAGS += -mno-ldd
else ifeq ($(SDK_VER), musl_riscv64)
CFLAGS += -mno-ldd
CXXFLAGS += -mno-ldd
endif
ifeq ($(CONFIG_DEBUG_INFO), y)
ifeq ($(CONFIG_DEBUG_INFO_SPLIT), y)
CFLAGS += -gsplit-dwarf
CXXFLAGS += -gsplit-dwarf
else ifeq ($(CONFIG_DEBUG_INFO_DWARF4), y)
CFLAGS += -gdwarf-4
CXXFLAGS += -gdwarf-4
else ifeq ($(CONFIG_DEBUG_INFO_REDUCED), y)
CFLAGS += -femit-struct-debug-baseonly -fno-var-tracking
CXXFLAGS += -femit-struct-debug-baseonly -fno-var-tracking
else
CFLAGS += -Og
CXXFLAGS += -Og
endif
endif
ifeq ($(MTRACE), y)
ifneq ($(SDK_VER),uclibc)
CFLAGS += -DMTRACE
endif
endif
ifeq ($(FPGA_PORTING), true)
CFLAGS += -DFPGA_PORTING
endif
ifeq ($(CONFIG_DDR_64MB_SIZE), y)
CFLAGS += -DDDR_64MB_SIZE
endif
SAMPLE_STATIC ?= 1
SELF_TEST_STATIC ?= 1
SAMPLE_TPU_ENABLE ?= 0
ENABLE_ISP_C906L = 0
ifeq ($(CONFIG_ENABLE_SDK_ASAN), y)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer
CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
ELFFLAGS += -fsanitize=address -fno-omit-frame-pointer -g
LDFLAGS += -fsanitize=address -fno-omit-frame-pointer -fno-common -g
SAMPLE_STATIC = 0
SELF_TEST_STATIC = 0
endif
CFLAGS += -DARCH_$(CHIP_ARCH)
ifeq ("$(CVIARCH)", "CV181X")
CFLAGS += -D__CV181X__
endif
ifeq ("$(CVIARCH)", "CV180X")
CFLAGS += -D__CV180X__
endif
## COLOR ##
BLACK = "\e[30;1m"
RED = "\e[31;1m"
GREEN = "\e[32;1m"
YELLOW = "\e[33;1m"
BLUE = "\e[34;1m"
PURPLE = "\e[35;1m"
CYAN = "\e[36;1m"
WHITE = "\e[37;1m"
END= "\e[0m"