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