313 lines
9.6 KiB
Makefile
313 lines
9.6 KiB
Makefile
# Makefile.param
|
|
#
|
|
# Only global variable should be defined here.
|
|
# All the variables must be used as "export" and "?=".
|
|
# Otherwise, there will be some errors, when Makefile.param is nested.
|
|
|
|
# Use this file as the following sample
|
|
# ifeq ($(PARAM_FILE), )
|
|
# PARAM_FILE:=../Makefile.param
|
|
# include $(PARAM_FILE)
|
|
# endif
|
|
|
|
#
|
|
# .config is generated by menuconfig, all the configs can be defined in menuconfig.
|
|
#
|
|
|
|
export PARAM_FILE
|
|
PARAM_DIR=$(shell pwd)/$(shell dirname $(PARAM_FILE))
|
|
|
|
include $(PARAM_DIR)/cfg.mak
|
|
|
|
export WORK_PATH?=/work
|
|
|
|
ifeq ($(CONFIG_KERNEL_BIT), KERNEL_BIT_32)
|
|
export ARCH=arm
|
|
else
|
|
export ARCH=arm64
|
|
endif
|
|
|
|
export PRODUCT?=IPC
|
|
export MPP_BUILD=n
|
|
|
|
# export global variables
|
|
export OT_ARCH?=$(CONFIG_OT_ARCH)
|
|
export OT_SUBARCH?=$(CONFIG_OT_SUBARCH)
|
|
export OT_CHIP?=$(CONFIG_OT_CHIP_TYPE)
|
|
export ARM_ARCH?=$(CONFIG_ARM_ARCH_TYPE)
|
|
|
|
ifeq ($(CONFIG_OT_ARCH),$(filter $(CONFIG_OT_ARCH), ss524v100))
|
|
ifeq ($(CONFIG_OT_SUBARCH), ss522v100)
|
|
export ARCH_LIBNAME?=$(CONFIG_OT_ARCH)
|
|
else
|
|
export ARCH_LIBNAME?=$(CONFIG_OT_SUBARCH)
|
|
endif
|
|
else
|
|
export ARCH_LIBNAME?=$(CONFIG_OT_SUBARCH)
|
|
endif
|
|
|
|
export KO_PREFIX=ot
|
|
export ARCH_DIR?=$(CONFIG_OT_ARCH)
|
|
export EXT_DRV?=$(CONFIG_OT_ARCH)
|
|
export INTER_DRV?=$(CONFIG_OT_ARCH)
|
|
|
|
# uclibc or glibc
|
|
export LIBC?=$(CONFIG_LIBC_TYPE)
|
|
|
|
# linux or liteos
|
|
export OSTYPE?=$(CONFIG_OS_TYPE)
|
|
export KERNEL_NAME?=$(CONFIG_KERNEL_VERSION)
|
|
|
|
|
|
# Whether support the debug information. OT_DEBUG or OT_RELEASE or AXIS
|
|
export OT_RLS_MODE?=$(CONFIG_OT_RLS_MODE)
|
|
|
|
ifeq ($(OT_RLS_MODE),OT_DEBUG)
|
|
export DBG_FLAG=0
|
|
else
|
|
export DBG_FLAG=0
|
|
endif
|
|
|
|
# cpu type single/big-little
|
|
export CPU_TYPE?=$(CONFIG_CPU_TYPE)
|
|
|
|
# -g
|
|
export OT_GDB?=$(CONFIG_OT_GDB)
|
|
|
|
# FPGA board or not
|
|
export FPGA?=$(CONFIG_OT_FPGA)
|
|
|
|
# CROSS
|
|
export CROSS_COMPILE?=$(CONFIG_OT_CROSS)
|
|
export CROSS?=$(CONFIG_OT_CROSS_LIB)
|
|
|
|
ifeq ($(OT_ARCH), )
|
|
$(error OT_ARCH not defined! Please check!)
|
|
endif
|
|
|
|
ifeq ($(LIBC), )
|
|
$(error LIBC not defined! Please check!)
|
|
endif
|
|
|
|
ifeq ($(FPGA),y)
|
|
export OT_FPGA:=OT_FPGA
|
|
export FPGA_FLAG:=1
|
|
ifeq ($(CONFIG_UMAP6),y)
|
|
export UMAP:=UMAP6
|
|
else ifeq ($(CONFIG_UMAP7),y)
|
|
export UMAP:=UMAP7
|
|
else ifeq ($(CONFIG_UMAP7P),y)
|
|
export UMAP:=UMAP7P
|
|
else
|
|
export UMAP:=UMAPXXX
|
|
endif
|
|
else
|
|
export ASIC_FLAG:=0
|
|
export OT_FPGA:=OT_XXXX
|
|
endif
|
|
|
|
###############################################################################
|
|
# Get the local SDK_ROOT path or RELEASE_ROOT path by PARAM_FILE.
|
|
# PARAM_FILE is configured at Makefile before include this file
|
|
# export SDK_PATH?=$(shell cd $(shell pwd)/`dirname $(PARAM_FILE)`/..; pwd)
|
|
export SDK_PATH?=$(shell cd $(PARAM_DIR)/..; pwd)
|
|
export MPP_PATH?=$(PARAM_DIR)
|
|
export DRV_ROOT?=$(SDK_PATH)/interdrv
|
|
export VENDOR_ROOT?=$(SDK_PATH)/vendor
|
|
export OSAL_ROOT?=$(SDK_PATH)/osal
|
|
export TEMP_PATH?=$(SDK_PATH)/temp
|
|
export OUTPUT_PATH?=$(SDK_PATH)/output
|
|
|
|
# Define the object output directory
|
|
export OPEN_SOURCE_PATH=$(SDK_PATH)/open_source
|
|
ifeq ($(OT_ARCH), $(filter $(OT_ARCH),ss528v100 ss524v100))
|
|
ifeq ($(MPP_BUILD), y)
|
|
export EXTDRV:=vendor/$(EXT_DRV)
|
|
export REL_DIR=$(SDK_PATH)/mpp/output/$(CONFIG_OT_SUBARCH)/$(OSTYPE)
|
|
export SAMPLE_DIR=$(SDK_PATH)/mpp/sample/$(CONFIG_OT_SUBARCH)
|
|
else
|
|
#### MPP_BUILD=n ######
|
|
export EXTDRV:=vendor
|
|
export REL_DIR=$(SDK_PATH)/mpp/
|
|
export SAMPLE_DIR=$(SDK_PATH)/mpp/sample
|
|
|
|
endif
|
|
else
|
|
ifeq ($(MPP_BUILD), y)
|
|
export EXTDRV:=vendor/$(EXT_DRV)
|
|
export REL_DIR=$(SDK_PATH)/mpp/output/$(CONFIG_OT_SUBARCH)/$(ARM_ARCH)/$(CPU_TYPE)_$(OSTYPE)
|
|
export SAMPLE_DIR=$(SDK_PATH)/mpp/sample/$(CONFIG_OT_SUBARCH)
|
|
else
|
|
#### MPP_BUILD=n ######
|
|
export EXTDRV:=vendor
|
|
export REL_DIR=$(SDK_PATH)/mpp/out
|
|
export SAMPLE_DIR=$(SDK_PATH)/mpp/sample
|
|
export OPEN_SOURCE_PATH=$(SDK_PATH)/../../open_source
|
|
endif
|
|
endif
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
###############################################################################
|
|
# Common CFLAGS, build flags for all MPP libs and drivers
|
|
export MPP_CFLAGS:= -Wall -fsigned-char
|
|
|
|
# Driver CFLAGS, build flags for linux kernel kbuild EXTRA_CFLAGS or liteos drivers
|
|
export DRV_CFLAGS:= -Wall -fsigned-char
|
|
|
|
# Libs CFLAGS, build flags for linux or liteos libs
|
|
export LIBS_CFLAGS := -Wall -fsigned-char
|
|
|
|
# Libs executable program CFLAGS, build flags for linux or liteos libs
|
|
export LIBS_EXEC_CFLAGS
|
|
|
|
# Libs LDFLAGS, link flags for linux or liteos libs
|
|
export LIBS_LD_CFLAGS := -fno-common
|
|
#------------------------------------------------------------------------------
|
|
|
|
MPP_CFLAGS += -D$(OT_RLS_MODE)
|
|
|
|
ifeq ($(OT_GDB), y)
|
|
MPP_CFLAGS += -g
|
|
endif
|
|
|
|
ifeq ($(MPP_BUILD), y)
|
|
DRV_CFLAGS += -Wunused-but-set-variable -Wfloat-equal -Wformat=2 -Werror
|
|
MPP_CFLAGS += -Wunused-but-set-variable -Wtrampolines -pipe -Werror -fno-common
|
|
LIBS_CFLAGS += -Wunused-but-set-variable -Wformat=2 -Werror
|
|
LIBS_LD_CFLAGS += -Wl,-Bsymbolic
|
|
|
|
ifeq ($(OT_ARCH),$(filter $(OT_ARCH), ss528v100 ))
|
|
DRV_CFLAGS += --warn-stack-usage=800
|
|
else
|
|
DRV_CFLAGS += --warn-stack-usage=500
|
|
endif
|
|
endif
|
|
|
|
|
|
# Define the param of audio
|
|
export AUDIO_PATH?=$(MPP_PATH)/cbb/audio/component/lib/$(OT_ARCH)/$(CONFIG_OT_CROSS)/$(OSTYPE)
|
|
|
|
ifeq ($(CONFIG_OT_AUDIO_STATIC_REGISTER_SUPPORT),y)
|
|
ifeq ($(OSTYPE),linux)
|
|
export AUDIO_LIBA ?= $(REL_LIB)/libot_voice_engine.a\
|
|
$(REL_LIB)/libot_upvqe.a\
|
|
$(REL_LIB)/libot_dnvqe.a\
|
|
$(REL_LIB)/libaac_comm.a\
|
|
$(REL_LIB)/libaac_enc.a\
|
|
$(REL_LIB)/libaac_dec.a\
|
|
$(REL_LIB)/libaac_sbr_enc.a\
|
|
$(REL_LIB)/libaac_sbr_dec.a
|
|
|
|
export AUDIO_LIBS ?= $(REL_LIB)/libot_voice_engine.so\
|
|
$(REL_LIB)/libot_upvqe.so\
|
|
$(REL_LIB)/libot_dnvqe.so\
|
|
$(REL_LIB)/libaac_comm.so\
|
|
$(REL_LIB)/libaac_enc.so\
|
|
$(REL_LIB)/libaac_dec.so
|
|
else
|
|
export AUDIO_LIBA ?= $(REL_LIB)/libot_voice_engine.a\
|
|
$(REL_LIB)/libot_upvqe.a\
|
|
$(REL_LIB)/libot_dnvqe.a\
|
|
$(REL_LIB)/libaac_comm.a\
|
|
$(REL_LIB)/libaac_enc.a\
|
|
$(REL_LIB)/libaac_dec.a\
|
|
$(REL_LIB)/libaac_sbr_enc.a\
|
|
$(REL_LIB)/libaac_sbr_dec.a
|
|
|
|
export AUDIO_LIBS ?= $(REL_LIB)/libot_voice_engine.so
|
|
endif
|
|
else
|
|
export AUDIO_LIBA ?= $(REL_LIB)/libot_voice_engine.a\
|
|
$(REL_LIB)/libot_upvqe.a\
|
|
$(REL_LIB)/libot_dnvqe.a\
|
|
$(REL_LIB)/libaac_enc.a\
|
|
$(REL_LIB)/libaac_dec.a
|
|
|
|
export AUDIO_LIBS ?= $(REL_LIB)/libot_voice_engine.so\
|
|
$(REL_LIB)/libot_upvqe.so\
|
|
$(REL_LIB)/libot_dnvqe.so\
|
|
$(REL_LIB)/libaac_enc.so\
|
|
$(REL_LIB)/libaac_dec.so
|
|
endif
|
|
|
|
# LIB GLOBAL CFLAGS
|
|
ifeq ($(OT_ARCH),$(filter $(OT_ARCH), ss528v100))
|
|
LIBS_CFLAGS += -mcpu=cortex-a53
|
|
LIBS_LD_CFLAGS += -mcpu=cortex-a53
|
|
else ifeq ($(OT_ARCH),$(filter $(OT_ARCH), ))
|
|
LIBS_CFLAGS += -mcpu=cortex-a53
|
|
LIBS_LD_CFLAGS += -mcpu=cortex-a53
|
|
else ifeq ($(OT_ARCH),$(filter $(OT_ARCH), ))
|
|
ifeq ($(CPU_TYPE), a55)
|
|
LIBS_CFLAGS += -mcpu=cortex-a53
|
|
LIBS_LD_CFLAGS += -mcpu=cortex-a53
|
|
endif
|
|
else ifeq ($(OT_ARCH),$(filter $(OT_ARCH), ss524v100))
|
|
LIBS_CFLAGS += -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4
|
|
LIBS_LD_CFLAGS += -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4
|
|
endif
|
|
|
|
|
|
# common CFLAGS
|
|
LIBS_CFLAGS += -fno-aggressive-loop-optimizations -ldl -ffunction-sections -fdata-sections -O2
|
|
LIBS_LD_CFLAGS += -fno-aggressive-loop-optimizations
|
|
|
|
# secure CFLAGS
|
|
LIBS_CFLAGS += -fstack-protector-strong -fPIC
|
|
LIBS_EXEC_CFLAGS += -fPIE -pie -s
|
|
LIBS_LD_CFLAGS += -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,now,-s
|
|
|
|
###############################################################################
|
|
|
|
#********************* Macro for version management*****************************
|
|
VER_X ?= 1
|
|
VER_Y ?= 0
|
|
VER_Z ?= 0
|
|
VER_P ?= 0
|
|
VER_B ?= 10
|
|
MPP_CFLAGS += -DVER_X=$(VER_X) -DVER_Y=$(VER_Y) -DVER_Z=$(VER_Z) -DVER_P=$(VER_P) -DVER_B=$(VER_B)
|
|
#*******************************************************************************
|
|
|
|
MPP_CFLAGS += -D$(CONFIG_USER_BIT) -D$(CONFIG_KERNEL_BIT)
|
|
|
|
# -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE is for mmap64
|
|
ifeq ($(CONFIG_KERNEL_BIT),KERNEL_BIT_64)
|
|
LIBS_CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
|
|
LIBS_LD_CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
|
|
endif
|
|
|
|
COMMON_INCLUDE := -I$(OSAL_ROOT)/include
|
|
ifeq ($(MPP_BUILD), y)
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/include
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/base/include
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/base/arch/$(OT_ARCH)/include
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/base/arch/$(OT_ARCH)/include/$(OT_SUBARCH)
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/sys/include
|
|
ifeq ($(OT_ARCH), $(filter $(OT_ARCH),))
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/vdec/vdec_all/vdec/include
|
|
else
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/vdec/vdec/include
|
|
endif
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/vo/include
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/audio/include/h8
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/cbb/init/$(OT_ARCH)/$(OSTYPE)/include
|
|
COMMON_INCLUDE += -I$(MPP_PATH)/component/securec/include
|
|
|
|
LIBS_CFLAGS += $(COMMON_INCLUDE)
|
|
DRV_CFLAGS += $(COMMON_INCLUDE)
|
|
MPP_CFLAGS += $(COMMON_INCLUDE)
|
|
endif
|
|
|
|
|
|
export JPEGE DCF=$(CONFIG_OT_JPEGE_DCF)
|
|
|
|
ifeq ($(JPEGE DCF), y)
|
|
MPP_CFLAGS += -DENABLE_JPEGEDCF
|
|
endif
|
|
|
|
# include the config file of platform
|
|
include $(MPP_PATH)/Makefile.$(OSTYPE).param
|
|
|
|
# End!!
|