luckfox-pico-sdk/media/samples/Makefile
2023-08-08 20:36:47 +08:00

177 lines
4.8 KiB
Makefile

ifeq ($(MEDIA_PARAM), )
MEDIA_PARAM:=../Makefile.param
include $(MEDIA_PARAM)
endif
export CONFIG_RK_SAMPLE=y
export LC_ALL=C
SHELL:=/bin/bash
CURRENT_DIR := $(shell pwd)
ifeq ($(rk_static),1)
export BUILD_STATIC_LINK=y
else
export BUILD_STATIC_LINK=n
endif
ifeq ($(RK_MEDIA_SAMPLE_STATIC_LINK),y)
export BUILD_STATIC_LINK=y
else
export BUILD_STATIC_LINK=n
endif
SAMPLE_CC := $(RK_MEDIA_CROSS)-gcc
SAMPLE_AR := $(RK_MEDIA_CROSS)-ar
PKG_NAME := sample
PKG_BIN ?= out
PKG_BUILD ?= build
RK_MEDIA_OPTS += -Wl,-rpath-link,${RK_MEDIA_OUTPUT}/lib:$(RK_MEDIA_OUTPUT)/root/usr/lib
PKG_CONF_OPTS += -DRKPLATFORM=ON
ifeq ($(RK_MEDIA_CHIP), rv1126)
PKG_CONF_OPTS += -DCMAKE_SYSTEM_PROCESSOR=armv7l
PKG_CONF_OPTS += -DARCH64=OFF
endif
ifeq ($(RK_MEDIA_CHIP), rv1106)
PKG_CONF_OPTS += -DARCH64=OFF
endif
ifeq ($(CONFIG_RK_IVA),y)
LD_FLAGS += -DROCKIVA
LD_FLAGS += -DROCKIVA -lrockiva
endif
ifeq ($(CONFIG_RK_SAMPLE),y)
PKG_TARGET := sample-build
else
PKG_TARGET :=
$(warning Not config source RK_SAMPLE, Skip...)
endif
ifeq ($(PKG_BIN),)
$(error ### $(CURRENT_DIR): PKG_BIN is NULL, Please Check !!!)
endif
COMM_DIR := $(CURRENT_DIR)/common
COMM_SRC := $(wildcard $(COMM_DIR)/*.c)
ifeq ($(RK_MEDIA_CHIP), rv1126)
COMM_SRC += $(wildcard $(COMM_DIR)/isp2.x/*.c)
endif
ifeq ($(RK_MEDIA_CHIP), rv1106)
COMM_SRC += $(wildcard $(COMM_DIR)/isp3.x/*.c)
endif
COMM_OBJ := $(COMM_SRC:%.c=%.o)
INC_FLAGS := -I$(COMM_DIR)
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq
ifeq ($(RK_MEDIA_CHIP), rv1126)
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/uAPI
LD_FLAGS += -DUAPI
else
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/uAPI2
LD_FLAGS += -DUAPI2
endif
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/common
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/xcore
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/algos
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/iq_parser
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/iq_parser_v2
INC_FLAGS += -I$(RK_MEDIA_OUTPUT)/include/rkaiq/smartIr
SAMPLE_CFLAGS += -g -Wall $(INC_FLAGS) $(PKG_CONF_OPTS)
LD_FLAGS += -L$(SAMPLE_OUT_DIR)/lib -lsample_comm
ifeq ($(BUILD_STATIC_LINK), y)
LD_FLAGS += $(RK_MEDIA_OPTS) -L$(RK_MEDIA_OUTPUT)/lib -Wl,-Bstatic -lpthread -lrockit -lrockchip_mpp -lrkaiq \
-lrkaudio_detect -laec_bf_process \
-lm -lrga -lstdc++ -Wl,-Bdynamic
LD_FLAGS += -L$(CURRENT_DIR)/lib/$(RK_MEDIA_CROSS) -Wl,-Bstatic -lrtsp -Wl,-Bdynamic -Wl,--gc-sections -Wl,--as-needed
else
LD_FLAGS += $(RK_MEDIA_OPTS) -L$(RK_MEDIA_OUTPUT)/lib -lrockit -lrockchip_mpp -lrkaiq -lpthread -lm -ldl
LD_FLAGS += -L$(CURRENT_DIR)/lib/$(RK_MEDIA_CROSS) -lrtsp
endif
ifeq ($(RK_MEDIA_CHIP), rv1126)
INC_FLAGS += -I$(COMM_DIR)/isp2.x
SAMPLE_CFLAGS += -DISP_HW_V20
LD_FLAGS += -L$(RK_MEDIA_OUTPUT)/root/usr/lib -lasound
SAMPLE_CFLAGS += -DHAVE_VO
LD_FLAGS += -ldrm
endif
ifeq ($(RK_MEDIA_CHIP), rv1106)
INC_FLAGS += -I$(COMM_DIR)/isp3.x
SAMPLE_CFLAGS += -DISP_HW_V30
endif
export SAMPLE_OUT_DIR=$(CURRENT_DIR)/out
export SAMPLE_SRC_DIR=$(CURRENT_DIR)/simple_test/
export PKG_CONF_OPTS
export COMM_OBJ COMM_SRC COMM_DIR
export SAMPLE_CC SAMPLE_AR
export SAMPLE_CFLAGS
export LD_FLAGS
all: $(PKG_TARGET)
@echo "build $(PKG_NAME) done";
sample-build: libasound librkaiq librockit librockiva librksysutils COMM_LIB
@mkdir -p $(SAMPLE_OUT_DIR)/bin
@make -C $(CURRENT_DIR)/audio;
@make -C $(CURRENT_DIR)/audio install;
@make -C $(CURRENT_DIR)/vi;
@make -C $(CURRENT_DIR)/vi install;
@make -C $(CURRENT_DIR)/simple_test;
@make -C $(CURRENT_DIR)/simple_test install;
ifneq ($(RK_MEDIA_CHIP), rv1106)
@make -C $(CURRENT_DIR)/vo;
@make -C $(CURRENT_DIR)/vo install;
endif
@make -C $(CURRENT_DIR)/venc;
@make -C $(CURRENT_DIR)/venc install;
@make -C $(CURRENT_DIR)/test;
@make -C $(CURRENT_DIR)/test install;
@make -C $(CURRENT_DIR)/demo;
@make -C $(CURRENT_DIR)/demo install;
$(call MAROC_COPY_PKG_TO_MEDIA_OUTPUT, $(RK_MEDIA_OUTPUT), $(PKG_BIN))
COMM_LIB:
@make -C $(CURRENT_DIR)/common
libasound:
@test ! -d $(RK_MEDIA_TOP_DIR)/alsa-lib || make -C $(RK_MEDIA_TOP_DIR)/alsa-lib
librkaiq:
@test ! -d $(RK_MEDIA_TOP_DIR)/isp || make -C $(RK_MEDIA_TOP_DIR)/isp
librockit:
@test ! -d $(RK_MEDIA_TOP_DIR)/rockit || make -C $(RK_MEDIA_TOP_DIR)/rockit
librockiva:
@test ! -d $(RK_MEDIA_TOP_DIR)/iva || make -C $(RK_MEDIA_TOP_DIR)/iva
librksysutils:
@test ! -d $(RK_MEDIA_TOP_DIR)/sysutils || make -C $(RK_MEDIA_TOP_DIR)/sysutils
clean:
@make -C $(CURRENT_DIR)/common clean
@make -C $(CURRENT_DIR)/audio clean
@make -C $(CURRENT_DIR)/vi clean
@make -C $(CURRENT_DIR)/vo clean
@make -C $(CURRENT_DIR)/venc clean
@make -C $(CURRENT_DIR)/simple_test clean
@make -C $(CURRENT_DIR)/test clean
@make -C $(CURRENT_DIR)/demo clean
@rm -rf $(SAMPLE_OUT_DIR)
help:
@echo "help message:"
@echo " build with dynamic link: make "
@echo " build with static link: make rk_static=1"
distclean: clean