Files
hisi_SS524V100_SDK/mpp/Makefile.param
T

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!!